]> git.sur5r.net Git - freertos/commitdiff
Move the 'generic' version of freertos_risc_v_chip_specific_extensions.h back to...
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 31 Dec 2018 18:19:52 +0000 (18:19 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Mon, 31 Dec 2018 18:19:52 +0000 (18:19 +0000)
Add a project for the Vega board's RI5CY core.

git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2621 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

62 files changed:
FreeRTOS/Demo/RISC-V-Qemu-sifive_e-FreedomStudio/.cproject
FreeRTOS/Demo/RISC-V-Qemu-sifive_e-FreedomStudio/.project
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_ri5cy.cfg [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/RISCV/core_riscv32.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/readme.txt [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy_features.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy_features.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_port.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/fsl_device_registers.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_ri5cy.S [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_zero_riscy.S [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console_conf.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.cproject [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.project [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/language.settings.xml [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/org.eclipse.cdt.managedbuilder.core.prefs [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/FreeRTOSConfig.h [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RTOSDemo_ri5cy.launch [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RV32M1_ri5cy_flash.ld [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/blinky_demo/main_blinky.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/RegTest.S [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/main_full.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/main.c [new file with mode: 0644]
FreeRTOS/Demo/RISC-V_Renode_Emulator_SoftConsole/.cproject
FreeRTOS/Demo/RISC-V_Renode_Emulator_SoftConsole/.project
FreeRTOS/Source/include/task.h
FreeRTOS/Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/Pulpino_Vega_RV32M1RM/freertos_risc_v_chip_specific_extensions.h
FreeRTOS/Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/RV32I_CLINT_no_extensions/freertos_risc_v_chip_specific_extensions.h [new file with mode: 0644]
FreeRTOS/Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/readme.txt
FreeRTOS/Source/portable/GCC/RISC-V-RV32/freertos_risc_v_chip_specific_extensions.h [deleted file]
FreeRTOS/Source/portable/GCC/RISC-V-RV32/readme.txt
FreeRTOS/Source/tasks.c

index 38177fd6053d1aa4fcd428c8946c6d25366514fd..a9dce4513989cb95b23a44204b08abf0022417f3 100644 (file)
@@ -50,7 +50,7 @@
                                                                <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor.874608690" name="Use preprocessor" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>\r
                                                                <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths.545620458" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths" useByScannerDiscovery="true" valueType="includePath">\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freedom-e-sdk/env}&quot;"/>\r
-                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/RV32I_CLINT_no_extensions}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freedom-e-sdk/include}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freedom-e-sdk/env/freedom-e300-hifive1}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/freedom-e-sdk/drivers}&quot;"/>\r
index 82efe8a68f50d98fe0bd0e7f9b858177b66805db..cd0dadc3a980e8c4f61f21389d2849d868f5953f 100644 (file)
                        <locationURI>FREERTOS_ROOT/FreeRTOS/Source/portable/MemMang/heap_4.c</locationURI>\r
                </link>\r
        </linkedResources>\r
+       <filteredResources>\r
+               <filter>\r
+                       <id>1546280186727</id>\r
+                       <name>FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions</name>\r
+                       <type>9</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-RV32I_CLINT_no_extensions</arguments>\r
+                       </matcher>\r
+               </filter>\r
+       </filteredResources>\r
        <variableList>\r
                <variable>\r
                        <name>FREERTOS_ROOT</name>\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.c
new file mode 100644 (file)
index 0000000..21f863a
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/*
+ * TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+!!GlobalInfo
+product: Pins v3.0
+processor: RV32M1
+package_id: RV32M1
+mcu_data: ksdk2_0
+processor_version: 0.0.0
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
+ */
+
+#include "fsl_common.h"
+#include "fsl_port.h"
+#include "pin_mux.h"
+
+/*FUNCTION**********************************************************************
+ * 
+ * Function Name : BOARD_InitBootPins
+ * Description   : Calls initialization functions.
+ * 
+ *END**************************************************************************/
+void BOARD_InitBootPins(void) {
+    BOARD_InitPins();
+}
+
+#define PIN7_IDX                         7u   /*!< Pin number for pin 7 in a port */
+#define PIN8_IDX                         8u   /*!< Pin number for pin 8 in a port */
+
+/*
+ * TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+BOARD_InitPins:
+- options: {callFromInitBoot: 'true', coreID: cm4, enableClock: 'true'}
+- pin_list:
+  - {pin_num: N2, peripheral: LPUART0, signal: RX, pin_signal: LPCMP0_IN0/PTC7/LLWU_P15/LPSPI0_PCS3/LPUART0_RX/LPI2C1_HREQ/TPM0_CH0/LPTMR1_ALT1}
+  - {pin_num: P3, peripheral: LPUART0, signal: TX, pin_signal: LPCMP0_IN1/PTC8/LPSPI0_SCK/LPUART0_TX/LPI2C0_HREQ/TPM0_CH1}
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS ***********
+ */
+
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : BOARD_InitPins
+ * Description   : Configures pin routing and optionally pin electrical features.
+ *
+ *END**************************************************************************/
+void BOARD_InitPins(void) {
+  CLOCK_EnableClock(kCLOCK_PortC);                           /* Clock Gate Control: 0x01u */
+
+  PORT_SetPinMux(PORTC, PIN7_IDX, kPORT_MuxAlt3);            /* PORTC7 (pin N2) is configured as LPUART0_RX */
+  PORT_SetPinMux(PORTC, PIN8_IDX, kPORT_MuxAlt3);            /* PORTC8 (pin P3) is configured as LPUART0_TX */
+}
+
+/*******************************************************************************
+ * EOF
+ ******************************************************************************/
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/pin_mux.h
new file mode 100644 (file)
index 0000000..eb4b69e
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _PIN_MUX_H_
+#define _PIN_MUX_H_
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @brief Direction type  */
+typedef enum _pin_mux_direction
+{
+  kPIN_MUX_DirectionInput = 0U,         /* Input direction */
+  kPIN_MUX_DirectionOutput = 1U,        /* Output direction */
+  kPIN_MUX_DirectionInputOrOutput = 2U  /* Input or output direction */
+} pin_mux_direction_t;
+
+/*!
+ * @addtogroup pin_mux
+ * @{
+ */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*!
+ * @brief Calls initialization functions.
+ *
+ */
+void BOARD_InitBootPins(void);
+
+/*!
+ * @brief Configures pin routing and optionally pin electrical features.
+ *
+ */
+void BOARD_InitPins(void);
+
+#if defined(__cplusplus)
+}
+#endif
+
+/*!
+ * @}
+ */
+#endif /* _PIN_MUX_H_ */
+
+/*******************************************************************************
+ * EOF
+ ******************************************************************************/
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_ri5cy.cfg b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_ri5cy.cfg
new file mode 100644 (file)
index 0000000..05ce1bd
--- /dev/null
@@ -0,0 +1,150 @@
+set _WORKAREASIZE 0x2000
+
+adapter_khz 1000
+
+interface jlink
+transport select jtag
+
+set _WORKAREASIZE 0x1000
+
+set _CHIPNAME rv32m1
+
+reset_config srst_only
+
+# OpenCores Mohor JTAG TAP ID
+set _CPUTAPID  0x249511C3
+
+jtag newtap $_CHIPNAME cpu -irlen 4 -expected-id $_CPUTAPID
+
+set _TARGETNAME $_CHIPNAME.cpu
+target create $_TARGETNAME rv32m1 -endian little -chain-position $_TARGETNAME
+
+# Select the TAP core we are using
+tap_select mohor
+
+# Select the debug unit core we are using. This debug unit as an option.
+
+set ADBG_USE_HISPEED           1
+
+# If ADBG_USE_HISPEED is set (options bit 1), status bits will be skipped
+# on burst reads and writes to improve download speeds.
+# This option must match the RTL configured option.
+
+du_select adv [expr $ADBG_USE_HISPEED]
+
+# Select core 0
+core_select 0
+
+$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size $_WORKAREASIZE -work-area-backup 0
+$_TARGETNAME configure -event gdb-detach {
+    resume
+}
+set _FLASHNAME $_CHIPNAME.flash
+flash bank $_CHIPNAME.flash0 rv32m1 0 0 0 0 $_TARGETNAME # For core 0
+flash bank $_CHIPNAME.flash1 rv32m1 0x01000000 0 0 0 $_TARGETNAME # For core 1
+
+proc ri5cy_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFF03FF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+proc cm4_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFFFFFF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+proc zero_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFF03BF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+proc cm0_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFFFFBF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+# All cores are available, CM4 & RI5CY boot first
+proc core0_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFFA3FF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+# All cores are available, CM0 & ZERO_RISCY boot first
+proc core1_boot { } {
+
+    # Erase all blok unsecure
+    mwb 0x40023000 0x70
+    mww 0x40023004 0x49000000
+    mwb 0x40023000 0x80
+
+    sleep 1000
+
+    mwb 0x40023000 0x70
+    mww 0x40023008 0xFFFFA3BF
+    mww 0x40023004 0x43840000
+    mwb 0x40023000 0x80
+
+    sleep 2
+}
+
+init
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/RISCV/core_riscv32.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/RISCV/core_riscv32.h
new file mode 100644 (file)
index 0000000..fa0e9ee
--- /dev/null
@@ -0,0 +1,123 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+/* Copyright (c) 2009 - 2015 ARM LIMITED
+
+   All rights reserved.
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+   - Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+   - 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.
+   - Neither the name of ARM nor the names of its contributors may be used
+     to endorse or promote products derived from this software without
+     specific prior written permission.
+   *
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND 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 __CORE_RISCV32_H__
+#define __CORE_RISCV32_H__
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#define RISCV32
+
+#if defined ( __GNUC__ )
+  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler */
+  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler */
+  #define __STATIC_INLINE  static inline
+
+#else
+  #error Unknown compiler
+#endif
+
+#if defined ( __GNUC__ )
+
+#define __BKPT(x) __ASM("ebreak")
+
+__attribute__((always_inline)) __STATIC_INLINE void __NOP(void)
+{
+  __ASM volatile ("nop");
+}
+
+__attribute__((always_inline)) __STATIC_INLINE void __DSB(void)
+{
+  __ASM volatile ("nop");
+}
+
+__attribute__((always_inline)) __STATIC_INLINE void __ISB(void)
+{
+  __ASM volatile ("nop");
+}
+
+__attribute__((always_inline)) __STATIC_INLINE void __WFI(void)
+{
+  __ASM volatile ("wfi");
+}
+
+__attribute__((always_inline)) __STATIC_INLINE void __WFE(void)
+{
+}
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __enable_irq(void)
+{
+  __ASM volatile ("csrsi mstatus, 8");
+}
+
+__attribute__( ( always_inline ) ) __STATIC_INLINE void __disable_irq(void)
+{
+  __ASM volatile ("csrci mstatus, 8");
+}
+
+__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV(uint32_t value)
+{
+  return __builtin_bswap32(value);
+}
+
+__attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t value)
+{
+  return __builtin_bswap16(value);
+}
+
+#else
+  #error Unknown compiler
+#endif
+
+#ifdef __cplusplus
+  #define   __I     volatile             /*!< Defines 'read only' permissions */
+#else
+  #define   __I     volatile const       /*!< Defines 'read only' permissions */
+#endif
+#define     __O     volatile             /*!< Defines 'write only' permissions */
+#define     __IO    volatile             /*!< Defines 'read / write' permissions */
+
+/* following defines should be used for structure members */
+#define     __IM     volatile const      /*! Defines 'read only' structure member permissions */
+#define     __OM     volatile            /*! Defines 'write only' structure member permissions */
+#define     __IOM    volatile            /*! Defines 'read / write' structure member permissions */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CORE_RISCV32_H__ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.c
new file mode 100644 (file)
index 0000000..bd7d9f6
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdint.h>
+#include "fsl_common.h"
+#include "fsl_debug_console.h"
+#include "board.h"
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+/* Initialize debug console. */
+void BOARD_InitDebugConsole(void)
+{
+    CLOCK_SetIpSrc(kCLOCK_Lpuart0, kCLOCK_IpSrcFircAsync);
+
+    uint32_t uartClkSrcFreq = BOARD_DEBUG_UART_CLK_FREQ;
+
+    DbgConsole_Init(BOARD_DEBUG_UART_BASEADDR, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, uartClkSrcFreq);
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/board.h
new file mode 100644 (file)
index 0000000..4523b03
--- /dev/null
@@ -0,0 +1,183 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _BOARD_H_
+#define _BOARD_H_
+
+#include "clock_config.h"
+#include "fsl_gpio.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/*! @brief The board name */
+#define BOARD_NAME "RV32M1-VEGA"
+
+/* The UART to use for debug messages. */
+#define BOARD_DEBUG_UART_TYPE DEBUG_CONSOLE_DEVICE_TYPE_LPUART
+#define BOARD_DEBUG_UART_BAUDRATE 115200U
+#define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART0
+#define BOARD_DEBUG_UART_INSTANCE    0U
+#define BOARD_DEBUG_UART_CLK_FREQ CLOCK_GetIpFreq(kCLOCK_Lpuart0)
+#define BOARD_UART_IRQ LPUART0_IRQn
+#define BOARD_UART_IRQ_HANDLER LPUART0_IRQHandler
+
+/* Definitions for eRPC MU transport layer */
+#if defined(FSL_FEATURE_MU_SIDE_A)
+#define MU_BASE MUA
+#define MU_IRQ MUA_IRQn
+#define MU_IRQ_HANDLER MUA_IRQHandler
+#endif
+#if defined(FSL_FEATURE_MU_SIDE_B)
+#define MU_BASE MUB
+#define MU_IRQ MUB_IRQn
+#define MU_IRQ_HANDLER MUB_IRQHandler
+#endif
+#define MU_IRQ_PRIORITY (2)
+
+/*! @brief Define the port interrupt number for the board switches */
+#define BOARD_SW2_GPIO GPIOA
+#define BOARD_SW2_PORT PORTA
+#define BOARD_SW2_GPIO_PIN 0U
+#define BOARD_SW2_IRQ PORTA_IRQn
+#define BOARD_SW2_IRQ_HANDLER PORTA_IRQHandler
+#define BOARD_SW2_NAME "SW2"
+
+/* Board led color mapping */
+#define BOARD_LED_RED_GPIO GPIOA
+#define BOARD_LED_RED_GPIO_PIN 24U
+
+/*! @brief The TPM channel used for board */
+#define BOARD_TPM_CHANNEL 0U
+
+#define LOGIC_LED_ON 1U
+#define LOGIC_LED_OFF 0U
+#define BOARD_LED1_GPIO GPIOA
+#define BOARD_LED1_GPIO_PIN 24U
+#define BOARD_LED2_GPIO GPIOA
+#define BOARD_LED2_GPIO_PIN 23U
+#define BOARD_LED3_GPIO GPIOA
+#define BOARD_LED3_GPIO_PIN 22U
+
+#define LED1_INIT(output)                                              \
+    GPIO_WritePinOutput(BOARD_LED1_GPIO, BOARD_LED1_GPIO_PIN, output); \
+    BOARD_LED1_GPIO->PDDR |= (1U << BOARD_LED1_GPIO_PIN)                                /*!< Enable target LED1 */
+#define LED1_ON() GPIO_SetPinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN)        /*!< Turn on target LED1 */
+#define LED1_OFF() GPIO_ClearPinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN)     /*!< Turn off target LED1 */
+#define LED1_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN) /*!< Toggle on target LED1 */
+
+#define LED2_INIT(output)                                              \
+    GPIO_WritePinOutput(BOARD_LED2_GPIO, BOARD_LED2_GPIO_PIN, output); \
+    BOARD_LED2_GPIO->PDDR |= (1U << BOARD_LED2_GPIO_PIN)                                /*!< Enable target LED2 */
+#define LED2_ON() GPIO_SetPinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN)        /*!< Turn on target LED2 */
+#define LED2_OFF() GPIO_ClearPinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN)     /*!< Turn off target LED2 */
+#define LED2_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED2_GPIO, 1U << BOARD_LED2_GPIO_PIN) /*!< Toggle on target LED2 */
+
+#define LED3_INIT(output)                                              \
+    GPIO_WritePinOutput(BOARD_LED3_GPIO, BOARD_LED3_GPIO_PIN, output); \
+    BOARD_LED3_GPIO->PDDR |= (1U << BOARD_LED3_GPIO_PIN)                                /*!< Enable target LED3 */
+#define LED3_ON() GPIO_SetPinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN)        /*!< Turn on target LED3 */
+#define LED3_OFF() GPIO_ClearPinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN)     /*!< Turn off target LED3 */
+#define LED3_TOGGLE() GPIO_TogglePinsOutput(BOARD_LED3_GPIO, 1U << BOARD_LED3_GPIO_PIN) /*!< Toggle on target LED3 */
+
+#define BOARD_USDHC0_BASEADDR USDHC0
+#define BOARD_USDHC_CD_PORT_BASE PORTC
+#define BOARD_USDHC_CD_GPIO_BASE GPIOC
+#define BOARD_USDHC_CD_GPIO_PIN 27
+#define BOARD_USDHC_CD_PORT_IRQ PORTC_IRQn
+#define BOARD_USDHC_CD_PORT_IRQ_HANDLER PORTC_IRQHandler
+
+#define BOARD_USDHC_CD_GPIO_INIT()                                                                                \
+    {                                                                                                             \
+        gpio_pin_config_t sw_config = {kGPIO_DigitalInput, 0};                                                    \
+        GPIO_PinInit(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN, &sw_config);                              \
+        PORT_SetPinInterruptConfig(BOARD_USDHC_CD_PORT_BASE, BOARD_USDHC_CD_GPIO_PIN, kPORT_InterruptRisingEdge); \
+    }
+
+#define BOARD_USDHC_CD_STATUS() (GPIO_ReadPinInput(BOARD_USDHC_CD_GPIO_BASE, BOARD_USDHC_CD_GPIO_PIN))
+
+#define BOARD_USDHC_CD_INTERRUPT_STATUS() (GPIO_GetPinsInterruptFlags(BOARD_USDHC_CD_GPIO_BASE))
+#define BOARD_USDHC_CD_CLEAR_INTERRUPT(flag) (GPIO_ClearPinsInterruptFlags(BOARD_USDHC_CD_GPIO_BASE, flag))
+#define BOARD_USDHC_CARD_INSERT_CD_LEVEL (1U)
+#define BOARD_USDHC0_CLK_FREQ (CLOCK_GetIpFreq(kCLOCK_Sdhc0))
+
+#define BOARD_SD_HOST_BASEADDR BOARD_USDHC0_BASEADDR
+#define BOARD_SD_HOST_CLK_FREQ BOARD_USDHC0_CLK_FREQ
+#define BOARD_SD_HOST_IRQ USDHC0_IRQn
+#define BOARD_SD_SUPPORT_180V (0U)
+#define BOARD_MMC_HOST_BASEADDR BOARD_USDHC0_BASEADDR
+#define BOARD_MMC_HOST_CLK_FREQ BOARD_USDHC0_CLK_FREQ
+#define BOARD_MMC_HOST_IRQ USDHC0_IRQn
+#define BOARD_MMC_VCCQ_SUPPLY kMMC_VoltageWindows270to360
+#define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
+#define BOARD_MMC_PIN_CONFIG(speed, strength)
+
+/* this define not implement, due to EVK board have no power reset circuit */
+#define BOARD_SD_POWER_RESET_GPIO ()
+#define BOARD_SD_POWER_RESET_GPIO_PIN ()
+#define BOARD_USDHC_SDCARD_POWER_CONTROL_INIT()
+#define BOARD_USDHC_SDCARD_POWER_CONTROL(state)
+#define BOARD_SD_PIN_CONFIG(speed, strength)
+#define BOARD_USDHC_MMCCARD_POWER_CONTROL(enable)
+#define BOARD_USDHC_MMCCARD_POWER_CONTROL_INIT()
+
+#define LLWU_SW_GPIO BOARD_SW2_GPIO
+#define LLWU_SW_PORT BOARD_SW2_PORT
+#define LLWU_SW_GPIO_PIN BOARD_SW2_GPIO_PIN
+#define LLWU_SW_IRQ BOARD_SW2_IRQ
+#define LLWU_SW_IRQ_HANDLER BOARD_SW2_IRQ_HANDLER
+#define LLWU_SW_NAME BOARD_SW2_NAME
+
+#define NMI_PIN                0U
+#define JTAG_TCLK_PIN          1U
+#define JTAG_TDI_PIN           2U
+#define JTAG_TDO_PIN           3U
+#define JTAG_TMS_PIN           4U
+
+#define NMI_PORT               PORTA
+#define JTAG_TCLK_PORT         PORTA
+#define JTAG_TDI_PORT          PORTA
+#define JTAG_TDO_PORT          PORTA
+#define JTAG_TMS_PORT          PORTA 
+
+#define NMI_GPIO               GPIOA
+#define JTAG_TCLK_GPIO         GPIOA
+#define JTAG_TDI_GPIO          GPIOA
+#define JTAG_TDO_GPIO          GPIOA
+#define JTAG_TMS_GPIO          GPIOA
+
+#define BOARD_SPI_FLASH_SCLK_PORT       PORTB
+#define BOARD_SPI_FLASH_SCLK_GPIO       GPIOB
+#define BOARD_SPI_FLASH_SCLK_GPIO_PIN   20U
+
+#define BOARD_SPI_FLASH_SI_PORT         PORTB
+#define BOARD_SPI_FLASH_SI_GPIO         GPIOB
+#define BOARD_SPI_FLASH_SI_GPIO_PIN     21U
+
+#define BOARD_SPI_FLASH_CS_PORT         PORTB
+#define BOARD_SPI_FLASH_CS_GPIO         GPIOB
+#define BOARD_SPI_FLASH_CS_GPIO_PIN     22U
+
+#define BOARD_SPI_FLASH_SO_PORT         PORTB
+#define BOARD_SPI_FLASH_SO_GPIO         GPIOB
+#define BOARD_SPI_FLASH_SO_GPIO_PIN     24U
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+void BOARD_InitDebugConsole(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* _BOARD_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.c
new file mode 100644 (file)
index 0000000..09fcc5b
--- /dev/null
@@ -0,0 +1,436 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+/*
+ * How to setup clock using clock driver functions:
+ *
+ * 1. Call CLOCK_InitXXX() to configure corresponding SCG clock source.
+ *    Note: The clock could not be set when it is being used as system clock.
+ *    In default out of reset, the CPU is clocked from FIRC(IRC48M),
+ *    so before setting FIRC, change to use another avaliable clock source.
+ *
+ * 2. Call CLOCK_SetXtal0Freq() to set XTAL0 frequency based on board settings.
+ *
+ * 3. Call CLOCK_SetXxxModeSysClkConfig() to set SCG mode for Xxx run mode.
+ *    Wait until the system clock source is changed to target source.
+ *
+ * 4. If power mode change is needed, call SMC_SetPowerModeProtection() to allow
+ *    corresponding power mode and SMC_SetPowerModeXxx() to change to Xxx mode.
+ *    Supported run mode and clock restrictions could be found in Reference Manual.
+ */
+
+/* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+!!GlobalInfo
+product: Clocks v3.0
+processor: RV32M1
+package_id: RV32M1
+mcu_data: ksdk2_0
+processor_version: 0.0.0
+board: RV32M1_VEGA
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
+
+#include "fsl_msmc.h"
+#include "clock_config.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+#define SCG_LPFLL_DISABLE                                 0U  /*!< LPFLL clock disabled */
+#define SCG_SOSC_DISABLE                                  0U  /*!< System OSC disabled */
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+/* System clock frequency. */
+extern uint32_t SystemCoreClock;
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+#ifndef SDK_SECONDARY_CORE
+/*FUNCTION**********************************************************************
+ *
+ * Function Name : CLOCK_CONFIG_FircSafeConfig
+ * Description   : This function is used to safely configure FIRC clock.
+ *                 In default out of reset, the CPU is clocked from FIRC(IRC48M).
+ *                 Before setting FIRC, change to use SIRC as system clock,
+ *                 then configure FIRC. 
+ * Param fircConfig  : FIRC configuration.
+ *
+ *END**************************************************************************/
+static void CLOCK_CONFIG_FircSafeConfig(const scg_firc_config_t *fircConfig)
+{
+    scg_sys_clk_config_t curConfig;
+    const scg_sirc_config_t scgSircConfig = {.enableMode = kSCG_SircEnable,
+                                             .div1 = kSCG_AsyncClkDisable,
+                                             .div2 = kSCG_AsyncClkDivBy2,
+                                             .range = kSCG_SircRangeHigh};
+    scg_sys_clk_config_t sysClkSafeConfigSource = {
+         .divSlow = kSCG_SysClkDivBy4, /* Slow clock divider. */
+         .divCore = kSCG_SysClkDivBy1, /* Core clock divider. */
+         .src = kSCG_SysClkSrcSirc     /* System clock source. */
+    };
+    /* Init Sirc */
+    CLOCK_InitSirc(&scgSircConfig);
+    /* Change to use SIRC as system clock source to prepare to change FIRCCFG register */
+    CLOCK_SetRunModeSysClkConfig(&sysClkSafeConfigSource);
+    /* Wait for clock source switch finished */
+    do
+    {
+        CLOCK_GetCurSysClkConfig(&curConfig);
+    } while (curConfig.src != sysClkSafeConfigSource.src);
+
+    /* Init Firc */
+    CLOCK_InitFirc(fircConfig);
+}
+#endif
+
+/*******************************************************************************
+ ************************ BOARD_InitBootClocks function ************************
+ ******************************************************************************/
+void BOARD_InitBootClocks(void)
+{
+    BOARD_BootClockRUN();
+}
+
+/*******************************************************************************
+ ********************** Configuration BOARD_BootClockRUN ***********************
+ ******************************************************************************/
+/* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+!!Configuration
+name: BOARD_BootClockRUN
+called_from_default_init: true
+outputs:
+- {id: Bus_clock.outFreq, value: 48 MHz}
+- {id: Core_clock.outFreq, value: 48 MHz}
+- {id: FIRCDIV1_CLK.outFreq, value: 48 MHz}
+- {id: FIRCDIV2_CLK.outFreq, value: 48 MHz}
+- {id: FIRCDIV3_CLK.outFreq, value: 48 MHz}
+- {id: LPO_CLK.outFreq, value: 1 kHz}
+- {id: Platform_clock.outFreq, value: 48 MHz}
+- {id: SIRCDIV3_CLK.outFreq, value: 8 MHz}
+- {id: Slow_clock.outFreq, value: 24 MHz}
+- {id: System_clock.outFreq, value: 48 MHz}
+settings:
+- {id: SCG.FIRCDIV1.scale, value: '1', locked: true}
+- {id: SCG.FIRCDIV2.scale, value: '1', locked: true}
+- {id: SCG.FIRCDIV3.scale, value: '1', locked: true}
+- {id: SCG.LPFLLDIV1.scale, value: '1', locked: true}
+- {id: SCG.LPFLLDIV3.scale, value: '0', locked: true}
+- {id: SCG.SIRCDIV1.scale, value: '0', locked: true}
+- {id: SCG.SIRCDIV3.scale, value: '1', locked: true}
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
+
+/*******************************************************************************
+ * Variables for BOARD_BootClockRUN configuration
+ ******************************************************************************/
+const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockRUN =
+    {
+        .divSlow = kSCG_SysClkDivBy2,             /* Slow Clock Divider: divided by 2 */
+        .divBus = kSCG_SysClkDivBy1,              /* Bus Clock Divider: divided by 1 */
+        .divExt = kSCG_SysClkDivBy1,              /* External Clock Divider: divided by 1 */
+        .divCore = kSCG_SysClkDivBy1,             /* Core Clock Divider: divided by 1 */
+        .src = kSCG_SysClkSrcFirc,                /* Fast IRC is selected as System Clock Source */
+    };
+const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockRUN =
+    {
+        .freq = 0U,                               /* System Oscillator frequency: 0Hz */
+        .monitorMode = kSCG_SysOscMonitorDisable, /* Monitor disabled */
+        .enableMode = SCG_SOSC_DISABLE,           /* System OSC disabled */
+        .div1 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 3: Clock output is disabled */
+    };
+const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockRUN =
+    {
+        .enableMode = kSCG_SircEnable | kSCG_SircEnableInLowPower,/* Enable SIRC clock, Enable SIRC in low power mode */
+        .div1 = kSCG_AsyncClkDisable,             /* Slow IRC Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* Slow IRC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDivBy1,              /* Slow IRC Clock Divider 3: divided by 1 */
+        .range = kSCG_SircRangeHigh,              /* Slow IRC high range clock (8 MHz) */
+    };
+const scg_firc_config_t g_scgFircConfig_BOARD_BootClockRUN =
+    {
+        .enableMode = kSCG_FircEnable,            /* Enable FIRC clock */
+        .div1 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 1: divided by 1 */
+        .div2 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 2: divided by 1 */
+        .div3 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 3: divided by 1 */
+        .range = kSCG_FircRange48M,               /* Fast IRC is trimmed to 48MHz */
+        .trimConfig = NULL,
+    };
+const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockRUN =
+    {
+        .enableMode = SCG_LPFLL_DISABLE,          /* LPFLL clock disabled */
+        .div1 = kSCG_AsyncClkDivBy1,              /* Low Power FLL Clock Divider 1: divided by 1 */
+        .div2 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 3: Clock output is disabled */
+        .range = kSCG_LpFllRange48M,              /* LPFLL is trimmed to 48MHz */
+        .trimConfig = NULL,
+    };
+/*******************************************************************************
+ * Code for BOARD_BootClockRUN configuration
+ ******************************************************************************/
+void BOARD_BootClockRUN(void)
+{
+#ifndef SDK_SECONDARY_CORE
+    scg_sys_clk_config_t curConfig;
+
+    /* Init FIRC */
+    CLOCK_CONFIG_FircSafeConfig(&g_scgFircConfig_BOARD_BootClockRUN);
+    /* Set SCG to FIRC mode. */
+    CLOCK_SetRunModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockRUN);
+    /* Wait for clock source switch finished */
+    do
+    {
+        CLOCK_GetCurSysClkConfig(&curConfig);
+    } while (curConfig.src != g_sysClkConfig_BOARD_BootClockRUN.src);
+    /* Init SIRC */
+    CLOCK_InitSirc(&g_scgSircConfig_BOARD_BootClockRUN);
+    /* Init LPFLL */
+    CLOCK_InitLpFll(&g_scgLpFllConfig_BOARD_BootClockRUN);
+    /* Set SystemCoreClock variable. */
+    SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK;
+#endif
+}
+
+/*******************************************************************************
+ ********************* Configuration BOARD_BootClockHSRUN **********************
+ ******************************************************************************/
+/* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+!!Configuration
+name: BOARD_BootClockHSRUN
+outputs:
+- {id: Bus_clock.outFreq, value: 72 MHz}
+- {id: Core_clock.outFreq, value: 72 MHz}
+- {id: FIRCDIV1_CLK.outFreq, value: 48 MHz}
+- {id: FIRCDIV2_CLK.outFreq, value: 48 MHz}
+- {id: FIRCDIV3_CLK.outFreq, value: 48 MHz}
+- {id: LPO_CLK.outFreq, value: 1 kHz}
+- {id: Platform_clock.outFreq, value: 72 MHz}
+- {id: SIRCDIV3_CLK.outFreq, value: 8 MHz}
+- {id: Slow_clock.outFreq, value: 8 MHz}
+- {id: System_clock.outFreq, value: 72 MHz}
+settings:
+- {id: SCGMode, value: LPFLL}
+- {id: powerMode, value: HSRUN}
+- {id: SCG.DIVCORE.scale, value: '1', locked: true}
+- {id: SCG.DIVSLOW.scale, value: '9'}
+- {id: SCG.FIRCDIV1.scale, value: '1', locked: true}
+- {id: SCG.FIRCDIV2.scale, value: '1', locked: true}
+- {id: SCG.FIRCDIV3.scale, value: '1', locked: true}
+- {id: SCG.LPFLLDIV1.scale, value: '0', locked: true}
+- {id: SCG.LPFLL_mul.scale, value: '36', locked: true}
+- {id: SCG.SCSSEL.sel, value: SCG.LPFLL}
+- {id: SCG.SIRCDIV3.scale, value: '1', locked: true}
+- {id: SCG.TRIMDIV.scale, value: '24'}
+- {id: SCG.TRIMSRCSEL.sel, value: SCG.FIRC}
+- {id: 'SCG::RCCR[SCS].bitField', value: '5'}
+- {id: SCG_LPFLLCSR_LPFLLEN_CFG, value: Enabled}
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
+
+/*******************************************************************************
+ * Variables for BOARD_BootClockHSRUN configuration
+ ******************************************************************************/
+const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockHSRUN =
+    {
+        .divSlow = kSCG_SysClkDivBy9,             /* Slow Clock Divider: divided by 9 */
+        .divBus = kSCG_SysClkDivBy1,              /* Bus Clock Divider: divided by 1 */
+        .divExt = kSCG_SysClkDivBy1,              /* External Clock Divider: divided by 1 */
+        .divCore = kSCG_SysClkDivBy1,             /* Core Clock Divider: divided by 1 */
+        .src = kSCG_SysClkSrcLpFll,               /* Low power FLL is selected as System Clock Source */
+    };
+const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockHSRUN =
+    {
+        .freq = 0U,                               /* System Oscillator frequency: 0Hz */
+        .monitorMode = kSCG_SysOscMonitorDisable, /* Monitor disabled */
+        .enableMode = SCG_SOSC_DISABLE,           /* System OSC disabled */
+        .div1 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 3: Clock output is disabled */
+    };
+const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockHSRUN =
+    {
+        .enableMode = kSCG_SircEnable | kSCG_SircEnableInLowPower,/* Enable SIRC clock, Enable SIRC in low power mode */
+        .div1 = kSCG_AsyncClkDisable,             /* Slow IRC Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* Slow IRC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDivBy1,              /* Slow IRC Clock Divider 3: divided by 1 */
+        .range = kSCG_SircRangeHigh,              /* Slow IRC high range clock (8 MHz) */
+    };
+const scg_firc_config_t g_scgFircConfig_BOARD_BootClockHSRUN =
+    {
+        .enableMode = kSCG_FircEnable,            /* Enable FIRC clock */
+        .div1 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 1: divided by 1 */
+        .div2 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 2: divided by 1 */
+        .div3 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 3: divided by 1 */
+        .range = kSCG_FircRange48M,               /* Fast IRC is trimmed to 48MHz */
+        .trimConfig = NULL,
+    };
+const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockHSRUN =
+    {
+        .enableMode = kSCG_LpFllEnable,           /* Enable LPFLL clock */
+        .div1 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 3: Clock output is disabled */
+        .range = kSCG_LpFllRange72M,              /* LPFLL is trimmed to 72MHz */
+        .trimConfig = NULL,
+    };
+/*******************************************************************************
+ * Code for BOARD_BootClockHSRUN configuration
+ ******************************************************************************/
+void BOARD_BootClockHSRUN(void)
+{
+#ifndef SDK_SECONDARY_CORE
+    scg_sys_clk_config_t curConfig;
+
+    /* Init FIRC */
+    CLOCK_CONFIG_FircSafeConfig(&g_scgFircConfig_BOARD_BootClockHSRUN);
+    /* Init LPFLL */
+    CLOCK_InitLpFll(&g_scgLpFllConfig_BOARD_BootClockHSRUN);
+#if defined(CPU_RV32M1_cm4) || defined(CPU_RV32M1_ri5cy)
+    /* Set HSRUN power mode */
+    SMC_SetPowerModeProtection(SMC0, kSMC_AllowPowerModeAll);
+    SMC_SetPowerModeHsrun(SMC0);
+    while (SMC_GetPowerModeState(SMC0) != kSMC_PowerStateHsrun)
+    {
+    }
+#elif defined(CPU_RV32M1_cm0plus) || defined(CPU_RV32M1_zero_riscy)
+    SMC_SetPowerModeProtection(SMC1, kSMC_AllowPowerModeAll);
+    SMC_SetPowerModeHsrun(SMC1);
+    while (SMC_GetPowerModeState(SMC1) != kSMC_PowerStateHsrun)
+    {
+    }
+#endif
+    /* Set SCG to LPFLL mode. */
+    CLOCK_SetHsrunModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockHSRUN);
+    /* Wait for clock source switch finished */
+    do
+    {
+        CLOCK_GetCurSysClkConfig(&curConfig);
+    } while (curConfig.src != g_sysClkConfig_BOARD_BootClockHSRUN.src);
+    /* Init SIRC */
+    CLOCK_InitSirc(&g_scgSircConfig_BOARD_BootClockHSRUN);
+    /* Set SystemCoreClock variable. */
+    SystemCoreClock = BOARD_BOOTCLOCKHSRUN_CORE_CLOCK;
+#endif
+}
+
+/*******************************************************************************
+ ********************* Configuration BOARD_BootClockVLPR ***********************
+ ******************************************************************************/
+/* TEXT BELOW IS USED AS SETTING FOR TOOLS *************************************
+!!Configuration
+name: BOARD_BootClockVLPR
+outputs:
+- {id: Bus_clock.outFreq, value: 2 MHz}
+- {id: Core_clock.outFreq, value: 4 MHz}
+- {id: LPO_CLK.outFreq, value: 1 kHz}
+- {id: Platform_clock.outFreq, value: 4 MHz}
+- {id: SIRCDIV1_CLK.outFreq, value: 8 MHz}
+- {id: SIRCDIV2_CLK.outFreq, value: 8 MHz}
+- {id: SIRCDIV3_CLK.outFreq, value: 8 MHz}
+- {id: Slow_clock.outFreq, value: 4000/9 kHz}
+- {id: System_clock.outFreq, value: 4 MHz}
+settings:
+- {id: SCGMode, value: SIRC}
+- {id: powerMode, value: VLPR}
+- {id: SCG.DIVBUS.scale, value: '2', locked: true}
+- {id: SCG.DIVCORE.scale, value: '2', locked: true}
+- {id: SCG.DIVSLOW.scale, value: '9'}
+- {id: SCG.FIRCDIV1.scale, value: '1'}
+- {id: SCG.SCSSEL.sel, value: SCG.SIRC}
+- {id: SCG.SIRCDIV1.scale, value: '1', locked: true}
+- {id: SCG.SIRCDIV2.scale, value: '1', locked: true}
+- {id: SCG.SIRCDIV3.scale, value: '1', locked: true}
+ * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/
+
+/*******************************************************************************
+ * Variables for BOARD_BootClockVLPR configuration
+ ******************************************************************************/
+const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockVLPR =
+    {
+        .divSlow = kSCG_SysClkDivBy9,             /* Slow Clock Divider: divided by 9 */
+        .divBus = kSCG_SysClkDivBy2,              /* Bus Clock Divider: divided by 2 */
+        .divExt = kSCG_SysClkDivBy1,              /* External Clock Divider: divided by 1 */
+        .divCore = kSCG_SysClkDivBy2,             /* Core Clock Divider: divided by 2 */
+        .src = kSCG_SysClkSrcSirc,                /* Slow IRC is selected as System Clock Source */
+    };
+const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockVLPR =
+    {
+        .freq = 0U,                               /* System Oscillator frequency: 0Hz */
+        .monitorMode = kSCG_SysOscMonitorDisable, /* Monitor disabled */
+        .enableMode = SCG_SOSC_DISABLE,           /* System OSC disabled */
+        .div1 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* System OSC Clock Divider 3: Clock output is disabled */
+    };
+const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockVLPR =
+    {
+        .enableMode = kSCG_SircEnable | kSCG_SircEnableInLowPower,/* Enable SIRC clock, Enable SIRC in low power mode */
+        .div1 = kSCG_AsyncClkDivBy1,              /* Slow IRC Clock Divider 1: divided by 1 */
+        .div2 = kSCG_AsyncClkDivBy1,              /* Slow IRC Clock Divider 2: divided by 1 */
+        .div3 = kSCG_AsyncClkDivBy1,              /* Slow IRC Clock Divider 3: divided by 1 */
+        .range = kSCG_SircRangeHigh,              /* Slow IRC high range clock (8 MHz) */
+    };
+const scg_firc_config_t g_scgFircConfig_BOARD_BootClockVLPR =
+    {
+        .enableMode = kSCG_FircEnable,            /* Enable FIRC clock */
+        .div1 = kSCG_AsyncClkDivBy1,              /* Fast IRC Clock Divider 1: divided by 1 */
+        .div2 = kSCG_AsyncClkDisable,             /* Fast IRC Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* Fast IRC Clock Divider 3: Clock output is disabled */
+        .range = kSCG_FircRange48M,               /* Fast IRC is trimmed to 48MHz */
+        .trimConfig = NULL,
+    };
+const scg_lpfll_config_t g_scgLpFllConfig_BOARD_BootClockVLPR =
+    {
+        .enableMode = SCG_LPFLL_DISABLE,          /* LPFLL clock disabled */
+        .div1 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 1: Clock output is disabled */
+        .div2 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 2: Clock output is disabled */
+        .div3 = kSCG_AsyncClkDisable,             /* Low Power FLL Clock Divider 3: Clock output is disabled */
+        .range = kSCG_LpFllRange48M,              /* LPFLL is trimmed to 48MHz */
+        .trimConfig = NULL,
+    };
+/*******************************************************************************
+ * Code for BOARD_BootClockVLPR configuration
+ ******************************************************************************/
+void BOARD_BootClockVLPR(void)
+{
+#ifndef SDK_SECONDARY_CORE
+    scg_sys_clk_config_t curConfig;
+
+    /* Init SIRC */
+    CLOCK_InitSirc(&g_scgSircConfig_BOARD_BootClockVLPR);
+    /* Set SCG to SIRC mode. */
+    CLOCK_SetVlprModeSysClkConfig(&g_sysClkConfig_BOARD_BootClockVLPR);
+    /* Init FIRC */
+    CLOCK_InitFirc(&g_scgFircConfig_BOARD_BootClockVLPR);
+    /* Init LPFLL */
+    CLOCK_InitLpFll(&g_scgLpFllConfig_BOARD_BootClockVLPR);
+#if defined(CPU_RV32M1_cm4) || defined(CPU_RV32M1_ri5cy)
+    /* Set VLPR power mode. */
+    SMC_SetPowerModeProtection(SMC0, kSMC_AllowPowerModeAll);
+    SMC_SetPowerModeVlpr(SMC0);
+    while (SMC_GetPowerModeState(SMC0) != kSMC_PowerStateVlpr)
+    {
+    }
+#elif defined(CPU_RV32M1_cm0plus) || defined(CPU_RV32M1_zero_riscy)
+    /* Set VLPR power mode. */
+    SMC_SetPowerModeProtection(SMC1, kSMC_AllowPowerModeAll);
+    SMC_SetPowerModeVlpr(SMC1);
+    while (SMC_GetPowerModeState(SMC1) != kSMC_PowerStateVlpr)
+    {
+    }
+#endif
+    /* Wait for clock source switch finished */
+    do
+    {
+        CLOCK_GetCurSysClkConfig(&curConfig);
+    } while (curConfig.src != g_sysClkConfig_BOARD_BootClockVLPR.src);
+    /* Set SystemCoreClock variable. */
+    SystemCoreClock = BOARD_BOOTCLOCKVLPR_CORE_CLOCK;
+#endif
+}
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/clock_config.h
new file mode 100644 (file)
index 0000000..75fd7d6
--- /dev/null
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _CLOCK_CONFIG_H_
+#define _CLOCK_CONFIG_H_
+
+#include "fsl_common.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*******************************************************************************
+ ************************ BOARD_InitBootClocks function ************************
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus*/
+
+/*!
+ * @brief This function executes default configuration of clocks.
+ *
+ */
+void BOARD_InitBootClocks(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus*/
+
+/*******************************************************************************
+ ********************** Configuration BOARD_BootClockRUN ***********************
+ ******************************************************************************/
+/*******************************************************************************
+ * Definitions for BOARD_BootClockRUN configuration
+ ******************************************************************************/
+#define BOARD_BOOTCLOCKRUN_CORE_CLOCK              48000000U  /*!< Core clock frequency: 48000000Hz */
+
+/*! @brief SCG set for BOARD_BootClockRUN configuration.
+ */
+extern const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockRUN;
+/*! @brief System OSC set for BOARD_BootClockRUN configuration.
+ */
+extern const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockRUN;
+/*! @brief SIRC set for BOARD_BootClockRUN configuration.
+ */
+extern const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockRUN;
+/*! @brief FIRC set for BOARD_BootClockRUN configuration.
+ */
+extern const scg_firc_config_t g_scgFircConfigBOARD_BootClockRUN;
+/*! @brief Low Power FLL set for BOARD_BootClockRUN configuration.
+ */
+extern const scg_lpfll_config_t g_scgLpFllConfigBOARD_BootClockRUN;
+
+/*******************************************************************************
+ * API for BOARD_BootClockRUN configuration
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus*/
+
+/*!
+ * @brief This function executes configuration of clocks.
+ *
+ */
+void BOARD_BootClockRUN(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus*/
+
+/*******************************************************************************
+ ********************* Configuration BOARD_BootClockHSRUN **********************
+ ******************************************************************************/
+/*******************************************************************************
+ * Definitions for BOARD_BootClockHSRUN configuration
+ ******************************************************************************/
+#define BOARD_BOOTCLOCKHSRUN_CORE_CLOCK            72000000U  /*!< Core clock frequency: 72000000Hz */
+
+/*! @brief SCG set for BOARD_BootClockHSRUN configuration.
+ */
+extern const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockHSRUN;
+/*! @brief System OSC set for BOARD_BootClockHSRUN configuration.
+ */
+extern const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockHSRUN;
+/*! @brief SIRC set for BOARD_BootClockHSRUN configuration.
+ */
+extern const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockHSRUN;
+/*! @brief FIRC set for BOARD_BootClockHSRUN configuration.
+ */
+extern const scg_firc_config_t g_scgFircConfigBOARD_BootClockHSRUN;
+/*! @brief Low Power FLL set for BOARD_BootClockHSRUN configuration.
+ */
+extern const scg_lpfll_config_t g_scgLpFllConfigBOARD_BootClockHSRUN;
+
+/*******************************************************************************
+ * API for BOARD_BootClockHSRUN configuration
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus*/
+
+/*!
+ * @brief This function executes configuration of clocks.
+ *
+ */
+void BOARD_BootClockHSRUN(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus*/
+
+/*******************************************************************************
+ ********************* Configuration BOARD_BootClockVLPR ***********************
+ ******************************************************************************/
+/*******************************************************************************
+ * Definitions for BOARD_BootClockVLPR configuration
+ ******************************************************************************/
+#define BOARD_BOOTCLOCKVLPR_CORE_CLOCK              4000000U  /*!< Core clock frequency: 4000000Hz */
+
+/*! @brief SCG set for BOARD_BootClockVLPR configuration.
+ */
+extern const scg_sys_clk_config_t g_sysClkConfig_BOARD_BootClockVLPR;
+/*! @brief System OSC set for BOARD_BootClockVLPR configuration.
+ */
+extern const scg_sosc_config_t g_scgSysOscConfig_BOARD_BootClockVLPR;
+/*! @brief SIRC set for BOARD_BootClockVLPR configuration.
+ */
+extern const scg_sirc_config_t g_scgSircConfig_BOARD_BootClockVLPR;
+/*! @brief FIRC set for BOARD_BootClockVLPR configuration.
+ */
+extern const scg_firc_config_t g_scgFircConfigBOARD_BootClockVLPR;
+/*! @brief Low Power FLL set for BOARD_BootClockVLPR configuration.
+ */
+extern const scg_lpfll_config_t g_scgLpFllConfigBOARD_BootClockVLPR;
+
+/*******************************************************************************
+ * API for BOARD_BootClockVLPR configuration
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus*/
+
+/*!
+ * @brief This function executes configuration of clocks.
+ *
+ */
+void BOARD_BootClockVLPR(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus*/
+
+#endif /* _CLOCK_CONFIG_H_ */
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/readme.txt b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/board/readme.txt
new file mode 100644 (file)
index 0000000..391b4a9
--- /dev/null
@@ -0,0 +1,48 @@
+Overview
+========
+The Hello World demo application provides a sanity check for the new SDK build environments and board bring up. The Hello
+World demo prints the "Hello World" string to the terminal using the SDK UART drivers. The purpose of this demo is to
+show how to use the UART, and to provide a simple project for debugging and further development.
+
+Toolchain supported
+===================
+- GCC RISC-V Embedded 7.1.1
+- RISC-V Eclipse IDE 4.7.2
+
+Hardware requirements
+=====================
+- Mini/micro USB cable
+- RV32M1-VEGA board
+- Personal Computer
+
+Board settings
+==============
+No special settings are required.
+If download M0+ core project, need to let MCU boot from M0+ core, please follow below steps:
+1. Download blhost.exe from www.nxp.com/kboot.
+2. Connect J8 on board to PC using USB cable.
+3. After PC recognize the USB HID device, go to blhost.exe folder, open command line.
+4. Run command "blhost.exe -u -- flash-erase-all-unsecure", it will erase the flash on chip.
+5. Run command "blhost.exe -u -- flash-program-once 0x84 4 ffffffbf", set FOPT3 to boot from M0+ core.
+
+Prepare the Demo
+================
+1.  Connect a USB cable between the host PC and the OpenSDA USB port on the target board. 
+2.  Open a serial terminal with the following settings:
+    - 115200 baud rate
+    - 8 data bits
+    - No parity
+    - One stop bit
+    - No flow control
+3.  Download the program to the target board.
+4.  Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
+
+Running the demo
+================
+The log below shows the output of the hello world demo in the terminal window:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+hello world.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Customization options
+=====================
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy.h
new file mode 100644 (file)
index 0000000..0264b6f
--- /dev/null
@@ -0,0 +1,24026 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_ri5cy
+**                          RV32M1_ri5cy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         CMSIS Peripheral Access Layer for RV32M1_ri5cy
+**
+**     Copyright 1997-2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_ri5cy.h
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief CMSIS Peripheral Access Layer for RV32M1_ri5cy
+ *
+ * CMSIS Peripheral Access Layer for RV32M1_ri5cy
+ */
+
+#ifndef _RV32M1_RI5CY_H_
+#define _RV32M1_RI5CY_H_                    /**< Symbol preventing repeated inclusion */
+
+/** Memory map major version (memory maps with equal major version number are
+ * compatible) */
+#define MCU_MEM_MAP_VERSION 0x0100U
+/** Memory map minor version */
+#define MCU_MEM_MAP_VERSION_MINOR 0x0000U
+
+
+/* ----------------------------------------------------------------------------
+   -- Interrupt vector numbers
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Interrupt_vector_numbers Interrupt vector numbers
+ * @{
+ */
+
+/** Interrupt Number Definitions */
+#define NUMBER_OF_INT_VECTORS 82                 /**< Number of interrupts in the Vector table */
+
+typedef enum IRQn {
+  /* Auxiliary constants */
+  NotAvail_IRQn                = -128,             /**< Not available device specific interrupt */
+
+  /* Device specific interrupts */
+  DMA0_0_4_8_12_IRQn           = 0,                /**< DMA0 channel 0/4/8/12 transfer complete */
+  DMA0_1_5_9_13_IRQn           = 1,                /**< DMA0 channel 1/5/9/13 transfer complete */
+  DMA0_2_6_10_14_IRQn          = 2,                /**< DMA0 channel 2/6/10/14 transfer complete */
+  DMA0_3_7_11_15_IRQn          = 3,                /**< DMA0 channel 3/7/11/15 transfer complete */
+  DMA0_Error_IRQn              = 4,                /**< DMA0 channel 0-15 error interrupt */
+  CMC0_IRQn                    = 5,                /**< Core Mode Controller 0 */
+  MUA_IRQn                     = 6,                /**< MU Side A interrupt */
+  USB0_IRQn                    = 7,                /**< USB0 interrupt */
+  USDHC0_IRQn                  = 8,                /**< SDHC0 interrupt */
+  I2S0_IRQn                    = 9,                /**< I2S0 interrupt */
+  FLEXIO0_IRQn                 = 10,               /**< FLEXIO0 */
+  EMVSIM0_IRQn                 = 11,               /**< EMVSIM0 interrupt */
+  LPIT0_IRQn                   = 12,               /**< LPIT0 interrupt */
+  LPSPI0_IRQn                  = 13,               /**< LPSPI0 single interrupt vector for all sources */
+  LPSPI1_IRQn                  = 14,               /**< LPSPI1 single interrupt vector for all sources */
+  LPI2C0_IRQn                  = 15,               /**< LPI2C0 interrupt */
+  LPI2C1_IRQn                  = 16,               /**< LPI2C1 interrupt */
+  LPUART0_IRQn                 = 17,               /**< LPUART0 status and error */
+  PORTA_IRQn                   = 18,               /**< PORTA Pin detect */
+  TPM0_IRQn                    = 19,               /**< TPM0 single interrupt vector for all sources */
+  ADC0_IRQn                    = 21,               /**< LPADC0 interrupt */
+  LPDAC0_IRQn                  = 20,               /**< DAC0 interrupt */
+  LPCMP0_IRQn                  = 22,               /**< LPCMP0 interrupt */
+  RTC_IRQn                     = 23,               /**< RTC Alarm interrupt */
+  INTMUX0_0_IRQn               = 24,               /**< INTMUX0 channel0 interrupt */
+  INTMUX0_1_IRQn               = 25,               /**< INTMUX0 channel1 interrupt */
+  INTMUX0_2_IRQn               = 26,               /**< INTMUX0 channel2 interrupt */
+  INTMUX0_3_IRQn               = 27,               /**< INTMUX0 channel3 interrupt */
+  INTMUX0_4_IRQn               = 28,               /**< INTMUX0 channel4 interrupt */
+  INTMUX0_5_IRQn               = 29,               /**< INTMUX0 channel5 interrupt */
+  INTMUX0_6_IRQn               = 30,               /**< INTMUX0 channel6 interrupt */
+  INTMUX0_7_IRQn               = 31,               /**< INTMUX0 channel7 interrupt */
+  EWM_IRQn                     = 32,               /**< EWM interrupt */
+  FTFE_Command_Complete_IRQn   = 33,               /**< FTFE interrupt */
+  FTFE_Read_Collision_IRQn     = 34,               /**< FTFE interrupt */
+  LLWU0_IRQn                   = 35,               /**< Low leakage wakeup 0 */
+  SPM_IRQn                     = 36,               /**< SPM */
+  WDOG0_IRQn                   = 37,               /**< WDOG0 interrupt */
+  SCG_IRQn                     = 38,               /**< SCG interrupt */
+  LPTMR0_IRQn                  = 39,               /**< LPTMR0 interrupt */
+  LPTMR1_IRQn                  = 40,               /**< LPTMR1 interrupt */
+  TPM1_IRQn                    = 41,               /**< TPM1 single interrupt vector for all sources */
+  TPM2_IRQn                    = 42,               /**< TPM2 single interrupt vector for all sources */
+  LPI2C2_IRQn                  = 43,               /**< LPI2C2 interrupt */
+  LPSPI2_IRQn                  = 44,               /**< LPSPI2 single interrupt vector for all sources */
+  LPUART1_IRQn                 = 45,               /**< LPUART1 status and error */
+  LPUART2_IRQn                 = 46,               /**< LPUART2 status and error */
+  PORTB_IRQn                   = 47,               /**< PORTB Pin detect */
+  PORTC_IRQn                   = 48,               /**< PORTC Pin detect */
+  PORTD_IRQn                   = 49,               /**< PORTD Pin detect */
+  CAU3_Task_Complete_IRQn      = 50,               /**< Cryptographic Acceleration Unit version 3 Task Complete */
+  CAU3_Security_Violation_IRQn = 51,               /**< Cryptographic Acceleration Unit version 3 Security Violation */
+  TRNG_IRQn                    = 52,               /**< TRNG interrupt */
+  LPIT1_IRQn                   = 53,               /**< LPIT1 interrupt */
+  LPTMR2_IRQn                  = 54,               /**< LPTMR2 interrupt */
+  TPM3_IRQn                    = 55,               /**< TPM3 single interrupt vector for all sources */
+  LPI2C3_IRQn                  = 56,               /**< LPI2C3 interrupt */
+  LPSPI3_IRQn                  = 57,               /**< LPSPI3 single interrupt vector for all sources */
+  LPUART3_IRQn                 = 58,               /**< LPUART3 status and error */
+  PORTE_IRQn                   = 59,               /**< PORTE Pin detect */
+  LPCMP1_IRQn                  = 60,               /**< LPCMP1 interrupt */
+  RF0_0_IRQn                   = 61,               /**< RF0 interrupt 0 */
+  RF0_1_IRQn                   = 62,               /**< RF0 interrupt 1 */
+} IRQn_Type;
+
+/*!
+ * @}
+ */ /* end of group Interrupt_vector_numbers */
+
+
+/* ----------------------------------------------------------------------------
+   -- Cortex M4 Core Configuration
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Cortex_Core_Configuration Cortex M4 Core Configuration
+ * @{
+ */
+
+#define __MPU_PRESENT                  1         /**< Defines if an MPU is present or not */
+#define __NVIC_PRIO_BITS               3         /**< Number of priority bits implemented in the NVIC */
+#define __Vendor_SysTickConfig         0         /**< Vendor specific implementation of SysTickConfig is defined */
+#define __FPU_PRESENT                  1         /**< Defines if an FPU is present or not */
+
+#include "core_riscv32.h"              /* Core Peripheral Access Layer */
+#include "system_RV32M1_ri5cy.h"  /* Device specific configuration file */
+
+/*!
+ * @}
+ */ /* end of group Cortex_Core_Configuration */
+
+
+/* ----------------------------------------------------------------------------
+   -- Mapping Information
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Mapping_Information Mapping Information
+ * @{
+ */
+
+/** Mapping Information */
+/*!
+ * @addtogroup edma_request
+ * @{ */
+
+/*******************************************************************************
+ * Definitions
+*******************************************************************************/
+
+/*!
+ * @brief Enumeration for the DMA hardware request
+ *
+ * Defines the enumeration for the DMA hardware request collections.
+ */
+typedef enum _dma_request_source
+{
+    kDmaRequestMux0LLWU0            = 0|0x100U,    /**< LLWU0 Wakeup */
+    kDmaRequestMux0LPTMR0           = 1|0x100U,    /**< LPTMR0 Trigger */
+    kDmaRequestMux0LPTMR1           = 2|0x100U,    /**< LPTMR1 Trigger */
+    kDmaRequestMux0TPM0Channel0     = 3|0x100U,    /**< TPM0 Channel 0 */
+    kDmaRequestMux0TPM0Channel1     = 4|0x100U,    /**< TPM0 Channel 1 */
+    kDmaRequestMux0TPM0Channel2     = 5|0x100U,    /**< TPM0 Channel 2 */
+    kDmaRequestMux0TPM0Channel3     = 6|0x100U,    /**< TPM0 Channel 3 */
+    kDmaRequestMux0TPM0Channel4     = 7|0x100U,    /**< TPM0 Channel 4 */
+    kDmaRequestMux0TPM0Channel5     = 8|0x100U,    /**< TPM0 Channel 5 */
+    kDmaRequestMux0TPM0Overflow     = 9|0x100U,    /**< TPM0 Overflow */
+    kDmaRequestMux0TPM1Channel0     = 10|0x100U,   /**< TPM1 Channel 0 */
+    kDmaRequestMux0TPM1Channel1     = 11|0x100U,   /**< TPM1 Channel 1 */
+    kDmaRequestMux0TPM1Overflow     = 12|0x100U,   /**< TPM1 Overflow */
+    kDmaRequestMux0TPM2Channel0     = 13|0x100U,   /**< TPM2 Channel 0 */
+    kDmaRequestMux0TPM2Channel1     = 14|0x100U,   /**< TPM2 Channel 1 */
+    kDmaRequestMux0TPM2Channel2     = 15|0x100U,   /**< TPM2 Channel 2 */
+    kDmaRequestMux0TPM2Channel3     = 16|0x100U,   /**< TPM2 Channel 3 */
+    kDmaRequestMux0TPM2Channel4     = 17|0x100U,   /**< TPM2 Channel 4 */
+    kDmaRequestMux0TPM2Channel5     = 18|0x100U,   /**< TPM2 Channel 5 */
+    kDmaRequestMux0TPM2Overflow     = 19|0x100U,   /**< TPM2 Overflow */
+    kDmaRequestMux0EMVSIM0Rx        = 20|0x100U,   /**< EMVSIM0 Receive */
+    kDmaRequestMux0EMVSIM0Tx        = 21|0x100U,   /**< EMVSIM0 Transmit */
+    kDmaRequestMux0FLEXIO0Channel0  = 22|0x100U,   /**< FLEXIO0 Channel 0 */
+    kDmaRequestMux0FLEXIO0Channel1  = 23|0x100U,   /**< FLEXIO0 Channel 1 */
+    kDmaRequestMux0FLEXIO0Channel2  = 24|0x100U,   /**< FLEXIO0 Channel 2 */
+    kDmaRequestMux0FLEXIO0Channel3  = 25|0x100U,   /**< FLEXIO0 Channel 3 */
+    kDmaRequestMux0FLEXIO0Channel4  = 26|0x100U,   /**< FLEXIO0 Channel 4 */
+    kDmaRequestMux0FLEXIO0Channel5  = 27|0x100U,   /**< FLEXIO0 Channel 5 */
+    kDmaRequestMux0FLEXIO0Channel6  = 28|0x100U,   /**< FLEXIO0 Channel 6 */
+    kDmaRequestMux0FLEXIO0Channel7  = 29|0x100U,   /**< FLEXIO0 Channel 7 */
+    kDmaRequestMux0LPI2C0Rx         = 30|0x100U,   /**< LPI2C0 Receive */
+    kDmaRequestMux0LPI2C0Tx         = 31|0x100U,   /**< LPI2C0 Transmit */
+    kDmaRequestMux0LPI2C1Rx         = 32|0x100U,   /**< LPI2C1 Receive */
+    kDmaRequestMux0LPI2C1Tx         = 33|0x100U,   /**< LPI2C1 Transmit */
+    kDmaRequestMux0LPI2C2Rx         = 34|0x100U,   /**< LPI2C2 Receive */
+    kDmaRequestMux0LPI2C2Tx         = 35|0x100U,   /**< LPI2C2 Transmit */
+    kDmaRequestMux0I2S0Rx           = 36|0x100U,   /**< I2S0 Receive */
+    kDmaRequestMux0I2S0Tx           = 37|0x100U,   /**< I2S0 Transmit */
+    kDmaRequestMux0LPSPI0Rx         = 38|0x100U,   /**< LPSPI0 Receive */
+    kDmaRequestMux0LPSPI0Tx         = 39|0x100U,   /**< LPSPI0 Transmit */
+    kDmaRequestMux0LPSPI1Rx         = 40|0x100U,   /**< LPSPI1 Receive */
+    kDmaRequestMux0LPSPI1Tx         = 41|0x100U,   /**< LPSPI1 Transmit */
+    kDmaRequestMux0LPSPI2Rx         = 42|0x100U,   /**< LPSPI2 Receive */
+    kDmaRequestMux0LPSPI2Tx         = 43|0x100U,   /**< LPSPI2 Transmit */
+    kDmaRequestMux0LPUART0Rx        = 44|0x100U,   /**< LPUART0 Receive */
+    kDmaRequestMux0LPUART0Tx        = 45|0x100U,   /**< LPUART0 Transmit */
+    kDmaRequestMux0LPUART1Rx        = 46|0x100U,   /**< LPUART1 Receive */
+    kDmaRequestMux0LPUART1Tx        = 47|0x100U,   /**< LPUART1 Transmit */
+    kDmaRequestMux0LPUART2Rx        = 48|0x100U,   /**< LPUART2 Receive */
+    kDmaRequestMux0LPUART2Tx        = 49|0x100U,   /**< LPUART2 Transmit */
+    kDmaRequestMux0PORTA            = 50|0x100U,   /**< PORTA Pin Request */
+    kDmaRequestMux0PORTB            = 51|0x100U,   /**< PORTB Pin Request */
+    kDmaRequestMux0PORTC            = 52|0x100U,   /**< PORTC Pin Request */
+    kDmaRequestMux0PORTD            = 53|0x100U,   /**< PORTD Pin Request */
+    kDmaRequestMux0LPADC0           = 54|0x100U,   /**< LPADC0 Conversion Complete */
+    kDmaRequestMux0LPCMP0           = 55|0x100U,   /**< LPCMP0 Comparator Trigger */
+    kDmaRequestMux0DAC0             = 56|0x100U,   /**< DAC0 Conversion Complete */
+    kDmaRequestMux0CAUv3            = 57|0x100U,   /**< CAUv3 Data Request */
+    kDmaRequestMux0LPTMR2           = 58|0x100U,   /**< LPTMR2 Trigger */
+    kDmaRequestMux0LPSPI3Rx         = 59|0x100U,   /**< LPSPI3 Receive */
+    kDmaRequestMux0LPSPI3Tx         = 60|0x100U,   /**< LPSPI3 Transmit */
+    kDmaRequestMux0LPUART3Rx        = 61|0x100U,   /**< LPUART3 Receive */
+    kDmaRequestMux0LPUART3Tx        = 62|0x100U,   /**< LPUART3 Transmit */
+    kDmaRequestMux0PORTE            = 63|0x100U,   /**< PORTE Pin Request */
+} dma_request_source_t;
+
+/* @} */
+
+/*!
+ * @addtogroup trgmux_source
+ * @{ */
+
+/*******************************************************************************
+ * Definitions
+*******************************************************************************/
+
+/*!
+ * @brief Enumeration for the TRGMUX source
+ *
+ * Defines the enumeration for the TRGMUX source collections.
+ */
+typedef enum _trgmux_source
+{
+    kTRGMUX_Source0Disabled         = 0U,          /**< Trigger function is disabled */
+    kTRGMUX_Source1Disabled         = 0U,          /**< Trigger function is disabled */
+    kTRGMUX_Source0Llwu0            = 1U,          /**< LLWU0 trigger is selected */
+    kTRGMUX_Source1Llwu1            = 1U,          /**< LLWU1 trigger is selected */
+    kTRGMUX_Source0Lpit0Channel0    = 2U,          /**< LPIT0 Channel 0 is selected */
+    kTRGMUX_Source1Lpit1Channel0    = 2U,          /**< LPIT1 Channel 0 is selected */
+    kTRGMUX_Source0Lpit0Channel1    = 3U,          /**< LPIT0 Channel 1 is selected */
+    kTRGMUX_Source1Lpit1Channel1    = 3U,          /**< LPIT1 Channel 1 is selected */
+    kTRGMUX_Source0Lpit0Channel2    = 4U,          /**< LPIT0 Channel 2 is selected */
+    kTRGMUX_Source1Lpit1Channel2    = 4U,          /**< LPIT1 Channel 2 is selected */
+    kTRGMUX_Source0Lpit0Channel3    = 5U,          /**< LPIT0 Channel 3 is selected */
+    kTRGMUX_Source1Lpit1Channel3    = 5U,          /**< LPIT1 Channel 3 is selected */
+    kTRGMUX_Source0RtcAlarm         = 6U,          /**< RTC Alarm is selected */
+    kTRGMUX_Source1Lptmr2Trigger    = 6U,          /**< LPTMR2 Trigger is selected */
+    kTRGMUX_Source0RtcSeconds       = 7U,          /**< RTC Seconds is selected */
+    kTRGMUX_Source1Tpm3ChannelEven  = 7U,          /**< TPM3 Channel Even is selected */
+    kTRGMUX_Source0Lptmr0Trigger    = 8U,          /**< LPTMR0 Trigger is selected */
+    kTRGMUX_Source1Tpm3ChannelOdd   = 8U,          /**< TPM3 Channel Odd is selected */
+    kTRGMUX_Source0Lptmr1Trigger    = 9U,          /**< LPTMR1 Trigger is selected */
+    kTRGMUX_Source1Tpm3Overflow     = 9U,          /**< TPM3 Overflow is selected */
+    kTRGMUX_Source0Tpm0ChannelEven  = 10U,         /**< TPM0 Channel Even is selected */
+    kTRGMUX_Source1Lpi2c3MasterStop = 10U,         /**< LPI2C3 Master Stop is selected */
+    kTRGMUX_Source0Tpm0ChannelOdd   = 11U,         /**< TPM0 Channel Odd is selected */
+    kTRGMUX_Source1Lpi2c3SlaveStop  = 11U,         /**< LPI2C3 Slave Stop is selected */
+    kTRGMUX_Source0Tpm0Overflow     = 12U,         /**< TPM0 Overflow is selected */
+    kTRGMUX_Source1Lpspi3Frame      = 12U,         /**< LPSPI3 Frame is selected */
+    kTRGMUX_Source0Tpm1ChannelEven  = 13U,         /**< TPM1 Channel Even is selected */
+    kTRGMUX_Source1Lpspi3RX         = 13U,         /**< LPSPI3 Rx is selected */
+    kTRGMUX_Source0Tpm1ChannelOdd   = 14U,         /**< TPM1 Channel Odd is selected */
+    kTRGMUX_Source1Lpuart3RxData    = 14U,         /**< LPUART3 Rx Data is selected */
+    kTRGMUX_Source0Tpm1Overflow     = 15U,         /**< TPM1 Overflow is selected */
+    kTRGMUX_Source1Lpuart3RxIdle    = 15U,         /**< LPUART3 Rx Idle is selected */
+    kTRGMUX_Source0Tpm2ChannelEven  = 16U,         /**< TPM2 Channel Even is selected */
+    kTRGMUX_Source1Lpuart3TxData    = 16U,         /**< LPUART3 Tx Data is selected */
+    kTRGMUX_Source0Tpm2ChannelOdd   = 17U,         /**< TPM2 Channel Odd is selected */
+    kTRGMUX_Source1PortEPinTrigger  = 17U,         /**< PORTE Pin Trigger is selected */
+    kTRGMUX_Source0Tpm2Overflow     = 18U,         /**< TPM2 Overflow is selected */
+    kTRGMUX_Source1Lpcmp1Output     = 18U,         /**< LPCMP1 Output is selected */
+    kTRGMUX_Source0FlexIO0Timer0    = 19U,         /**< FlexIO0 Timer 0 is selected */
+    kTRGMUX_Source1RtcAlarm         = 19U,         /**< RTC Alarm is selected */
+    kTRGMUX_Source0FlexIO0Timer1    = 20U,         /**< FlexIO0 Timer 1 is selected */
+    kTRGMUX_Source1RtcSeconds       = 20U,         /**< RTC Seconds is selected */
+    kTRGMUX_Source0FlexIO0Timer2    = 21U,         /**< FlexIO0 Timer 2 is selected */
+    kTRGMUX_Source1Lptmr0Trigger    = 21U,         /**< LPTMR0 Trigger is selected */
+    kTRGMUX_Source0FlexIO0Timer3    = 22U,         /**< FlexIO0 Timer 3 is selected */
+    kTRGMUX_Source1Lptmr1Trigger    = 22U,         /**< LPTMR1 Trigger is selected */
+    kTRGMUX_Source0FlexIO0Timer4    = 23U,         /**< FLexIO0 Timer 4 is selected */
+    kTRGMUX_Source1Tpm1ChannelEven  = 23U,         /**< TPM1 Channel Even is selected */
+    kTRGMUX_Source0FlexIO0Timer5    = 24U,         /**< FlexIO0 Timer 5 is selected */
+    kTRGMUX_Source1Tpm1ChannelOdd   = 24U,         /**< TPM1 Channel Odd is selected */
+    kTRGMUX_Source0FlexIO0Timer6    = 25U,         /**< FlexIO0 Timer 6 is selected */
+    kTRGMUX_Source1Tpm1Overflow     = 25U,         /**< TPM1 Overflow is selected */
+    kTRGMUX_Source0FlexIO0Timer7    = 26U,         /**< FlexIO0 Timer 7 is selected */
+    kTRGMUX_Source1Tpm2ChannelEven  = 26U,         /**< TPM2 Channel Even is selected */
+    kTRGMUX_Source0Lpi2c0MasterStop = 27U,         /**< LPI2C0 Master Stop is selected */
+    kTRGMUX_Source1Tpm2ChannelOdd   = 27U,         /**< TPM2 Channel Odd is selected */
+    kTRGMUX_Source0Lpi2c0SlaveStop  = 28U,         /**< LPI2C0 Slave Stop is selected */
+    kTRGMUX_Source1Tpm2Overflow     = 28U,         /**< TPM2 Overflow is selected */
+    kTRGMUX_Source0Lpi2c1MasterStop = 29U,         /**< LPI2C1 Master Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer0    = 29U,         /**< FlexIO0 Timer 0 is selected */
+    kTRGMUX_Source0Lpi2c1SlaveStop  = 30U,         /**< LPI2C1 Slave Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer1    = 30U,         /**< FlexIO0 Timer 1 is selected */
+    kTRGMUX_Source0Lpi2c2MasterStop = 31U,         /**< LPI2C2 Master Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer2    = 31U,         /**< FlexIO0 Timer 2 is selected */
+    kTRGMUX_Source0Lpi2c2SlaveStop  = 32U,         /**< LPI2C2 Slave Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer3    = 32U,         /**< FlexIO0 Timer 3 is selected */
+    kTRGMUX_Source0Sai0Rx           = 33U,         /**< SAI0 Rx Frame Sync is selected */
+    kTRGMUX_Source1FlexIO0Timer4    = 33U,         /**< FLexIO0 Timer 4 is selected */
+    kTRGMUX_Source0Sai0Tx           = 34U,         /**< SAI0 Tx Frame Sync is selected */
+    kTRGMUX_Source1FlexIO0Timer5    = 34U,         /**< FlexIO0 Timer 5 is selected */
+    kTRGMUX_Source0Lpspi0Frame      = 35U,         /**< LPSPI0 Frame is selected */
+    kTRGMUX_Source1FlexIO0Timer6    = 35U,         /**< FlexIO0 Timer 6 is selected */
+    kTRGMUX_Source0Lpspi0Rx         = 36U,         /**< LPSPI0 Rx is selected */
+    kTRGMUX_Source1FlexIO0Timer7    = 36U,         /**< FlexIO0 Timer 7 is selected */
+    kTRGMUX_Source0Lpspi1Frame      = 37U,         /**< LPSPI1 Frame is selected */
+    kTRGMUX_Source1Lpi2c0MasterStop = 37U,         /**< LPI2C0 Master Stop is selected */
+    kTRGMUX_Source0Lpspi1Rx         = 38U,         /**< LPSPI1 Rx is selected */
+    kTRGMUX_Source1Lpi2c0SlaveStop  = 38U,         /**< LPI2C0 Slave Stop is selected */
+    kTRGMUX_Source0Lpspi2Frame      = 39U,         /**< LPSPI2 Frame is selected */
+    kTRGMUX_Source1Lpi2c1MasterStop = 39U,         /**< LPI2C1 Master Stop is selected */
+    kTRGMUX_Source0Lpspi2RX         = 40U,         /**< LPSPI2 Rx is selected */
+    kTRGMUX_Source1Lpi2c1SlaveStop  = 40U,         /**< LPI2C1 Slave Stop is selected */
+    kTRGMUX_Source0Lpuart0RxData    = 41U,         /**< LPUART0 Rx Data is selected */
+    kTRGMUX_Source1Lpi2c2MasterStop = 41U,         /**< LPI2C2 Master Stop is selected */
+    kTRGMUX_Source0Lpuart0RxIdle    = 42U,         /**< LPUART0 Rx Idle is selected */
+    kTRGMUX_Source1Lpi2c2SlaveStop  = 42U,         /**< LPI2C2 Slave Stop is selected */
+    kTRGMUX_Source0Lpuart0TxData    = 43U,         /**< LPUART0 Tx Data is selected */
+    kTRGMUX_Source1Sai0Rx           = 43U,         /**< SAI0 Rx Frame Sync is selected */
+    kTRGMUX_Source0Lpuart1RxData    = 44U,         /**< LPUART1 Rx Data is selected */
+    kTRGMUX_Source1Sai0Tx           = 44U,         /**< SAI0 Tx Frame Sync is selected */
+    kTRGMUX_Source0Lpuart1RxIdle    = 45U,         /**< LPUART1 Rx Idle is selected */
+    kTRGMUX_Source1Lpspi0Frame      = 45U,         /**< LPSPI0 Frame is selected */
+    kTRGMUX_Source0Lpuart1TxData    = 46U,         /**< LPUART1 TX Data is selected */
+    kTRGMUX_Source1Lpspi0Rx         = 46U,         /**< LPSPI0 Rx is selected */
+    kTRGMUX_Source0Lpuart2RxData    = 47U,         /**< LPUART2 RX Data is selected */
+    kTRGMUX_Source1Lpspi1Frame      = 47U,         /**< LPSPI1 Frame is selected */
+    kTRGMUX_Source0Lpuart2RxIdle    = 48U,         /**< LPUART2 RX Idle is selected */
+    kTRGMUX_Source1Lpspi1Rx         = 48U,         /**< LPSPI1 Rx is selected */
+    kTRGMUX_Source0Lpuart2TxData    = 49U,         /**< LPUART2 TX Data is selected */
+    kTRGMUX_Source1Lpspi2Frame      = 49U,         /**< LPSPI2 Frame is selected */
+    kTRGMUX_Source0Usb0Frame        = 50U,         /**< USB0 Start of Frame is selected */
+    kTRGMUX_Source1Lpspi2RX         = 50U,         /**< LPSPI2 Rx is selected */
+    kTRGMUX_Source0PortAPinTrigger  = 51U,         /**< PORTA Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0RxData    = 51U,         /**< LPUART0 Rx Data is selected */
+    kTRGMUX_Source0PortBPinTrigger  = 52U,         /**< PORTB Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0RxIdle    = 52U,         /**< LPUART0 Rx Idle is selected */
+    kTRGMUX_Source0PortCPinTrigger  = 53U,         /**< PORTC Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0TxData    = 53U,         /**< LPUART0 Tx Data is selected */
+    kTRGMUX_Source0PortDPinTrigger  = 54U,         /**< PORTD Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart1RxData    = 54U,         /**< LPUART1 Rx Data is selected */
+    kTRGMUX_Source0Lpcmp0Output     = 55U,         /**< LPCMP0 Output is selected */
+    kTRGMUX_Source1Lpuart1RxIdle    = 55U,         /**< LPUART1 Rx Idle is selected */
+    kTRGMUX_Source0Lpi2c3MasterStop = 56U,         /**< LPI2C3 Master Stop is selected */
+    kTRGMUX_Source1Lpuart1TxData    = 56U,         /**< LPUART1 TX Data is selected */
+    kTRGMUX_Source0Lpi2c3SlaveStop  = 57U,         /**< LPI2C3 Slave Stop is selected */
+    kTRGMUX_Source1Lpuart2RxData    = 57U,         /**< LPUART2 RX Data is selected */
+    kTRGMUX_Source0Lpspi3Frame      = 58U,         /**< LPSPI3 Frame is selected */
+    kTRGMUX_Source1Lpuart2RxIdle    = 58U,         /**< LPUART2 RX Idle is selected */
+    kTRGMUX_Source0Lpspi3Rx         = 59U,         /**< LPSPI3 Rx Data is selected */
+    kTRGMUX_Source1Lpuart2TxData    = 59U,         /**< LPUART2 TX Data is selected */
+    kTRGMUX_Source0Lpuart3RxData    = 60U,         /**< LPUART3 Rx Data is selected */
+    kTRGMUX_Source1PortAPinTrigger  = 60U,         /**< PORTA Pin Trigger is selected */
+    kTRGMUX_Source0Lpuart3RxIdle    = 61U,         /**< LPUART3 Rx Idle is selected */
+    kTRGMUX_Source1PortBPinTrigger  = 61U,         /**< PORTB Pin Trigger is selected */
+    kTRGMUX_Source0Lpuart3TxData    = 62U,         /**< LPUART3 Tx Data is selected */
+    kTRGMUX_Source1PortCPinTrigger  = 62U,         /**< PORTC Pin Trigger is selected */
+    kTRGMUX_Source0PortEPinTrigger  = 63U,         /**< PORTE Pin Trigger is selected */
+    kTRGMUX_Source1PortDPinTrigger  = 63U,         /**< PORTD Pin Trigger is selected */
+} trgmux_source_t;
+
+/* @} */
+
+/*!
+ * @brief Enumeration for the TRGMUX device
+ *
+ * Defines the enumeration for the TRGMUX device collections.
+ */
+typedef enum _trgmux_device
+{
+    kTRGMUX_Trgmux0Dmamux0          = 0U,          /**< DMAMUX0 device trigger input */
+    kTRGMUX_Trgmux1Dmamux1          = 0U,          /**< DMAMUX1 device trigger input */
+    kTRGMUX_Trgmux0Lpit0            = 1U,          /**< LPIT0 device trigger input */
+    kTRGMUX_Trgmux1Lpit1            = 1U,          /**< LPIT1 device trigger input */
+    kTRGMUX_Trgmux0Tpm0             = 2U,          /**< TPM0 device trigger input */
+    kTRGMUX_Trgmux1Tpm3             = 2U,          /**< TPM3 device trigger input */
+    kTRGMUX_Trgmux0Tpm1             = 3U,          /**< TPM1 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c3           = 3U,          /**< LPI2C3 device trigger input */
+    kTRGMUX_Trgmux0Tpm2             = 4U,          /**< TPM2 device trigger input */
+    kTRGMUX_Trgmux1Lpspi3           = 4U,          /**< LPSPI3 device trigger input */
+    kTRGMUX_Trgmux0Flexio0          = 5U,          /**< FLEXIO0 device trigger input */
+    kTRGMUX_Trgmux1Lpuart3          = 5U,          /**< LPUART3 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c0           = 6U,          /**< LPI2C0 device trigger input */
+    kTRGMUX_Trgmux1Lpcmp1           = 6U,          /**< LPCMP1 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c1           = 7U,          /**< LPI2C1 device trigger input */
+    kTRGMUX_Trgmux1Dmamux0          = 7U,          /**< DMAMUX0 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c2           = 8U,          /**< LPI2C2 device trigger input */
+    kTRGMUX_Trgmux1Lpit0            = 8U,          /**< LPIT0 device trigger input */
+    kTRGMUX_Trgmux0Lpspi0           = 9U,          /**< LPSPI0 device trigger input */
+    kTRGMUX_Trgmux1Tpm0             = 9U,          /**< TPM0 device trigger input */
+    kTRGMUX_Trgmux0Lpspi1           = 10U,         /**< LPSPI1 device trigger input */
+    kTRGMUX_Trgmux1Tpm1             = 10U,         /**< TPM1 device trigger input */
+    kTRGMUX_Trgmux0Lpspi2           = 11U,         /**< LPSPI2 device trigger input */
+    kTRGMUX_Trgmux1Tpm2             = 11U,         /**< TPM2 device trigger input */
+    kTRGMUX_Trgmux0Lpuart0          = 12U,         /**< LPUART0 device trigger input */
+    kTRGMUX_Trgmux1Flexio0          = 12U,         /**< FLEXIO0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart1          = 13U,         /**< LPUART1 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c0           = 13U,         /**< LPI2C0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart2          = 14U,         /**< LPUART2 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c1           = 14U,         /**< LPI2C1 device trigger input */
+    kTRGMUX_Trgmux0Adc0             = 15U,         /**< ADC0 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c2           = 15U,         /**< LPI2C2 device trigger input */
+    kTRGMUX_Trgmux0Lpcmp0           = 16U,         /**< LPCMP0 device trigger input */
+    kTRGMUX_Trgmux1Lpspi0           = 16U,         /**< LPSPI0 device trigger input */
+    kTRGMUX_Trgmux0Dac0             = 17U,         /**< DAC0 device trigger input */
+    kTRGMUX_Trgmux1Lpspi1           = 17U,         /**< LPSPI1 device trigger input */
+    kTRGMUX_Trgmux0Dmamux1          = 18U,         /**< DMAMUX1 device trigger input */
+    kTRGMUX_Trgmux1Lpspi2           = 18U,         /**< LPSPI2 device trigger input */
+    kTRGMUX_Trgmux0Lpit1            = 19U,         /**< LPIT1 device trigger input */
+    kTRGMUX_Trgmux1Lpuart0          = 19U,         /**< LPUART0 device trigger input */
+    kTRGMUX_Trgmux0Tpm3             = 20U,         /**< TPM3 device trigger input */
+    kTRGMUX_Trgmux1Lpuart1          = 20U,         /**< LPUART1 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c3           = 21U,         /**< LPI2C3 device trigger input */
+    kTRGMUX_Trgmux1Lpuart2          = 21U,         /**< LPUART2 device trigger input */
+    kTRGMUX_Trgmux0Lpspi3           = 22U,         /**< LPSPI3 device trigger input */
+    kTRGMUX_Trgmux1Adc0             = 22U,         /**< ADC0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart3          = 23U,         /**< LPUART3 device trigger input */
+    kTRGMUX_Trgmux1Lpcmp0           = 23U,         /**< LPCMP0 device trigger input */
+    kTRGMUX_Trgmux0Lpcmp1           = 24U,         /**< LPCMP1 device trigger input */
+    kTRGMUX_Trgmux1Lpdac0           = 24U,         /**< LPDAC0 device trigger input */
+} trgmux_device_t;
+
+/* @} */
+
+/*!
+ * @addtogroup xrdc_mapping
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*!
+ * @brief Structure for the XRDC mapping
+ *
+ * Defines the structure for the XRDC resource collections.
+ */
+
+typedef enum _xrdc_master
+{
+    kXRDC_MasterCM4CodeBus          = 0U,          /**< CM4 C-BUS */
+    kXRDC_MasterCM4SystemBus        = 1U,          /**< CM4 S-BUS */
+    kXRDC_MasterRI5CYCodeBus        = 16U,         /**< RI5CY C-BUS */
+    kXRDC_MasterRI5CYSystemBus      = 17U,         /**< RI5CY S-BUS */
+    kXRDC_MasterEdma0               = 2U,          /**< EDMA0 */
+    kXRDC_MasterUsdhc               = 3U,          /**< USDHC */
+    kXRDC_MasterUsb                 = 4U,          /**< USB */
+    kXRDC_MasterCM0P                = 32U,         /**< CM0P */
+    kXRDC_MasterEdma1               = 33U,         /**< EDMA1 */
+    kXRDC_MasterCau3                = 34U,         /**< CAU3 */
+    kXRDC_MasterZERORISCYCodeBus    = 35U,         /**<  ZERO RISCY C-BUS */
+    kXRDC_MasterZERORISCYSystemBus  = 36U,         /**< ZERO RISCY S-BUS */
+} xrdc_master_t;
+
+/* @} */
+
+typedef enum _xrdc_mem
+{
+    kXRDC_MemMrc0_0                 = 0U,          /**< MRC0 Memory 0 */
+    kXRDC_MemMrc0_1                 = 1U,          /**< MRC0 Memory 1 */
+    kXRDC_MemMrc0_2                 = 2U,          /**< MRC0 Memory 2 */
+    kXRDC_MemMrc0_3                 = 3U,          /**< MRC0 Memory 3 */
+    kXRDC_MemMrc0_4                 = 4U,          /**< MRC0 Memory 4 */
+    kXRDC_MemMrc0_5                 = 5U,          /**< MRC0 Memory 5 */
+    kXRDC_MemMrc0_6                 = 6U,          /**< MRC0 Memory 6 */
+    kXRDC_MemMrc0_7                 = 7U,          /**< MRC0 Memory 7 */
+    kXRDC_MemMrc1_0                 = 16U,         /**< MRC1 Memory 0 */
+    kXRDC_MemMrc1_1                 = 17U,         /**< MRC1 Memory 1 */
+    kXRDC_MemMrc1_2                 = 18U,         /**< MRC1 Memory 2 */
+    kXRDC_MemMrc1_3                 = 19U,         /**< MRC1 Memory 3 */
+    kXRDC_MemMrc1_4                 = 20U,         /**< MRC1 Memory 4 */
+    kXRDC_MemMrc1_5                 = 21U,         /**< MRC1 Memory 5 */
+    kXRDC_MemMrc1_6                 = 22U,         /**< MRC1 Memory 6 */
+    kXRDC_MemMrc1_7                 = 23U,         /**< MRC1 Memory 7 */
+} xrdc_mem_t;
+
+typedef enum _xrdc_periph
+{
+    kXRDC_PeriphMscm                = 1U,          /**< Miscellaneous System Control Module (MSCM) */
+    kXRDC_PeriphDma0                = 8U,          /**< Direct Memory Access 0 (DMA0) controller */
+    kXRDC_PeriphDma0Tcd             = 9U,          /**< Direct Memory Access 0 (DMA0) controller transfer control descriptors */
+    kXRDC_PeriphFlexBus             = 12U,         /**< External Bus Interface(FlexBus) */
+    kXRDC_PeriphXrdcMgr             = 20U,         /**< Extended Resource Domain Controller (XRDC) MGR */
+    kXRDC_PeriphXrdcMdac            = 21U,         /**< Extended Resource Domain Controller (XRDC) MDAC */
+    kXRDC_PeriphXrdcPac             = 22U,         /**< Extended Resource Domain Controller (XRDC) PAC */
+    kXRDC_PeriphXrdcMrc             = 23U,         /**< Extended Resource Domain Controller (XRDC) MRC */
+    kXRDC_PeriphSema420             = 27U,         /**< Semaphore Unit 0 (SEMA420) */
+    kXRDC_PeriphCmc0                = 32U,         /**< Core Mode Controller (CMC) */
+    kXRDC_PeriphDmamux0             = 33U,         /**< Direct Memory Access Multiplexer 0 (DMAMUX0) */
+    kXRDC_PeriphEwm                 = 34U,         /**< External Watchdog Monitor (EWM) */
+    kXRDC_PeriphFtfe                = 35U,         /**< Flash Memory Module (FTFE) */
+    kXRDC_PeriphLlwu0               = 36U,         /**< Low Leakage Wake-up Unit 0 (LLWU0) */
+    kXRDC_PeriphMua                 = 37U,         /**< Message Unit Side A (MU-A) */
+    kXRDC_PeriphSim                 = 38U,         /**< System Integration Module (SIM) */
+    kXRDC_PeriphSimdgo              = 39U,         /**< System Integration Module - DGO (SIM-DGO) */
+    kXRDC_PeriphSpm                 = 40U,         /**< System Power Management (SPM) */
+    kXRDC_PeriphTrgmux0             = 41U,         /**< Tirgger Multiplexer 0 (TRGMUX0) */
+    kXRDC_PeriphWdog0               = 42U,         /**< Watchdog 0 (WDOG0) */
+    kXRDC_PeriphPcc0                = 43U,         /**< Peripheral Clock Controller 0 (PCC0) */
+    kXRDC_PeriphScg                 = 44U,         /**< System Clock Generator (SCG) */
+    kXRDC_PeriphSrf                 = 45U,         /**< System Register File */
+    kXRDC_PeriphVbat                = 46U,         /**< VBAT Register File */
+    kXRDC_PeriphCrc0                = 47U,         /**< Cyclic Redundancy Check 0 (CRC0) */
+    kXRDC_PeriphLpit0               = 48U,         /**< Low-Power Periodic Interrupt Timer 0 (LPIT0) */
+    kXRDC_PeriphRtc                 = 49U,         /**< Real Time Clock (RTC) */
+    kXRDC_PeriphLptmr0              = 50U,         /**< Low-Power Timer 0 (LPTMR0) */
+    kXRDC_PeriphLptmr1              = 51U,         /**< Low-Power Timer 1 (LPTMR1) */
+    kXRDC_PeriphTstmr0              = 52U,         /**< Time Stamp Timer 0 (TSTMR0) */
+    kXRDC_PeriphTpm0                = 53U,         /**< Timer / Pulse Width Modulator Module 0 (TPM0) - 6 channel */
+    kXRDC_PeriphTpm1                = 54U,         /**< Timer / Pulse Width Modulator Module 1 (TPM1) - 2 channel */
+    kXRDC_PeriphTpm2                = 55U,         /**< Timer / Pulse Width Modulator Module 2 (TPM2) - 6 channel */
+    kXRDC_PeriphEmvsim0             = 56U,         /**< Euro Mastercard Visa Secure Identity Module 0 (EMVSIM0) */
+    kXRDC_PeriphFlexio0             = 57U,         /**< Flexible Input / Output 0 (FlexIO0) */
+    kXRDC_PeriphLpi2c0              = 58U,         /**< Low-Power Inter-Integrated Circuit 0 (LPI2C0) */
+    kXRDC_PeriphLpi2c1              = 59U,         /**< Low-Power Inter-Integrated Circuit 1 (LPI2C1) */
+    kXRDC_PeriphLpi2c2              = 60U,         /**< Low-Power Inter-Integrated Circuit 2 (LPI2C2) */
+    kXRDC_PeriphSai0                = 61U,         /**< Serial Audio Interface 0 (SAI0) */
+    kXRDC_PeriphSdhc0               = 62U,         /**< Secure Digital Host Controller 0 (SDHC0) */
+    kXRDC_PeriphLpspi0              = 63U,         /**< Low-Power Serial Peripheral Interface 0 (LPSPI0) */
+    kXRDC_PeriphLpspi1              = 64U,         /**< Low-Power Serial Peripheral Interface 1 (LPSPI1) */
+    kXRDC_PeriphLpspi2              = 65U,         /**< Low-Power Serial Peripheral Interface 2 (LPSPI2) */
+    kXRDC_PeriphLpuart0             = 66U,         /**< Low-Power Universal Asynchronous Receive / Transmit 0 (LPUART0) */
+    kXRDC_PeriphLpuart1             = 67U,         /**< Low-Power Universal Asynchronous Receive / Transmit 1 (LPUART1) */
+    kXRDC_PeriphLpuart2             = 68U,         /**< Low-Power Universal Asynchronous Receive / Transmit 2 (LPUART2) */
+    kXRDC_PeriphUsb0                = 69U,         /**< Universal Serial Bus 0 (USB0) - Full Speed, Device Only */
+    kXRDC_PeriphPortA               = 70U,         /**< PORTA Multiplex Control */
+    kXRDC_PeriphPortB               = 71U,         /**< PORTB Multiplex Control */
+    kXRDC_PeriphPortC               = 72U,         /**< PORTC Multiplex Control */
+    kXRDC_PeriphPortD               = 73U,         /**< PORTD Multiplex Control */
+    kXRDC_PeriphLpadc0              = 74U,         /**< Low-Power Analog-to-Digital Converter 0 (LPADC0) */
+    kXRDC_PeriphLpcmp0              = 75U,         /**< Low-Power Comparator 0 (LPCMP0) */
+    kXRDC_PeriphDac0                = 76U,         /**< Digital-to-Analog Converter 0 (DAC0) */
+    kXRDC_PeriphVref                = 77U,         /**< Voltage Reference (VREF) */
+    kXRDC_PeriphDma1                = 136U,        /**< Direct Memory Access 1 (DMA1) controller */
+    kXRDC_PeriphDma1Tcd             = 137U,        /**< Direct Memory Access 1 (DMA1) controller trasfer control descriptors */
+    kXRDC_PeriphFgpio1              = 143U,        /**< IO Port Alias */
+    kXRDC_PeriphSema421             = 155U,        /**< Semaphore Unit 1 (SEMA421) */
+    kXRDC_PeriphCmc1                = 160U,        /**< Core Mode Controller (CMC) */
+    kXRDC_PeriphDmamux1             = 161U,        /**< Direct Memory Access Mutiplexer 1 (DMAMUX1) */
+    kXRDC_PeriphIntmux0             = 162U,        /**< Interrupt Multiplexer 0 (INTMUX0) */
+    kXRDC_Periphllwu1               = 163U,        /**< Low Leakage Wake-up Unit 1 (LLWU1) */
+    kXRDC_PeriphMub                 = 164U,        /**< Messaging Unit - Side B (MU-B) */
+    kXRDC_PeriphTrgmux1             = 165U,        /**< Trigger Multiplexer 1 (TRGMUX1) */
+    kXRDC_PeriphWdog1               = 166U,        /**< Watchdog 1 (WDOG1) */
+    kXRDC_PeriphPcc1                = 167U,        /**< Peripheral Clock Controller 1 (PCC1) */
+    kXRDC_PeriphCau3                = 168U,        /**< Cryptographic Acceleration Unit (CAU3) */
+    kXRDC_PeriphTrng                = 169U,        /**< True Random Number Generator (TRNG) */
+    kXRDC_PeriphLpit1               = 170U,        /**< Low-Power Periodic Interrupt Timer 1 (LPIT1) */
+    kXRDC_PeriphLptmr2              = 171U,        /**< Low-Power Timer 2 (LPTMR2) */
+    kXRDC_PeriphTstmr1              = 172U,        /**< Time Stamp Timer 1 (TSTMR1) */
+    kXRDC_PeriphTpm3                = 173U,        /**< Timer / Pulse Width Modulation Module 3 (TPM3) - 2 channel */
+    kXRDC_PeriphLpi2c3              = 174U,        /**< Low-Power Inter-Integrated Circuit 3 (LPI2C3) */
+    kXRDC_PeriphRsim                = 175U,        /**< 2.4GHz Radio (RF2.4G) - RSIM */
+    kXRDC_PeriphXcvr                = 176U,        /**< 2.4GHz Radio (RF2.4G) - XCVR */
+    kXRDC_PeriphAnt                 = 177U,        /**< 2.4GHz Radio (RF2.4G) - ANT+ Link Layer */
+    kXRDC_PeriphBle                 = 178U,        /**< 2.4GHz Radio (RF2.4G) - Bluetooth Link layer */
+    kXRDC_PeriphGfsk                = 179U,        /**< 2.4GHz Radio (RF2.4G) - Generic Link layer */
+    kXRDC_PeriphIeee                = 180U,        /**< 2.4GHz Radio (RF2.4G) - IEEE 802.15.4 Link Layer */
+    kXRDC_PeriphLpspi3              = 181U,        /**< Low-Power Serial Peripheral Interface 3 (LPSPI3) */
+    kXRDC_PeriphLpuart3             = 182U,        /**< Low-Power Universal Asynchronous Receive / Transmit 3 (LPUART3) */
+    kXRDC_PeriphPortE               = 183U,        /**< PORTE Multiplex Control */
+    kXRDC_PeriphLpcmp1              = 214U,        /**< Low-Power Comparator 1 (LPCMP1) */
+} xrdc_periph_t;
+
+
+/*!
+ * @}
+ */ /* end of group Mapping_Information */
+
+
+/* ----------------------------------------------------------------------------
+   -- Device Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Peripheral_access_layer Device Peripheral Access Layer
+ * @{
+ */
+
+
+/*
+** Start of section using anonymous unions
+*/
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang diagnostic push
+  #else
+    #pragma push
+    #pragma anon_unions
+  #endif
+#elif defined(__GNUC__)
+  /* anonymous unions are enabled by default */
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma language=extended
+#else
+  #error Not supported compiler type
+#endif
+
+/* ----------------------------------------------------------------------------
+   -- ADC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ADC_Peripheral_Access_Layer ADC Peripheral Access Layer
+ * @{
+ */
+
+/** ADC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CTRL;                              /**< ADC Control Register, offset: 0x10 */
+  __IO uint32_t STAT;                              /**< ADC Status Register, offset: 0x14 */
+  __IO uint32_t IE;                                /**< Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t DE;                                /**< DMA Enable Register, offset: 0x1C */
+  __IO uint32_t CFG;                               /**< ADC Configuration Register, offset: 0x20 */
+  __IO uint32_t PAUSE;                             /**< ADC Pause Register, offset: 0x24 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t FCTRL;                             /**< ADC FIFO Control Register, offset: 0x30 */
+  __O  uint32_t SWTRIG;                            /**< Software Trigger Register, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t OFSTRIM;                           /**< ADC Offset Trim Register, offset: 0x40 */
+       uint8_t RESERVED_3[124];
+  __IO uint32_t TCTRL[4];                          /**< Trigger Control Register, array offset: 0xC0, array step: 0x4 */
+       uint8_t RESERVED_4[48];
+  struct {                                         /* offset: 0x100, array step: 0x8 */
+    __IO uint32_t CMDL;                              /**< ADC Command Low Buffer Register, array offset: 0x100, array step: 0x8 */
+    __IO uint32_t CMDH;                              /**< ADC Command High Buffer Register, array offset: 0x104, array step: 0x8 */
+  } CMD[15];
+       uint8_t RESERVED_5[136];
+  __IO uint32_t CV[4];                             /**< Compare Value Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_6[240];
+  __I  uint32_t RESFIFO;                           /**< ADC Data Result FIFO Register, offset: 0x300 */
+} ADC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- ADC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ADC_Register_Masks ADC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define ADC_VERID_RES_MASK                       (0x1U)
+#define ADC_VERID_RES_SHIFT                      (0U)
+/*! RES - Resolution
+ *  0b0..Up to 13-bit differential/12-bit single ended resolution supported.
+ *  0b1..Up to 16-bit differential/15-bit single ended resolution supported.
+ */
+#define ADC_VERID_RES(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_RES_SHIFT)) & ADC_VERID_RES_MASK)
+#define ADC_VERID_DIFFEN_MASK                    (0x2U)
+#define ADC_VERID_DIFFEN_SHIFT                   (1U)
+/*! DIFFEN - Differential Supported
+ *  0b0..Differential operation not supported.
+ *  0b1..Differential operation supported. CMDLa[DIFF] and CMDLa[ABSEL] control fields implemented.
+ */
+#define ADC_VERID_DIFFEN(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_VERID_DIFFEN_SHIFT)) & ADC_VERID_DIFFEN_MASK)
+#define ADC_VERID_MVI_MASK                       (0x8U)
+#define ADC_VERID_MVI_SHIFT                      (3U)
+/*! MVI - Multi Vref Implemented
+ *  0b0..Single voltage reference high (VREFH) input supported.
+ *  0b1..Multiple voltage reference high (VREFH) inputs supported.
+ */
+#define ADC_VERID_MVI(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MVI_SHIFT)) & ADC_VERID_MVI_MASK)
+#define ADC_VERID_CSW_MASK                       (0x70U)
+#define ADC_VERID_CSW_SHIFT                      (4U)
+/*! CSW - Channel Scale Width
+ *  0b000..Channel scaling not supported.
+ *  0b001..Channel scaling supported. 1-bit CSCALE control field.
+ *  0b110..Channel scaling supported. 6-bit CSCALE control field.
+ */
+#define ADC_VERID_CSW(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_CSW_SHIFT)) & ADC_VERID_CSW_MASK)
+#define ADC_VERID_VR1RNGI_MASK                   (0x100U)
+#define ADC_VERID_VR1RNGI_SHIFT                  (8U)
+/*! VR1RNGI - Voltage Reference 1 Range Control Bit Implemented
+ *  0b0..Range control not required. CFG[VREF1RNG] is not implemented.
+ *  0b1..Range control required. CFG[VREF1RNG] is implemented.
+ */
+#define ADC_VERID_VR1RNGI(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_VERID_VR1RNGI_SHIFT)) & ADC_VERID_VR1RNGI_MASK)
+#define ADC_VERID_IADCKI_MASK                    (0x200U)
+#define ADC_VERID_IADCKI_SHIFT                   (9U)
+/*! IADCKI - Internal ADC Clock implemented
+ *  0b0..Internal clock source not implemented.
+ *  0b1..Internal clock source (and CFG[ADCKEN]) implemented.
+ */
+#define ADC_VERID_IADCKI(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_VERID_IADCKI_SHIFT)) & ADC_VERID_IADCKI_MASK)
+#define ADC_VERID_CALOFSI_MASK                   (0x400U)
+#define ADC_VERID_CALOFSI_SHIFT                  (10U)
+/*! CALOFSI - Calibration Offset Function Implemented
+ *  0b0..Offset calibration and offset trimming not implemented.
+ *  0b1..Offset calibration and offset trimming implemented.
+ */
+#define ADC_VERID_CALOFSI(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_VERID_CALOFSI_SHIFT)) & ADC_VERID_CALOFSI_MASK)
+#define ADC_VERID_MINOR_MASK                     (0xFF0000U)
+#define ADC_VERID_MINOR_SHIFT                    (16U)
+#define ADC_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MINOR_SHIFT)) & ADC_VERID_MINOR_MASK)
+#define ADC_VERID_MAJOR_MASK                     (0xFF000000U)
+#define ADC_VERID_MAJOR_SHIFT                    (24U)
+#define ADC_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MAJOR_SHIFT)) & ADC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define ADC_PARAM_TRIG_NUM_MASK                  (0xFFU)
+#define ADC_PARAM_TRIG_NUM_SHIFT                 (0U)
+#define ADC_PARAM_TRIG_NUM(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_TRIG_NUM_SHIFT)) & ADC_PARAM_TRIG_NUM_MASK)
+#define ADC_PARAM_FIFOSIZE_MASK                  (0xFF00U)
+#define ADC_PARAM_FIFOSIZE_SHIFT                 (8U)
+/*! FIFOSIZE - Result FIFO Depth
+ *  0b00000001..Result FIFO depth = 1 dataword.
+ *  0b00000100..Result FIFO depth = 4 datawords.
+ *  0b00001000..Result FIFO depth = 8 datawords.
+ *  0b00010000..Result FIFO depth = 16 datawords.
+ *  0b00100000..Result FIFO depth = 32 datawords.
+ *  0b01000000..Result FIFO depth = 64 datawords.
+ */
+#define ADC_PARAM_FIFOSIZE(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_FIFOSIZE_SHIFT)) & ADC_PARAM_FIFOSIZE_MASK)
+#define ADC_PARAM_CV_NUM_MASK                    (0xFF0000U)
+#define ADC_PARAM_CV_NUM_SHIFT                   (16U)
+#define ADC_PARAM_CV_NUM(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_CV_NUM_SHIFT)) & ADC_PARAM_CV_NUM_MASK)
+#define ADC_PARAM_CMD_NUM_MASK                   (0xFF000000U)
+#define ADC_PARAM_CMD_NUM_SHIFT                  (24U)
+#define ADC_PARAM_CMD_NUM(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_CMD_NUM_SHIFT)) & ADC_PARAM_CMD_NUM_MASK)
+/*! @} */
+
+/*! @name CTRL - ADC Control Register */
+/*! @{ */
+#define ADC_CTRL_ADCEN_MASK                      (0x1U)
+#define ADC_CTRL_ADCEN_SHIFT                     (0U)
+/*! ADCEN - ADC Enable
+ *  0b0..ADC is disabled.
+ *  0b1..ADC is enabled.
+ */
+#define ADC_CTRL_ADCEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_ADCEN_SHIFT)) & ADC_CTRL_ADCEN_MASK)
+#define ADC_CTRL_RST_MASK                        (0x2U)
+#define ADC_CTRL_RST_SHIFT                       (1U)
+/*! RST - Software Reset
+ *  0b0..ADC logic is not reset.
+ *  0b1..ADC logic is reset.
+ */
+#define ADC_CTRL_RST(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_RST_SHIFT)) & ADC_CTRL_RST_MASK)
+#define ADC_CTRL_DOZEN_MASK                      (0x4U)
+#define ADC_CTRL_DOZEN_SHIFT                     (2U)
+/*! DOZEN - Doze Enable
+ *  0b0..ADC is enabled in Doze mode.
+ *  0b1..ADC is disabled in Doze mode.
+ */
+#define ADC_CTRL_DOZEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_DOZEN_SHIFT)) & ADC_CTRL_DOZEN_MASK)
+#define ADC_CTRL_RSTFIFO_MASK                    (0x100U)
+#define ADC_CTRL_RSTFIFO_SHIFT                   (8U)
+/*! RSTFIFO - Reset FIFO
+ *  0b0..No effect.
+ *  0b1..FIFO is reset.
+ */
+#define ADC_CTRL_RSTFIFO(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_RSTFIFO_SHIFT)) & ADC_CTRL_RSTFIFO_MASK)
+/*! @} */
+
+/*! @name STAT - ADC Status Register */
+/*! @{ */
+#define ADC_STAT_RDY_MASK                        (0x1U)
+#define ADC_STAT_RDY_SHIFT                       (0U)
+/*! RDY - Result FIFO Ready Flag
+ *  0b0..Result FIFO data level not above watermark level.
+ *  0b1..Result FIFO holding data above watermark level.
+ */
+#define ADC_STAT_RDY(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_STAT_RDY_SHIFT)) & ADC_STAT_RDY_MASK)
+#define ADC_STAT_FOF_MASK                        (0x2U)
+#define ADC_STAT_FOF_SHIFT                       (1U)
+/*! FOF - Result FIFO Overflow Flag
+ *  0b0..No result FIFO overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one result FIFO overflow has occurred since the last time the flag was cleared.
+ */
+#define ADC_STAT_FOF(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_STAT_FOF_SHIFT)) & ADC_STAT_FOF_MASK)
+#define ADC_STAT_TRGACT_MASK                     (0x30000U)
+#define ADC_STAT_TRGACT_SHIFT                    (16U)
+/*! TRGACT - Trigger Active
+ *  0b00..Command (sequence) associated with Trigger 0 currently being executed.
+ *  0b01..Command (sequence) associated with Trigger 1 currently being executed.
+ *  0b10..Command (sequence) associated with Trigger 2 currently being executed.
+ *  0b11..Command (sequence) associated with Trigger 3 currently being executed.
+ */
+#define ADC_STAT_TRGACT(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_STAT_TRGACT_SHIFT)) & ADC_STAT_TRGACT_MASK)
+#define ADC_STAT_CMDACT_MASK                     (0xF000000U)
+#define ADC_STAT_CMDACT_SHIFT                    (24U)
+/*! CMDACT - Command Active
+ *  0b0000..No command is currently in progress.
+ *  0b0001..Command 1 currently being executed.
+ *  0b0010..Command 2 currently being executed.
+ *  0b0011-0b1111..Associated command number is currently being executed.
+ */
+#define ADC_STAT_CMDACT(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_STAT_CMDACT_SHIFT)) & ADC_STAT_CMDACT_MASK)
+/*! @} */
+
+/*! @name IE - Interrupt Enable Register */
+/*! @{ */
+#define ADC_IE_FWMIE_MASK                        (0x1U)
+#define ADC_IE_FWMIE_SHIFT                       (0U)
+/*! FWMIE - FIFO Watermark Interrupt Enable
+ *  0b0..FIFO watermark interrupts are not enabled.
+ *  0b1..FIFO watermark interrupts are enabled.
+ */
+#define ADC_IE_FWMIE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_IE_FWMIE_SHIFT)) & ADC_IE_FWMIE_MASK)
+#define ADC_IE_FOFIE_MASK                        (0x2U)
+#define ADC_IE_FOFIE_SHIFT                       (1U)
+/*! FOFIE - Result FIFO Overflow Interrupt Enable
+ *  0b0..FIFO overflow interrupts are not enabled.
+ *  0b1..FIFO overflow interrupts are enabled.
+ */
+#define ADC_IE_FOFIE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_IE_FOFIE_SHIFT)) & ADC_IE_FOFIE_MASK)
+/*! @} */
+
+/*! @name DE - DMA Enable Register */
+/*! @{ */
+#define ADC_DE_FWMDE_MASK                        (0x1U)
+#define ADC_DE_FWMDE_SHIFT                       (0U)
+/*! FWMDE - FIFO Watermark DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define ADC_DE_FWMDE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_DE_FWMDE_SHIFT)) & ADC_DE_FWMDE_MASK)
+/*! @} */
+
+/*! @name CFG - ADC Configuration Register */
+/*! @{ */
+#define ADC_CFG_TPRICTRL_MASK                    (0x1U)
+#define ADC_CFG_TPRICTRL_SHIFT                   (0U)
+/*! TPRICTRL - ADC trigger priority control
+ *  0b0..If a higher priority trigger is detected during command processing, the current conversion is aborted and the new command specified by the trigger is started.
+ *  0b1..If a higher priority trigger is received during command processing, the current conversion is completed (including averaging iterations if enabled) and stored to the RESFIFO before the higher priority trigger/command is initiated. Note that compare until true commands can be interrupted prior to resulting in a true conversion.
+ */
+#define ADC_CFG_TPRICTRL(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CFG_TPRICTRL_SHIFT)) & ADC_CFG_TPRICTRL_MASK)
+#define ADC_CFG_PWRSEL_MASK                      (0x30U)
+#define ADC_CFG_PWRSEL_SHIFT                     (4U)
+/*! PWRSEL - Power Configuration Select
+ *  0b00..Level 1 (Lowest power setting)
+ *  0b01..Level 2
+ *  0b10..Level 3
+ *  0b11..Level 4 (Highest power setting)
+ */
+#define ADC_CFG_PWRSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PWRSEL_SHIFT)) & ADC_CFG_PWRSEL_MASK)
+#define ADC_CFG_REFSEL_MASK                      (0xC0U)
+#define ADC_CFG_REFSEL_SHIFT                     (6U)
+/*! REFSEL - Voltage Reference Selection
+ *  0b00..(Default) Option 1 setting.
+ *  0b01..Option 2 setting.
+ *  0b10..Option 3 setting.
+ *  0b11..Reserved
+ */
+#define ADC_CFG_REFSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_REFSEL_SHIFT)) & ADC_CFG_REFSEL_MASK)
+#define ADC_CFG_CALOFS_MASK                      (0x8000U)
+#define ADC_CFG_CALOFS_SHIFT                     (15U)
+/*! CALOFS - Configure for offset calibration function
+ *  0b0..Calibration function disabled
+ *  0b1..Configure for offset calibration function
+ */
+#define ADC_CFG_CALOFS(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_CALOFS_SHIFT)) & ADC_CFG_CALOFS_MASK)
+#define ADC_CFG_PUDLY_MASK                       (0xFF0000U)
+#define ADC_CFG_PUDLY_SHIFT                      (16U)
+#define ADC_CFG_PUDLY(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PUDLY_SHIFT)) & ADC_CFG_PUDLY_MASK)
+#define ADC_CFG_PWREN_MASK                       (0x10000000U)
+#define ADC_CFG_PWREN_SHIFT                      (28U)
+/*! PWREN - ADC Analog Pre-Enable
+ *  0b0..ADC analog circuits are only enabled while conversions are active. Performance is affected due to analog startup delays.
+ *  0b1..ADC analog circuits are pre-enabled and ready to execute conversions without startup delays (at the cost of higher DC current consumption). When PWREN is set, the power up delay is enforced such that any detected trigger does not begin ADC operation until the power up delay time has passed.
+ */
+#define ADC_CFG_PWREN(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PWREN_SHIFT)) & ADC_CFG_PWREN_MASK)
+#define ADC_CFG_VREF1RNG_MASK                    (0x20000000U)
+#define ADC_CFG_VREF1RNG_SHIFT                   (29U)
+/*! VREF1RNG - Enable support for low voltage reference on Option 1 Reference
+ *  0b0..Configuration required when Voltage Reference Option 1 input is in high voltage range
+ *  0b1..Configuration required when Voltage Reference Option 1 input is in low voltage range
+ */
+#define ADC_CFG_VREF1RNG(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CFG_VREF1RNG_SHIFT)) & ADC_CFG_VREF1RNG_MASK)
+#define ADC_CFG_ADCKEN_MASK                      (0x80000000U)
+#define ADC_CFG_ADCKEN_SHIFT                     (31U)
+/*! ADCKEN - ADC asynchronous clock enable
+ *  0b0..ADC internal clock is disabled
+ *  0b1..ADC internal clock is enabled
+ */
+#define ADC_CFG_ADCKEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_ADCKEN_SHIFT)) & ADC_CFG_ADCKEN_MASK)
+/*! @} */
+
+/*! @name PAUSE - ADC Pause Register */
+/*! @{ */
+#define ADC_PAUSE_PAUSEDLY_MASK                  (0x1FFU)
+#define ADC_PAUSE_PAUSEDLY_SHIFT                 (0U)
+#define ADC_PAUSE_PAUSEDLY(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PAUSE_PAUSEDLY_SHIFT)) & ADC_PAUSE_PAUSEDLY_MASK)
+#define ADC_PAUSE_PAUSEEN_MASK                   (0x80000000U)
+#define ADC_PAUSE_PAUSEEN_SHIFT                  (31U)
+/*! PAUSEEN - PAUSE Option Enable
+ *  0b0..Pause operation disabled
+ *  0b1..Pause operation enabled
+ */
+#define ADC_PAUSE_PAUSEEN(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_PAUSE_PAUSEEN_SHIFT)) & ADC_PAUSE_PAUSEEN_MASK)
+/*! @} */
+
+/*! @name FCTRL - ADC FIFO Control Register */
+/*! @{ */
+#define ADC_FCTRL_FCOUNT_MASK                    (0x1FU)
+#define ADC_FCTRL_FCOUNT_SHIFT                   (0U)
+#define ADC_FCTRL_FCOUNT(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_FCTRL_FCOUNT_SHIFT)) & ADC_FCTRL_FCOUNT_MASK)
+#define ADC_FCTRL_FWMARK_MASK                    (0xF0000U)
+#define ADC_FCTRL_FWMARK_SHIFT                   (16U)
+#define ADC_FCTRL_FWMARK(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_FCTRL_FWMARK_SHIFT)) & ADC_FCTRL_FWMARK_MASK)
+/*! @} */
+
+/*! @name SWTRIG - Software Trigger Register */
+/*! @{ */
+#define ADC_SWTRIG_SWT0_MASK                     (0x1U)
+#define ADC_SWTRIG_SWT0_SHIFT                    (0U)
+/*! SWT0 - Software trigger 0 event
+ *  0b0..No trigger 0 event generated.
+ *  0b1..Trigger 0 event generated.
+ */
+#define ADC_SWTRIG_SWT0(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT0_SHIFT)) & ADC_SWTRIG_SWT0_MASK)
+#define ADC_SWTRIG_SWT1_MASK                     (0x2U)
+#define ADC_SWTRIG_SWT1_SHIFT                    (1U)
+/*! SWT1 - Software trigger 1 event
+ *  0b0..No trigger 1 event generated.
+ *  0b1..Trigger 1 event generated.
+ */
+#define ADC_SWTRIG_SWT1(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT1_SHIFT)) & ADC_SWTRIG_SWT1_MASK)
+#define ADC_SWTRIG_SWT2_MASK                     (0x4U)
+#define ADC_SWTRIG_SWT2_SHIFT                    (2U)
+/*! SWT2 - Software trigger 2 event
+ *  0b0..No trigger 2 event generated.
+ *  0b1..Trigger 2 event generated.
+ */
+#define ADC_SWTRIG_SWT2(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT2_SHIFT)) & ADC_SWTRIG_SWT2_MASK)
+#define ADC_SWTRIG_SWT3_MASK                     (0x8U)
+#define ADC_SWTRIG_SWT3_SHIFT                    (3U)
+/*! SWT3 - Software trigger 3 event
+ *  0b0..No trigger 3 event generated.
+ *  0b1..Trigger 3 event generated.
+ */
+#define ADC_SWTRIG_SWT3(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT3_SHIFT)) & ADC_SWTRIG_SWT3_MASK)
+/*! @} */
+
+/*! @name OFSTRIM - ADC Offset Trim Register */
+/*! @{ */
+#define ADC_OFSTRIM_OFSTRIM_MASK                 (0x3FU)
+#define ADC_OFSTRIM_OFSTRIM_SHIFT                (0U)
+#define ADC_OFSTRIM_OFSTRIM(x)                   (((uint32_t)(((uint32_t)(x)) << ADC_OFSTRIM_OFSTRIM_SHIFT)) & ADC_OFSTRIM_OFSTRIM_MASK)
+/*! @} */
+
+/*! @name TCTRL - Trigger Control Register */
+/*! @{ */
+#define ADC_TCTRL_HTEN_MASK                      (0x1U)
+#define ADC_TCTRL_HTEN_SHIFT                     (0U)
+/*! HTEN - Trigger enable
+ *  0b0..Hardware trigger source disabled
+ *  0b1..Hardware trigger source enabled
+ */
+#define ADC_TCTRL_HTEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_HTEN_SHIFT)) & ADC_TCTRL_HTEN_MASK)
+#define ADC_TCTRL_TPRI_MASK                      (0x300U)
+#define ADC_TCTRL_TPRI_SHIFT                     (8U)
+/*! TPRI - Trigger priority setting
+ *  0b00..Set to highest priority, Level 1
+ *  0b01-0b10..Set to corresponding priority level
+ *  0b11..Set to lowest priority, Level 4
+ */
+#define ADC_TCTRL_TPRI(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TPRI_SHIFT)) & ADC_TCTRL_TPRI_MASK)
+#define ADC_TCTRL_TDLY_MASK                      (0xF0000U)
+#define ADC_TCTRL_TDLY_SHIFT                     (16U)
+#define ADC_TCTRL_TDLY(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TDLY_SHIFT)) & ADC_TCTRL_TDLY_MASK)
+#define ADC_TCTRL_TCMD_MASK                      (0xF000000U)
+#define ADC_TCTRL_TCMD_SHIFT                     (24U)
+/*! TCMD - Trigger command select
+ *  0b0000..Not a valid selection from the command buffer. Trigger event is ignored.
+ *  0b0001..CMD1 is executed
+ *  0b0010-0b1110..Corresponding CMD is executed
+ *  0b1111..CMD15 is executed
+ */
+#define ADC_TCTRL_TCMD(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TCMD_SHIFT)) & ADC_TCTRL_TCMD_MASK)
+/*! @} */
+
+/* The count of ADC_TCTRL */
+#define ADC_TCTRL_COUNT                          (4U)
+
+/*! @name CMDL - ADC Command Low Buffer Register */
+/*! @{ */
+#define ADC_CMDL_ADCH_MASK                       (0x1FU)
+#define ADC_CMDL_ADCH_SHIFT                      (0U)
+/*! ADCH - Input channel select
+ *  0b00000..Select CH0A or CH0B
+ *  0b00001..Select CH1A or CH1B
+ *  0b00010..Select CH2A or CH2B
+ *  0b00011..Select CH3A or CH3B
+ *  0b00100-0b11101..Select corresponding channel CHnA or CHnB
+ *  0b11110..Select CH30A or CH30B
+ *  0b11111..Select CH31A or CH31B
+ */
+#define ADC_CMDL_ADCH(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDL_ADCH_SHIFT)) & ADC_CMDL_ADCH_MASK)
+#define ADC_CMDL_ABSEL_MASK                      (0x20U)
+#define ADC_CMDL_ABSEL_SHIFT                     (5U)
+/*! ABSEL - A-side vs. B-side Select
+ *  0b0..The associated A-side channel is converted.
+ *  0b1..The associated B-side channel is converted.
+ */
+#define ADC_CMDL_ABSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CMDL_ABSEL_SHIFT)) & ADC_CMDL_ABSEL_MASK)
+/*! @} */
+
+/* The count of ADC_CMDL */
+#define ADC_CMDL_COUNT                           (15U)
+
+/*! @name CMDH - ADC Command High Buffer Register */
+/*! @{ */
+#define ADC_CMDH_CMPEN_MASK                      (0x3U)
+#define ADC_CMDH_CMPEN_SHIFT                     (0U)
+/*! CMPEN - Compare Function Enable
+ *  0b00..Compare disabled.
+ *  0b01..Reserved
+ *  0b10..Compare enabled. Store on true.
+ *  0b11..Compare enabled. Repeat channel acquisition (sample/convert/compare) until true.
+ */
+#define ADC_CMDH_CMPEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_CMPEN_SHIFT)) & ADC_CMDH_CMPEN_MASK)
+#define ADC_CMDH_LWI_MASK                        (0x80U)
+#define ADC_CMDH_LWI_SHIFT                       (7U)
+/*! LWI - Loop with Increment
+ *  0b0..Auto channel increment disabled
+ *  0b1..Auto channel increment enabled
+ */
+#define ADC_CMDH_LWI(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_LWI_SHIFT)) & ADC_CMDH_LWI_MASK)
+#define ADC_CMDH_STS_MASK                        (0x700U)
+#define ADC_CMDH_STS_SHIFT                       (8U)
+/*! STS - Sample Time Select
+ *  0b000..Minimum sample time of 3 ADCK cycles.
+ *  0b001..3 + 21 ADCK cycles; 5 ADCK cycles total sample time.
+ *  0b010..3 + 22 ADCK cycles; 7 ADCK cycles total sample time.
+ *  0b011..3 + 23 ADCK cycles; 11 ADCK cycles total sample time.
+ *  0b100..3 + 24 ADCK cycles; 19 ADCK cycles total sample time.
+ *  0b101..3 + 25 ADCK cycles; 35 ADCK cycles total sample time.
+ *  0b110..3 + 26 ADCK cycles; 67 ADCK cycles total sample time.
+ *  0b111..3 + 27 ADCK cycles; 131 ADCK cycles total sample time.
+ */
+#define ADC_CMDH_STS(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_STS_SHIFT)) & ADC_CMDH_STS_MASK)
+#define ADC_CMDH_AVGS_MASK                       (0x7000U)
+#define ADC_CMDH_AVGS_SHIFT                      (12U)
+/*! AVGS - Hardware Average Select
+ *  0b000..Single conversion.
+ *  0b001..2 conversions averaged.
+ *  0b010..4 conversions averaged.
+ *  0b011..8 conversions averaged.
+ *  0b100..16 conversions averaged.
+ *  0b101..32 conversions averaged.
+ *  0b110..64 conversions averaged.
+ *  0b111..128 conversions averaged.
+ */
+#define ADC_CMDH_AVGS(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_AVGS_SHIFT)) & ADC_CMDH_AVGS_MASK)
+#define ADC_CMDH_LOOP_MASK                       (0xF0000U)
+#define ADC_CMDH_LOOP_SHIFT                      (16U)
+/*! LOOP - Loop Count Select
+ *  0b0000..Looping not enabled. Command executes 1 time.
+ *  0b0001..Loop 1 time. Command executes 2 times.
+ *  0b0010..Loop 2 times. Command executes 3 times.
+ *  0b0011-0b1110..Loop corresponding number of times. Command executes LOOP+1 times.
+ *  0b1111..Loop 15 times. Command executes 16 times.
+ */
+#define ADC_CMDH_LOOP(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_LOOP_SHIFT)) & ADC_CMDH_LOOP_MASK)
+#define ADC_CMDH_NEXT_MASK                       (0xF000000U)
+#define ADC_CMDH_NEXT_SHIFT                      (24U)
+/*! NEXT - Next Command Select
+ *  0b0000..No next command defined. Terminate conversions at completion of current command. If lower priority trigger pending, begin command associated with lower priority trigger.
+ *  0b0001..Select CMD1 command buffer register as next command.
+ *  0b0010-0b1110..Select corresponding CMD command buffer register as next command
+ *  0b1111..Select CMD15 command buffer register as next command.
+ */
+#define ADC_CMDH_NEXT(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_NEXT_SHIFT)) & ADC_CMDH_NEXT_MASK)
+/*! @} */
+
+/* The count of ADC_CMDH */
+#define ADC_CMDH_COUNT                           (15U)
+
+/*! @name CV - Compare Value Register */
+/*! @{ */
+#define ADC_CV_CVL_MASK                          (0xFFFFU)
+#define ADC_CV_CVL_SHIFT                         (0U)
+#define ADC_CV_CVL(x)                            (((uint32_t)(((uint32_t)(x)) << ADC_CV_CVL_SHIFT)) & ADC_CV_CVL_MASK)
+#define ADC_CV_CVH_MASK                          (0xFFFF0000U)
+#define ADC_CV_CVH_SHIFT                         (16U)
+#define ADC_CV_CVH(x)                            (((uint32_t)(((uint32_t)(x)) << ADC_CV_CVH_SHIFT)) & ADC_CV_CVH_MASK)
+/*! @} */
+
+/* The count of ADC_CV */
+#define ADC_CV_COUNT                             (4U)
+
+/*! @name RESFIFO - ADC Data Result FIFO Register */
+/*! @{ */
+#define ADC_RESFIFO_D_MASK                       (0xFFFFU)
+#define ADC_RESFIFO_D_SHIFT                      (0U)
+#define ADC_RESFIFO_D(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_D_SHIFT)) & ADC_RESFIFO_D_MASK)
+#define ADC_RESFIFO_TSRC_MASK                    (0x30000U)
+#define ADC_RESFIFO_TSRC_SHIFT                   (16U)
+/*! TSRC - Trigger Source
+ *  0b00..Trigger source 0 initiated this conversion.
+ *  0b01..Trigger source 1 initiated this conversion.
+ *  0b10..Trigger source 2 initiated this conversion.
+ *  0b11..Trigger source 3 initiated this conversion.
+ */
+#define ADC_RESFIFO_TSRC(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_TSRC_SHIFT)) & ADC_RESFIFO_TSRC_MASK)
+#define ADC_RESFIFO_LOOPCNT_MASK                 (0xF00000U)
+#define ADC_RESFIFO_LOOPCNT_SHIFT                (20U)
+/*! LOOPCNT - Loop count value
+ *  0b0000..Result is from initial conversion in command.
+ *  0b0001..Result is from second conversion in command.
+ *  0b0010-0b1110..Result is from LOOPCNT+1 conversion in command.
+ *  0b1111..Result is from 16th conversion in command.
+ */
+#define ADC_RESFIFO_LOOPCNT(x)                   (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_LOOPCNT_SHIFT)) & ADC_RESFIFO_LOOPCNT_MASK)
+#define ADC_RESFIFO_CMDSRC_MASK                  (0xF000000U)
+#define ADC_RESFIFO_CMDSRC_SHIFT                 (24U)
+/*! CMDSRC - Command Buffer Source
+ *  0b0000..Not a valid value CMDSRC value for a dataword in RESFIFO. 0x0 is only found in initial FIFO state prior to an ADC conversion result dataword being stored to a RESFIFO buffer.
+ *  0b0001..CMD1 buffer used as control settings for this conversion.
+ *  0b0010-0b1110..Corresponding command buffer used as control settings for this conversion.
+ *  0b1111..CMD15 buffer used as control settings for this conversion.
+ */
+#define ADC_RESFIFO_CMDSRC(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_CMDSRC_SHIFT)) & ADC_RESFIFO_CMDSRC_MASK)
+#define ADC_RESFIFO_VALID_MASK                   (0x80000000U)
+#define ADC_RESFIFO_VALID_SHIFT                  (31U)
+/*! VALID - FIFO entry is valid
+ *  0b0..FIFO is empty. Discard any read from RESFIFO.
+ *  0b1..FIFO record read from RESFIFO is valid.
+ */
+#define ADC_RESFIFO_VALID(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_VALID_SHIFT)) & ADC_RESFIFO_VALID_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group ADC_Register_Masks */
+
+
+/* ADC - Peripheral instance base addresses */
+/** Peripheral ADC0 base address */
+#define ADC0_BASE                                (0x4004A000u)
+/** Peripheral ADC0 base pointer */
+#define ADC0                                     ((ADC_Type *)ADC0_BASE)
+/** Array initializer of ADC peripheral base addresses */
+#define ADC_BASE_ADDRS                           { ADC0_BASE }
+/** Array initializer of ADC peripheral base pointers */
+#define ADC_BASE_PTRS                            { ADC0 }
+/** Interrupt vectors for the ADC peripheral type */
+#define ADC_IRQS                                 { ADC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group ADC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- AXBS Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup AXBS_Peripheral_Access_Layer AXBS Peripheral Access Layer
+ * @{
+ */
+
+/** AXBS - Register Layout Typedef */
+typedef struct {
+  struct {                                         /* offset: 0x0, array step: 0x100 */
+    __IO uint32_t PRS;                               /**< Priority Slave Registers, array offset: 0x0, array step: 0x100 */
+         uint8_t RESERVED_0[12];
+    __IO uint32_t CRS;                               /**< Control Register, array offset: 0x10, array step: 0x100 */
+         uint8_t RESERVED_1[236];
+  } SLAVE[5];
+       uint8_t RESERVED_0[768];
+  __IO uint32_t MGPCR0;                            /**< Master General Purpose Control Register, offset: 0x800 */
+       uint8_t RESERVED_1[252];
+  __IO uint32_t MGPCR1;                            /**< Master General Purpose Control Register, offset: 0x900 */
+       uint8_t RESERVED_2[252];
+  __IO uint32_t MGPCR2;                            /**< Master General Purpose Control Register, offset: 0xA00 */
+       uint8_t RESERVED_3[252];
+  __IO uint32_t MGPCR3;                            /**< Master General Purpose Control Register, offset: 0xB00 */
+       uint8_t RESERVED_4[252];
+  __IO uint32_t MGPCR4;                            /**< Master General Purpose Control Register, offset: 0xC00 */
+       uint8_t RESERVED_5[252];
+  __IO uint32_t MGPCR5;                            /**< Master General Purpose Control Register, offset: 0xD00 */
+} AXBS_Type;
+
+/* ----------------------------------------------------------------------------
+   -- AXBS Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup AXBS_Register_Masks AXBS Register Masks
+ * @{
+ */
+
+/*! @name PRS - Priority Slave Registers */
+/*! @{ */
+#define AXBS_PRS_M0_MASK                         (0x7U)
+#define AXBS_PRS_M0_SHIFT                        (0U)
+/*! M0 - Master 0 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M0(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M0_SHIFT)) & AXBS_PRS_M0_MASK)
+#define AXBS_PRS_M1_MASK                         (0x70U)
+#define AXBS_PRS_M1_SHIFT                        (4U)
+/*! M1 - Master 1 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M1(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M1_SHIFT)) & AXBS_PRS_M1_MASK)
+#define AXBS_PRS_M2_MASK                         (0x700U)
+#define AXBS_PRS_M2_SHIFT                        (8U)
+/*! M2 - Master 2 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M2(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M2_SHIFT)) & AXBS_PRS_M2_MASK)
+#define AXBS_PRS_M3_MASK                         (0x7000U)
+#define AXBS_PRS_M3_SHIFT                        (12U)
+/*! M3 - Master 3 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M3(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M3_SHIFT)) & AXBS_PRS_M3_MASK)
+#define AXBS_PRS_M4_MASK                         (0x70000U)
+#define AXBS_PRS_M4_SHIFT                        (16U)
+/*! M4 - Master 4 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M4(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M4_SHIFT)) & AXBS_PRS_M4_MASK)
+#define AXBS_PRS_M5_MASK                         (0x700000U)
+#define AXBS_PRS_M5_SHIFT                        (20U)
+/*! M5 - Master 5 Priority. Sets the arbitration priority for this port on the associated slave port.
+ *  0b000..This master has level 1, or highest, priority when accessing the slave port.
+ *  0b001..This master has level 2 priority when accessing the slave port.
+ *  0b010..This master has level 3 priority when accessing the slave port.
+ *  0b011..This master has level 4 priority when accessing the slave port.
+ *  0b100..This master has level 5 priority when accessing the slave port.
+ *  0b101..This master has level 6 priority when accessing the slave port.
+ *  0b110..This master has level 7 priority when accessing the slave port.
+ *  0b111..This master has level 8, or lowest, priority when accessing the slave port.
+ */
+#define AXBS_PRS_M5(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_PRS_M5_SHIFT)) & AXBS_PRS_M5_MASK)
+/*! @} */
+
+/* The count of AXBS_PRS */
+#define AXBS_PRS_COUNT                           (5U)
+
+/*! @name CRS - Control Register */
+/*! @{ */
+#define AXBS_CRS_PARK_MASK                       (0x7U)
+#define AXBS_CRS_PARK_SHIFT                      (0U)
+/*! PARK - Park
+ *  0b000..Park on master port M0
+ *  0b001..Park on master port M1
+ *  0b010..Park on master port M2
+ *  0b011..Park on master port M3
+ *  0b100..Park on master port M4
+ *  0b101..Park on master port M5
+ *  0b110..Park on master port M6
+ *  0b111..Park on master port M7
+ */
+#define AXBS_CRS_PARK(x)                         (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_PARK_SHIFT)) & AXBS_CRS_PARK_MASK)
+#define AXBS_CRS_PCTL_MASK                       (0x30U)
+#define AXBS_CRS_PCTL_SHIFT                      (4U)
+/*! PCTL - Parking Control
+ *  0b00..When no master makes a request, the arbiter parks the slave port on the master port defined by the PARK field
+ *  0b01..When no master makes a request, the arbiter parks the slave port on the last master to be in control of the slave port
+ *  0b10..When no master makes a request, the slave port is not parked on a master and the arbiter drives all outputs to a constant safe state
+ *  0b11..Reserved
+ */
+#define AXBS_CRS_PCTL(x)                         (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_PCTL_SHIFT)) & AXBS_CRS_PCTL_MASK)
+#define AXBS_CRS_ARB_MASK                        (0x300U)
+#define AXBS_CRS_ARB_SHIFT                       (8U)
+/*! ARB - Arbitration Mode
+ *  0b00..Fixed priority
+ *  0b01..Round-robin, or rotating, priority
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define AXBS_CRS_ARB(x)                          (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_ARB_SHIFT)) & AXBS_CRS_ARB_MASK)
+#define AXBS_CRS_HLP_MASK                        (0x40000000U)
+#define AXBS_CRS_HLP_SHIFT                       (30U)
+/*! HLP - Halt Low Priority
+ *  0b0..The low power mode request has the highest priority for arbitration on this slave port
+ *  0b1..The low power mode request has the lowest initial priority for arbitration on this slave port
+ */
+#define AXBS_CRS_HLP(x)                          (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_HLP_SHIFT)) & AXBS_CRS_HLP_MASK)
+#define AXBS_CRS_RO_MASK                         (0x80000000U)
+#define AXBS_CRS_RO_SHIFT                        (31U)
+/*! RO - Read Only
+ *  0b0..The slave port's registers are writeable
+ *  0b1..The slave port's registers are read-only and cannot be written. Attempted writes have no effect on the registers and result in a bus error response.
+ */
+#define AXBS_CRS_RO(x)                           (((uint32_t)(((uint32_t)(x)) << AXBS_CRS_RO_SHIFT)) & AXBS_CRS_RO_MASK)
+/*! @} */
+
+/* The count of AXBS_CRS */
+#define AXBS_CRS_COUNT                           (5U)
+
+/*! @name MGPCR0 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR0_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR0_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR0_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR0_AULB_SHIFT)) & AXBS_MGPCR0_AULB_MASK)
+/*! @} */
+
+/*! @name MGPCR1 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR1_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR1_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR1_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR1_AULB_SHIFT)) & AXBS_MGPCR1_AULB_MASK)
+/*! @} */
+
+/*! @name MGPCR2 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR2_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR2_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR2_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR2_AULB_SHIFT)) & AXBS_MGPCR2_AULB_MASK)
+/*! @} */
+
+/*! @name MGPCR3 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR3_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR3_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR3_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR3_AULB_SHIFT)) & AXBS_MGPCR3_AULB_MASK)
+/*! @} */
+
+/*! @name MGPCR4 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR4_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR4_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR4_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR4_AULB_SHIFT)) & AXBS_MGPCR4_AULB_MASK)
+/*! @} */
+
+/*! @name MGPCR5 - Master General Purpose Control Register */
+/*! @{ */
+#define AXBS_MGPCR5_AULB_MASK                    (0x7U)
+#define AXBS_MGPCR5_AULB_SHIFT                   (0U)
+/*! AULB - Arbitrates On Undefined Length Bursts
+ *  0b000..No arbitration is allowed during an undefined length burst
+ *  0b001..Arbitration is allowed at any time during an undefined length burst
+ *  0b010..Arbitration is allowed after four beats of an undefined length burst
+ *  0b011..Arbitration is allowed after eight beats of an undefined length burst
+ *  0b100..Arbitration is allowed after 16 beats of an undefined length burst
+ *  0b101..Reserved
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define AXBS_MGPCR5_AULB(x)                      (((uint32_t)(((uint32_t)(x)) << AXBS_MGPCR5_AULB_SHIFT)) & AXBS_MGPCR5_AULB_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group AXBS_Register_Masks */
+
+
+/* AXBS - Peripheral instance base addresses */
+/** Peripheral AXBS0 base address */
+#define AXBS0_BASE                               (0x40004000u)
+/** Peripheral AXBS0 base pointer */
+#define AXBS0                                    ((AXBS_Type *)AXBS0_BASE)
+/** Array initializer of AXBS peripheral base addresses */
+#define AXBS_BASE_ADDRS                          { AXBS0_BASE }
+/** Array initializer of AXBS peripheral base pointers */
+#define AXBS_BASE_PTRS                           { AXBS0 }
+
+/*!
+ * @}
+ */ /* end of group AXBS_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- CAU3 Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CAU3_Peripheral_Access_Layer CAU3 Peripheral Access Layer
+ * @{
+ */
+
+/** CAU3 - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t PCT;                               /**< Processor Core Type, offset: 0x0 */
+  __I  uint32_t MCFG;                              /**< Memory Configuration, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x14 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t DBGCSR;                            /**< Debug Control/Status Register, offset: 0x20 */
+  __IO uint32_t DBGPBR;                            /**< Debug PC Breakpoint Register, offset: 0x24 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t DBGMCMD;                           /**< Debug Memory Command Register, offset: 0x30 */
+  __IO uint32_t DBGMADR;                           /**< Debug Memory Address Register, offset: 0x34 */
+  __IO uint32_t DBGMDR;                            /**< Debug Memory Data Register, offset: 0x38 */
+       uint8_t RESERVED_3[180];
+  __IO uint32_t SEMA4;                             /**< Semaphore Register, offset: 0xF0 */
+  __I  uint32_t SMOWNR;                            /**< Semaphore Ownership Register, offset: 0xF4 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t ARR;                               /**< Address Remap Register, offset: 0xFC */
+       uint8_t RESERVED_5[128];
+  __IO uint32_t CC_R[30];                          /**< CryptoCore General Purpose Registers, array offset: 0x180, array step: 0x4 */
+  __IO uint32_t CC_R30;                            /**< General Purpose R30, offset: 0x1F8 */
+  __IO uint32_t CC_R31;                            /**< General Purpose R31, offset: 0x1FC */
+  __IO uint32_t CC_PC;                             /**< Program Counter, offset: 0x200 */
+  __O  uint32_t CC_CMD;                            /**< Start Command Register, offset: 0x204 */
+  __I  uint32_t CC_CF;                             /**< Condition Flag, offset: 0x208 */
+       uint8_t RESERVED_6[500];
+  __IO uint32_t MDPK;                              /**< Mode Register (PublicKey), offset: 0x400 */
+       uint8_t RESERVED_7[44];
+  __O  uint32_t COM;                               /**< Command Register, offset: 0x430 */
+  __IO uint32_t CTL;                               /**< Control Register, offset: 0x434 */
+       uint8_t RESERVED_8[8];
+  __O  uint32_t CW;                                /**< Clear Written Register, offset: 0x440 */
+       uint8_t RESERVED_9[4];
+  __IO uint32_t STA;                               /**< Status Register, offset: 0x448 */
+  __I  uint32_t ESTA;                              /**< Error Status Register, offset: 0x44C */
+       uint8_t RESERVED_10[48];
+  __IO uint32_t PKASZ;                             /**< PKHA A Size Register, offset: 0x480 */
+       uint8_t RESERVED_11[4];
+  __IO uint32_t PKBSZ;                             /**< PKHA B Size Register, offset: 0x488 */
+       uint8_t RESERVED_12[4];
+  __IO uint32_t PKNSZ;                             /**< PKHA N Size Register, offset: 0x490 */
+       uint8_t RESERVED_13[4];
+  __IO uint32_t PKESZ;                             /**< PKHA E Size Register, offset: 0x498 */
+       uint8_t RESERVED_14[84];
+  __I  uint32_t PKHA_VID1;                         /**< PKHA Revision ID 1, offset: 0x4F0 */
+  __I  uint32_t PKHA_VID2;                         /**< PKHA Revision ID 2, offset: 0x4F4 */
+  __I  uint32_t CHA_VID;                           /**< CHA Revision ID, offset: 0x4F8 */
+       uint8_t RESERVED_15[260];
+  __IO uint32_t PKHA_CCR;                          /**< PKHA Clock Control Register, offset: 0x600 */
+  __I  uint32_t GSR;                               /**< Global Status Register, offset: 0x604 */
+  __IO uint32_t CKLFSR;                            /**< Clock Linear Feedback Shift Register, offset: 0x608 */
+       uint8_t RESERVED_16[500];
+  __IO uint32_t PKA0[32];                          /**< PKHA A0 Register, array offset: 0x800, array step: 0x4 */
+  __IO uint32_t PKA1[32];                          /**< PKHA A1 Register, array offset: 0x880, array step: 0x4 */
+  __IO uint32_t PKA2[32];                          /**< PKHA A2 Register, array offset: 0x900, array step: 0x4 */
+  __IO uint32_t PKA3[32];                          /**< PKHA A3 Register, array offset: 0x980, array step: 0x4 */
+  __IO uint32_t PKB0[32];                          /**< PKHA B0 Register, array offset: 0xA00, array step: 0x4 */
+  __IO uint32_t PKB1[32];                          /**< PKHA B1 Register, array offset: 0xA80, array step: 0x4 */
+  __IO uint32_t PKB2[32];                          /**< PKHA B2 Register, array offset: 0xB00, array step: 0x4 */
+  __IO uint32_t PKB3[32];                          /**< PKHA B3 Register, array offset: 0xB80, array step: 0x4 */
+  __IO uint32_t PKN0[32];                          /**< PKHA N0 Register, array offset: 0xC00, array step: 0x4 */
+  __IO uint32_t PKN1[32];                          /**< PKHA N1 Register, array offset: 0xC80, array step: 0x4 */
+  __IO uint32_t PKN2[32];                          /**< PKHA N2 Register, array offset: 0xD00, array step: 0x4 */
+  __IO uint32_t PKN3[32];                          /**< PKHA N3 Register, array offset: 0xD80, array step: 0x4 */
+  __O  uint32_t PKE[128];                          /**< PKHA E Register, array offset: 0xE00, array step: 0x4 */
+} CAU3_Type;
+
+/* ----------------------------------------------------------------------------
+   -- CAU3 Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CAU3_Register_Masks CAU3 Register Masks
+ * @{
+ */
+
+/*! @name PCT - Processor Core Type */
+/*! @{ */
+#define CAU3_PCT_Y_MASK                          (0xFU)
+#define CAU3_PCT_Y_SHIFT                         (0U)
+/*! Y - Minor version number
+ *  0b0000..Minor version number
+ */
+#define CAU3_PCT_Y(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_Y_SHIFT)) & CAU3_PCT_Y_MASK)
+#define CAU3_PCT_X_MASK                          (0xF0U)
+#define CAU3_PCT_X_SHIFT                         (4U)
+/*! X - Major version number
+ *  0b0000..Major version number
+ */
+#define CAU3_PCT_X(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_X_SHIFT)) & CAU3_PCT_X_MASK)
+#define CAU3_PCT_ID_MASK                         (0xFFFFFF00U)
+#define CAU3_PCT_ID_SHIFT                        (8U)
+/*! ID - Module ID number
+ *  0b010010110100000101100000..ID number for basic configuration
+ *  0b010010110100000101100001..ID number for PKHA configuration
+ */
+#define CAU3_PCT_ID(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_ID_SHIFT)) & CAU3_PCT_ID_MASK)
+/*! @} */
+
+/*! @name MCFG - Memory Configuration */
+/*! @{ */
+#define CAU3_MCFG_DRAM_SZ_MASK                   (0xF00U)
+#define CAU3_MCFG_DRAM_SZ_SHIFT                  (8U)
+/*! DRAM_SZ - Data RAM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_DRAM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_DRAM_SZ_SHIFT)) & CAU3_MCFG_DRAM_SZ_MASK)
+#define CAU3_MCFG_IROM_SZ_MASK                   (0xF0000U)
+#define CAU3_MCFG_IROM_SZ_SHIFT                  (16U)
+/*! IROM_SZ - Instruction ROM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_IROM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_IROM_SZ_SHIFT)) & CAU3_MCFG_IROM_SZ_MASK)
+#define CAU3_MCFG_IRAM_SZ_MASK                   (0xF000000U)
+#define CAU3_MCFG_IRAM_SZ_SHIFT                  (24U)
+/*! IRAM_SZ - Instruction RAM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_IRAM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_IRAM_SZ_SHIFT)) & CAU3_MCFG_IRAM_SZ_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define CAU3_CR_TCSEIE_MASK                      (0x1U)
+#define CAU3_CR_TCSEIE_SHIFT                     (0U)
+/*! TCSEIE - Task completion with software error interrupt enable
+ *  0b0..Disables task completion with software error to generate an interrupt request
+ *  0b1..Enables task completion with software error to generate an interrupt request
+ */
+#define CAU3_CR_TCSEIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_TCSEIE_SHIFT)) & CAU3_CR_TCSEIE_MASK)
+#define CAU3_CR_ILLIE_MASK                       (0x2U)
+#define CAU3_CR_ILLIE_SHIFT                      (1U)
+/*! ILLIE - Illegal Instruction Interrupt Enable
+ *  0b0..Illegal instruction interrupt requests are disabled
+ *  0b1..illegal Instruction interrupt requests are enabled
+ */
+#define CAU3_CR_ILLIE(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_ILLIE_SHIFT)) & CAU3_CR_ILLIE_MASK)
+#define CAU3_CR_ASREIE_MASK                      (0x8U)
+#define CAU3_CR_ASREIE_SHIFT                     (3U)
+/*! ASREIE - AHB Slave Response Error Interrupt Enable
+ *  0b0..AHB slave response error interruption is not enabled
+ *  0b1..AHB slave response error interruption is enabled
+ */
+#define CAU3_CR_ASREIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_ASREIE_SHIFT)) & CAU3_CR_ASREIE_MASK)
+#define CAU3_CR_IIADIE_MASK                      (0x10U)
+#define CAU3_CR_IIADIE_SHIFT                     (4U)
+/*! IIADIE - IMEM Illegal Address Interrupt Enable
+ *  0b0..IMEM illegal address interruption is not enabled
+ *  0b1..IMEM illegal address interruption is enabled
+ */
+#define CAU3_CR_IIADIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_IIADIE_SHIFT)) & CAU3_CR_IIADIE_MASK)
+#define CAU3_CR_DIADIE_MASK                      (0x20U)
+#define CAU3_CR_DIADIE_SHIFT                     (5U)
+/*! DIADIE - DMEM Illegal Address Interrupt Enable
+ *  0b0..DMEM illegal address interruption is not enabled
+ *  0b1..DMEM illegal address interruption is enabled
+ */
+#define CAU3_CR_DIADIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DIADIE_SHIFT)) & CAU3_CR_DIADIE_MASK)
+#define CAU3_CR_SVIE_MASK                        (0x40U)
+#define CAU3_CR_SVIE_SHIFT                       (6U)
+/*! SVIE - Security Violation Interrupt Enable
+ *  0b0..Security violation interruption is not enabled
+ *  0b1..Security violation interruption is enabled
+ */
+#define CAU3_CR_SVIE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_SVIE_SHIFT)) & CAU3_CR_SVIE_MASK)
+#define CAU3_CR_TCIE_MASK                        (0x80U)
+#define CAU3_CR_TCIE_SHIFT                       (7U)
+/*! TCIE - Task completion with no error interrupt enable
+ *  0b0..Disables task completion with no error to generate an interrupt request
+ *  0b1..Enables task completion with no error to generate an interrupt request
+ */
+#define CAU3_CR_TCIE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_TCIE_SHIFT)) & CAU3_CR_TCIE_MASK)
+#define CAU3_CR_RSTSM4_MASK                      (0x3000U)
+#define CAU3_CR_RSTSM4_SHIFT                     (12U)
+/*! RSTSM4 - Reset Semaphore
+ *  0b00..Idle state
+ *  0b01..Wait for second write
+ *  0b10..Clears semaphore if previous state was "01"
+ *  0b11..Reserved
+ */
+#define CAU3_CR_RSTSM4(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_RSTSM4_SHIFT)) & CAU3_CR_RSTSM4_MASK)
+#define CAU3_CR_MRST_MASK                        (0x8000U)
+#define CAU3_CR_MRST_SHIFT                       (15U)
+/*! MRST - Module Reset
+ *  0b0..no action
+ *  0b1..reset
+ */
+#define CAU3_CR_MRST(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_MRST_SHIFT)) & CAU3_CR_MRST_MASK)
+#define CAU3_CR_FSV_MASK                         (0x10000U)
+#define CAU3_CR_FSV_SHIFT                        (16U)
+/*! FSV - Force Security Violation Test
+ *  0b0..no violation is forced
+ *  0b1..force security violation
+ */
+#define CAU3_CR_FSV(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CR_FSV_SHIFT)) & CAU3_CR_FSV_MASK)
+#define CAU3_CR_DTCCFG_MASK                      (0x7000000U)
+#define CAU3_CR_DTCCFG_SHIFT                     (24U)
+/*! DTCCFG - Default Task Completion Configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert Event Completion Signal
+ *  0b001..Issue an Interrupt Request
+ *  0b000..no explicit action
+ */
+#define CAU3_CR_DTCCFG(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DTCCFG_SHIFT)) & CAU3_CR_DTCCFG_MASK)
+#define CAU3_CR_DSHFI_MASK                       (0x10000000U)
+#define CAU3_CR_DSHFI_SHIFT                      (28U)
+/*! DSHFI - Disable Secure Hash Function Instructions
+ *  0b0..Secure Hash Functions are enabled
+ *  0b1..Secure Hash Functions are disabled
+ */
+#define CAU3_CR_DSHFI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DSHFI_SHIFT)) & CAU3_CR_DSHFI_MASK)
+#define CAU3_CR_DDESI_MASK                       (0x20000000U)
+#define CAU3_CR_DDESI_SHIFT                      (29U)
+/*! DDESI - Disable DES Instructions
+ *  0b0..DES instructions are enabled
+ *  0b1..DES instructions are disabled
+ */
+#define CAU3_CR_DDESI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DDESI_SHIFT)) & CAU3_CR_DDESI_MASK)
+#define CAU3_CR_DAESI_MASK                       (0x40000000U)
+#define CAU3_CR_DAESI_SHIFT                      (30U)
+/*! DAESI - Disable AES Instructions
+ *  0b0..AES instructions are enabled
+ *  0b1..AES instructions are disabled
+ */
+#define CAU3_CR_DAESI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DAESI_SHIFT)) & CAU3_CR_DAESI_MASK)
+#define CAU3_CR_MDIS_MASK                        (0x80000000U)
+#define CAU3_CR_MDIS_SHIFT                       (31U)
+/*! MDIS - Module Disable
+ *  0b0..CAU3 exits from low power mode
+ *  0b1..CAU3 enters low power mode
+ */
+#define CAU3_CR_MDIS(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_MDIS_SHIFT)) & CAU3_CR_MDIS_MASK)
+/*! @} */
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define CAU3_SR_TCSEIRQ_MASK                     (0x1U)
+#define CAU3_SR_TCSEIRQ_SHIFT                    (0U)
+/*! TCSEIRQ - Task completion with software error interrupt request
+ *  0b0..Task not finished or finished with no software error
+ *  0b1..Task execution finished with software error
+ */
+#define CAU3_SR_TCSEIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCSEIRQ_SHIFT)) & CAU3_SR_TCSEIRQ_MASK)
+#define CAU3_SR_ILLIRQ_MASK                      (0x2U)
+#define CAU3_SR_ILLIRQ_SHIFT                     (1U)
+/*! ILLIRQ - Illegal instruction interrupt request
+ *  0b0..no error
+ *  0b1..illegal instruction detected
+ */
+#define CAU3_SR_ILLIRQ(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_SR_ILLIRQ_SHIFT)) & CAU3_SR_ILLIRQ_MASK)
+#define CAU3_SR_ASREIRQ_MASK                     (0x8U)
+#define CAU3_SR_ASREIRQ_SHIFT                    (3U)
+/*! ASREIRQ - AHB slave response error interrupt Request
+ *  0b0..no error
+ *  0b1..AHB slave response error detected
+ */
+#define CAU3_SR_ASREIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_ASREIRQ_SHIFT)) & CAU3_SR_ASREIRQ_MASK)
+#define CAU3_SR_IIADIRQ_MASK                     (0x10U)
+#define CAU3_SR_IIADIRQ_SHIFT                    (4U)
+/*! IIADIRQ - IMEM Illegal address interrupt request
+ *  0b0..no error
+ *  0b1..illegal IMEM address detected
+ */
+#define CAU3_SR_IIADIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_IIADIRQ_SHIFT)) & CAU3_SR_IIADIRQ_MASK)
+#define CAU3_SR_DIADIRQ_MASK                     (0x20U)
+#define CAU3_SR_DIADIRQ_SHIFT                    (5U)
+/*! DIADIRQ - DMEM illegal access interrupt request
+ *  0b0..no illegal address
+ *  0b1..illegal address
+ */
+#define CAU3_SR_DIADIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_DIADIRQ_SHIFT)) & CAU3_SR_DIADIRQ_MASK)
+#define CAU3_SR_SVIRQ_MASK                       (0x40U)
+#define CAU3_SR_SVIRQ_SHIFT                      (6U)
+/*! SVIRQ - Security violation interrupt request
+ *  0b0..No security violation
+ *  0b1..Security violation
+ */
+#define CAU3_SR_SVIRQ(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_SVIRQ_SHIFT)) & CAU3_SR_SVIRQ_MASK)
+#define CAU3_SR_TCIRQ_MASK                       (0x80U)
+#define CAU3_SR_TCIRQ_SHIFT                      (7U)
+/*! TCIRQ - Task completion with no error interrupt request
+ *  0b0..Task not finished or finished with error
+ *  0b1..Task execution finished with no error
+ */
+#define CAU3_SR_TCIRQ(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCIRQ_SHIFT)) & CAU3_SR_TCIRQ_MASK)
+#define CAU3_SR_TKCS_MASK                        (0xF00U)
+#define CAU3_SR_TKCS_SHIFT                       (8U)
+/*! TKCS - Task completion status
+ *  0b0000..Initialization RUN
+ *  0b0001..Running
+ *  0b0010..Debug Halted
+ *  0b1001..Stop - Error Free
+ *  0b1010..Stop - Error
+ *  0b1110..Stop - Security Violation, assert security violation output signal and set SVIRQ
+ *  0b1111..Stop - Security Violation and set SVIRQ
+ */
+#define CAU3_SR_TKCS(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TKCS_SHIFT)) & CAU3_SR_TKCS_MASK)
+#define CAU3_SR_SVF_MASK                         (0x10000U)
+#define CAU3_SR_SVF_SHIFT                        (16U)
+/*! SVF - Security violation flag
+ *  0b0..SoC security violation is not asserted
+ *  0b1..SoC security violation was asserted
+ */
+#define CAU3_SR_SVF(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_SR_SVF_SHIFT)) & CAU3_SR_SVF_MASK)
+#define CAU3_SR_DBG_MASK                         (0x20000U)
+#define CAU3_SR_DBG_SHIFT                        (17U)
+/*! DBG - Debug mode
+ *  0b0..CAU3 is not in debug mode
+ *  0b1..CAU3 is in debug mode
+ */
+#define CAU3_SR_DBG(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_SR_DBG_SHIFT)) & CAU3_SR_DBG_MASK)
+#define CAU3_SR_TCCFG_MASK                       (0x7000000U)
+#define CAU3_SR_TCCFG_SHIFT                      (24U)
+/*! TCCFG - Task completion configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert the Event Completion Signal
+ *  0b001..Assert an interrupt request
+ *  0b000..No action
+ */
+#define CAU3_SR_TCCFG(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCCFG_SHIFT)) & CAU3_SR_TCCFG_MASK)
+#define CAU3_SR_MDISF_MASK                       (0x80000000U)
+#define CAU3_SR_MDISF_SHIFT                      (31U)
+/*! MDISF - Module disable flag
+ *  0b0..CCore is not in low power mode
+ *  0b1..CCore is in low power mode
+ */
+#define CAU3_SR_MDISF(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_MDISF_SHIFT)) & CAU3_SR_MDISF_MASK)
+/*! @} */
+
+/*! @name DBGCSR - Debug Control/Status Register */
+/*! @{ */
+#define CAU3_DBGCSR_DDBG_MASK                    (0x1U)
+#define CAU3_DBGCSR_DDBG_SHIFT                   (0U)
+/*! DDBG - Debug Disable
+ *  0b0..debug is enabled
+ *  0b1..debug is disabled
+ */
+#define CAU3_DBGCSR_DDBG(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DDBG_SHIFT)) & CAU3_DBGCSR_DDBG_MASK)
+#define CAU3_DBGCSR_DDBGMC_MASK                  (0x2U)
+#define CAU3_DBGCSR_DDBGMC_SHIFT                 (1U)
+/*! DDBGMC - Disable Debug Memory Commands
+ *  0b0..IPS access to IMEM and DMEM are enabled
+ *  0b1..IPS access to IMEM and DMEM are disabled
+ */
+#define CAU3_DBGCSR_DDBGMC(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DDBGMC_SHIFT)) & CAU3_DBGCSR_DDBGMC_MASK)
+#define CAU3_DBGCSR_PBREN_MASK                   (0x10U)
+#define CAU3_DBGCSR_PBREN_SHIFT                  (4U)
+/*! PBREN - PC Breakpoint Register Enable
+ *  0b0..PC breakpoint register (DBGPBR) is disabled
+ *  0b1..PC breakpoint register (DBGPBR) is enabled
+ */
+#define CAU3_DBGCSR_PBREN(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_PBREN_SHIFT)) & CAU3_DBGCSR_PBREN_MASK)
+#define CAU3_DBGCSR_SIM_MASK                     (0x20U)
+#define CAU3_DBGCSR_SIM_SHIFT                    (5U)
+/*! SIM - Single Instruction Mode
+ *  0b0..Single instruction mode is disabled
+ *  0b1..Single instruction mode is enabled
+ */
+#define CAU3_DBGCSR_SIM(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_SIM_SHIFT)) & CAU3_DBGCSR_SIM_MASK)
+#define CAU3_DBGCSR_FRCH_MASK                    (0x100U)
+#define CAU3_DBGCSR_FRCH_SHIFT                   (8U)
+/*! FRCH - Force Debug Halt
+ *  0b0..Halt state not forced
+ *  0b1..Force halt state
+ */
+#define CAU3_DBGCSR_FRCH(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_FRCH_SHIFT)) & CAU3_DBGCSR_FRCH_MASK)
+#define CAU3_DBGCSR_DBGGO_MASK                   (0x1000U)
+#define CAU3_DBGCSR_DBGGO_SHIFT                  (12U)
+/*! DBGGO - Debug Go
+ *  0b0..No action
+ *  0b1..Resume program execution
+ */
+#define CAU3_DBGCSR_DBGGO(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DBGGO_SHIFT)) & CAU3_DBGCSR_DBGGO_MASK)
+#define CAU3_DBGCSR_PCBHF_MASK                   (0x10000U)
+#define CAU3_DBGCSR_PCBHF_SHIFT                  (16U)
+/*! PCBHF - CryptoCore is Halted due to Hardware Breakpoint
+ *  0b0..CryptoCore is not halted due to a hardware breakpoint
+ *  0b1..CryptoCore is halted due to a hardware breakpoint
+ */
+#define CAU3_DBGCSR_PCBHF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_PCBHF_SHIFT)) & CAU3_DBGCSR_PCBHF_MASK)
+#define CAU3_DBGCSR_SIMHF_MASK                   (0x20000U)
+#define CAU3_DBGCSR_SIMHF_SHIFT                  (17U)
+/*! SIMHF - CryptoCore is Halted due to Single Instruction Step
+ *  0b0..CryptoCore is not in a single step halt
+ *  0b1..CryptoCore is in a single step halt
+ */
+#define CAU3_DBGCSR_SIMHF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_SIMHF_SHIFT)) & CAU3_DBGCSR_SIMHF_MASK)
+#define CAU3_DBGCSR_HLTIF_MASK                   (0x40000U)
+#define CAU3_DBGCSR_HLTIF_SHIFT                  (18U)
+/*! HLTIF - CryptoCore is Halted due to HALT Instruction
+ *  0b0..CryptoCore is not in software breakpoint
+ *  0b1..CryptoCore is in software breakpoint
+ */
+#define CAU3_DBGCSR_HLTIF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_HLTIF_SHIFT)) & CAU3_DBGCSR_HLTIF_MASK)
+#define CAU3_DBGCSR_CSTPF_MASK                   (0x40000000U)
+#define CAU3_DBGCSR_CSTPF_SHIFT                  (30U)
+/*! CSTPF - CryptoCore is Stopped Status Flag
+ *  0b0..CryptoCore is not stopped
+ *  0b1..CryptoCore is stopped
+ */
+#define CAU3_DBGCSR_CSTPF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_CSTPF_SHIFT)) & CAU3_DBGCSR_CSTPF_MASK)
+#define CAU3_DBGCSR_CHLTF_MASK                   (0x80000000U)
+#define CAU3_DBGCSR_CHLTF_SHIFT                  (31U)
+/*! CHLTF - CryptoCore is Halted Status Flag
+ *  0b0..CryptoCore is not halted
+ *  0b1..CryptoCore is halted
+ */
+#define CAU3_DBGCSR_CHLTF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_CHLTF_SHIFT)) & CAU3_DBGCSR_CHLTF_MASK)
+/*! @} */
+
+/*! @name DBGPBR - Debug PC Breakpoint Register */
+/*! @{ */
+#define CAU3_DBGPBR_PCBKPT_MASK                  (0xFFFFCU)
+#define CAU3_DBGPBR_PCBKPT_SHIFT                 (2U)
+#define CAU3_DBGPBR_PCBKPT(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGPBR_PCBKPT_SHIFT)) & CAU3_DBGPBR_PCBKPT_MASK)
+/*! @} */
+
+/*! @name DBGMCMD - Debug Memory Command Register */
+/*! @{ */
+#define CAU3_DBGMCMD_DM_MASK                     (0x1000000U)
+#define CAU3_DBGMCMD_DM_SHIFT                    (24U)
+/*! DM - Instruction/Data Memory Selection
+ *  0b0..IMEM is selected
+ *  0b1..DMEM is selected
+ */
+#define CAU3_DBGMCMD_DM(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_DM_SHIFT)) & CAU3_DBGMCMD_DM_MASK)
+#define CAU3_DBGMCMD_IA_MASK                     (0x4000000U)
+#define CAU3_DBGMCMD_IA_SHIFT                    (26U)
+/*! IA - Increment Address
+ *  0b0..Address is not incremented
+ *  0b1..Address is incremented after the access
+ */
+#define CAU3_DBGMCMD_IA(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_IA_SHIFT)) & CAU3_DBGMCMD_IA_MASK)
+#define CAU3_DBGMCMD_Rb_1_MASK                   (0x8000000U)
+#define CAU3_DBGMCMD_Rb_1_SHIFT                  (27U)
+#define CAU3_DBGMCMD_Rb_1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_Rb_1_SHIFT)) & CAU3_DBGMCMD_Rb_1_MASK)
+#define CAU3_DBGMCMD_BV_MASK                     (0x10000000U)
+#define CAU3_DBGMCMD_BV_SHIFT                    (28U)
+/*! BV - Byte Reversal Control
+ *  0b0..DMEM bytes are not reversed
+ *  0b1..DMEM bytes are reversed
+ */
+#define CAU3_DBGMCMD_BV(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_BV_SHIFT)) & CAU3_DBGMCMD_BV_MASK)
+#define CAU3_DBGMCMD_R_0_MASK                    (0x40000000U)
+#define CAU3_DBGMCMD_R_0_SHIFT                   (30U)
+#define CAU3_DBGMCMD_R_0(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_R_0_SHIFT)) & CAU3_DBGMCMD_R_0_MASK)
+#define CAU3_DBGMCMD_R_1_MASK                    (0x80000000U)
+#define CAU3_DBGMCMD_R_1_SHIFT                   (31U)
+#define CAU3_DBGMCMD_R_1(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_R_1_SHIFT)) & CAU3_DBGMCMD_R_1_MASK)
+/*! @} */
+
+/*! @name DBGMADR - Debug Memory Address Register */
+/*! @{ */
+#define CAU3_DBGMADR_DMADDR_MASK                 (0xFFFFFFFCU)
+#define CAU3_DBGMADR_DMADDR_SHIFT                (2U)
+#define CAU3_DBGMADR_DMADDR(x)                   (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMADR_DMADDR_SHIFT)) & CAU3_DBGMADR_DMADDR_MASK)
+/*! @} */
+
+/*! @name DBGMDR - Debug Memory Data Register */
+/*! @{ */
+#define CAU3_DBGMDR_DMDATA_MASK                  (0xFFFFFFFFU)
+#define CAU3_DBGMDR_DMDATA_SHIFT                 (0U)
+#define CAU3_DBGMDR_DMDATA(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMDR_DMDATA_SHIFT)) & CAU3_DBGMDR_DMDATA_MASK)
+/*! @} */
+
+/*! @name SEMA4 - Semaphore Register */
+/*! @{ */
+#define CAU3_SEMA4_DID_MASK                      (0xFU)
+#define CAU3_SEMA4_DID_SHIFT                     (0U)
+#define CAU3_SEMA4_DID(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_DID_SHIFT)) & CAU3_SEMA4_DID_MASK)
+#define CAU3_SEMA4_PR_MASK                       (0x40U)
+#define CAU3_SEMA4_PR_SHIFT                      (6U)
+/*! PR - Privilege Attribute of Locked Semaphore Owner
+ *  0b0..If semaphore is locked, then owner is operating in user mode
+ *  0b1..If semaphore is locked, then owner is operating in privileged mode
+ */
+#define CAU3_SEMA4_PR(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_PR_SHIFT)) & CAU3_SEMA4_PR_MASK)
+#define CAU3_SEMA4_NS_MASK                       (0x80U)
+#define CAU3_SEMA4_NS_SHIFT                      (7U)
+/*! NS - Non Secure Attribute of the Locked Semaphore Owner
+ *  0b0..If semaphore is locked, owner is operating in secure mode
+ *  0b1..If semaphore is locked, owner is operating in nonsecure mode
+ */
+#define CAU3_SEMA4_NS(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_NS_SHIFT)) & CAU3_SEMA4_NS_MASK)
+#define CAU3_SEMA4_MSTRN_MASK                    (0x3F00U)
+#define CAU3_SEMA4_MSTRN_SHIFT                   (8U)
+#define CAU3_SEMA4_MSTRN(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_MSTRN_SHIFT)) & CAU3_SEMA4_MSTRN_MASK)
+#define CAU3_SEMA4_LK_MASK                       (0x80000000U)
+#define CAU3_SEMA4_LK_SHIFT                      (31U)
+/*! LK - Semaphore Lock and Release Control
+ *  0b0..Semaphore release
+ *  0b1..Semaphore lock
+ */
+#define CAU3_SEMA4_LK(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_LK_SHIFT)) & CAU3_SEMA4_LK_MASK)
+/*! @} */
+
+/*! @name SMOWNR - Semaphore Ownership Register */
+/*! @{ */
+#define CAU3_SMOWNR_LOCK_MASK                    (0x1U)
+#define CAU3_SMOWNR_LOCK_SHIFT                   (0U)
+/*! LOCK - Semaphore Locked
+ *  0b0..Semaphore not locked
+ *  0b1..Semaphore locked
+ */
+#define CAU3_SMOWNR_LOCK(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_SMOWNR_LOCK_SHIFT)) & CAU3_SMOWNR_LOCK_MASK)
+#define CAU3_SMOWNR_NOWNER_MASK                  (0x80000000U)
+#define CAU3_SMOWNR_NOWNER_SHIFT                 (31U)
+/*! NOWNER - Semaphore Ownership
+ *  0b0..The host making the current read access is the semaphore owner
+ *  0b1..The host making the current read access is NOT the semaphore owner
+ */
+#define CAU3_SMOWNR_NOWNER(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_SMOWNR_NOWNER_SHIFT)) & CAU3_SMOWNR_NOWNER_MASK)
+/*! @} */
+
+/*! @name ARR - Address Remap Register */
+/*! @{ */
+#define CAU3_ARR_ARRL_MASK                       (0xFFFFFFFFU)
+#define CAU3_ARR_ARRL_SHIFT                      (0U)
+#define CAU3_ARR_ARRL(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_ARR_ARRL_SHIFT)) & CAU3_ARR_ARRL_MASK)
+/*! @} */
+
+/*! @name CC_R - CryptoCore General Purpose Registers */
+/*! @{ */
+#define CAU3_CC_R_R_MASK                         (0xFFFFFFFFU)
+#define CAU3_CC_R_R_SHIFT                        (0U)
+#define CAU3_CC_R_R(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R_R_SHIFT)) & CAU3_CC_R_R_MASK)
+/*! @} */
+
+/* The count of CAU3_CC_R */
+#define CAU3_CC_R_COUNT                          (30U)
+
+/*! @name CC_R30 - General Purpose R30 */
+/*! @{ */
+#define CAU3_CC_R30_SP_MASK                      (0xFFFFFFFFU)
+#define CAU3_CC_R30_SP_SHIFT                     (0U)
+#define CAU3_CC_R30_SP(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R30_SP_SHIFT)) & CAU3_CC_R30_SP_MASK)
+/*! @} */
+
+/*! @name CC_R31 - General Purpose R31 */
+/*! @{ */
+#define CAU3_CC_R31_LR_MASK                      (0xFFFFFFFFU)
+#define CAU3_CC_R31_LR_SHIFT                     (0U)
+#define CAU3_CC_R31_LR(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R31_LR_SHIFT)) & CAU3_CC_R31_LR_MASK)
+/*! @} */
+
+/*! @name CC_PC - Program Counter */
+/*! @{ */
+#define CAU3_CC_PC_PC_MASK                       (0xFFFFFU)
+#define CAU3_CC_PC_PC_SHIFT                      (0U)
+#define CAU3_CC_PC_PC(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CC_PC_PC_SHIFT)) & CAU3_CC_PC_PC_MASK)
+/*! @} */
+
+/*! @name CC_CMD - Start Command Register */
+/*! @{ */
+#define CAU3_CC_CMD_CMD_MASK                     (0x70000U)
+#define CAU3_CC_CMD_CMD_SHIFT                    (16U)
+/*! CMD - Command
+ *  0b000..Use CR[DTCCFG] for task completion configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert Event Completion Signal
+ *  0b001..Issue an interrupt request
+ */
+#define CAU3_CC_CMD_CMD(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CMD_CMD_SHIFT)) & CAU3_CC_CMD_CMD_MASK)
+/*! @} */
+
+/*! @name CC_CF - Condition Flag */
+/*! @{ */
+#define CAU3_CC_CF_C_MASK                        (0x1U)
+#define CAU3_CC_CF_C_SHIFT                       (0U)
+#define CAU3_CC_CF_C(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_C_SHIFT)) & CAU3_CC_CF_C_MASK)
+#define CAU3_CC_CF_V_MASK                        (0x2U)
+#define CAU3_CC_CF_V_SHIFT                       (1U)
+#define CAU3_CC_CF_V(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_V_SHIFT)) & CAU3_CC_CF_V_MASK)
+#define CAU3_CC_CF_Z_MASK                        (0x4U)
+#define CAU3_CC_CF_Z_SHIFT                       (2U)
+#define CAU3_CC_CF_Z(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_Z_SHIFT)) & CAU3_CC_CF_Z_MASK)
+#define CAU3_CC_CF_N_MASK                        (0x8U)
+#define CAU3_CC_CF_N_SHIFT                       (3U)
+#define CAU3_CC_CF_N(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_N_SHIFT)) & CAU3_CC_CF_N_MASK)
+/*! @} */
+
+/*! @name MDPK - Mode Register (PublicKey) */
+/*! @{ */
+#define CAU3_MDPK_PKHA_MODE_LS_MASK              (0xFFFU)
+#define CAU3_MDPK_PKHA_MODE_LS_SHIFT             (0U)
+#define CAU3_MDPK_PKHA_MODE_LS(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_PKHA_MODE_LS_SHIFT)) & CAU3_MDPK_PKHA_MODE_LS_MASK)
+#define CAU3_MDPK_PKHA_MODE_MS_MASK              (0xF0000U)
+#define CAU3_MDPK_PKHA_MODE_MS_SHIFT             (16U)
+#define CAU3_MDPK_PKHA_MODE_MS(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_PKHA_MODE_MS_SHIFT)) & CAU3_MDPK_PKHA_MODE_MS_MASK)
+#define CAU3_MDPK_ALG_MASK                       (0xF00000U)
+#define CAU3_MDPK_ALG_SHIFT                      (20U)
+/*! ALG - Algorithm
+ *  0b1000..PKHA
+ */
+#define CAU3_MDPK_ALG(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_ALG_SHIFT)) & CAU3_MDPK_ALG_MASK)
+/*! @} */
+
+/*! @name COM - Command Register */
+/*! @{ */
+#define CAU3_COM_ALL_MASK                        (0x1U)
+#define CAU3_COM_ALL_SHIFT                       (0U)
+/*! ALL - Reset All Internal Logic
+ *  0b0..Do Not Reset
+ *  0b1..Reset PKHA engine and registers
+ */
+#define CAU3_COM_ALL(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_COM_ALL_SHIFT)) & CAU3_COM_ALL_MASK)
+#define CAU3_COM_PK_MASK                         (0x40U)
+#define CAU3_COM_PK_SHIFT                        (6U)
+/*! PK - Reset PKHA
+ *  0b0..Do Not Reset
+ *  0b1..Reset Public Key Hardware Accelerator
+ */
+#define CAU3_COM_PK(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_COM_PK_SHIFT)) & CAU3_COM_PK_MASK)
+/*! @} */
+
+/*! @name CTL - Control Register */
+/*! @{ */
+#define CAU3_CTL_IM_MASK                         (0x1U)
+#define CAU3_CTL_IM_SHIFT                        (0U)
+/*! IM - Interrupt Mask
+ *  0b0..Interrupt not masked.
+ *  0b1..Interrupt masked
+ */
+#define CAU3_CTL_IM(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CTL_IM_SHIFT)) & CAU3_CTL_IM_MASK)
+#define CAU3_CTL_PDE_MASK                        (0x10U)
+#define CAU3_CTL_PDE_SHIFT                       (4U)
+/*! PDE - PKHA Register DMA Enable
+ *  0b0..DMA Request and Done signals disabled for the PKHA Registers.
+ *  0b1..DMA Request and Done signals enabled for the PKHA Registers.
+ */
+#define CAU3_CTL_PDE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CTL_PDE_SHIFT)) & CAU3_CTL_PDE_MASK)
+/*! @} */
+
+/*! @name CW - Clear Written Register */
+/*! @{ */
+#define CAU3_CW_CM_MASK                          (0x1U)
+#define CAU3_CW_CM_SHIFT                         (0U)
+#define CAU3_CW_CM(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CM_SHIFT)) & CAU3_CW_CM_MASK)
+#define CAU3_CW_CPKA_MASK                        (0x1000U)
+#define CAU3_CW_CPKA_SHIFT                       (12U)
+#define CAU3_CW_CPKA(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKA_SHIFT)) & CAU3_CW_CPKA_MASK)
+#define CAU3_CW_CPKB_MASK                        (0x2000U)
+#define CAU3_CW_CPKB_SHIFT                       (13U)
+#define CAU3_CW_CPKB(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKB_SHIFT)) & CAU3_CW_CPKB_MASK)
+#define CAU3_CW_CPKN_MASK                        (0x4000U)
+#define CAU3_CW_CPKN_SHIFT                       (14U)
+#define CAU3_CW_CPKN(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKN_SHIFT)) & CAU3_CW_CPKN_MASK)
+#define CAU3_CW_CPKE_MASK                        (0x8000U)
+#define CAU3_CW_CPKE_SHIFT                       (15U)
+#define CAU3_CW_CPKE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKE_SHIFT)) & CAU3_CW_CPKE_MASK)
+/*! @} */
+
+/*! @name STA - Status Register */
+/*! @{ */
+#define CAU3_STA_PB_MASK                         (0x40U)
+#define CAU3_STA_PB_SHIFT                        (6U)
+/*! PB - PKHA Busy
+ *  0b0..PKHA Idle
+ *  0b1..PKHA Busy.
+ */
+#define CAU3_STA_PB(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PB_SHIFT)) & CAU3_STA_PB_MASK)
+#define CAU3_STA_DI_MASK                         (0x10000U)
+#define CAU3_STA_DI_SHIFT                        (16U)
+#define CAU3_STA_DI(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_DI_SHIFT)) & CAU3_STA_DI_MASK)
+#define CAU3_STA_EI_MASK                         (0x100000U)
+#define CAU3_STA_EI_SHIFT                        (20U)
+/*! EI - Error Interrupt
+ *  0b0..Not Error.
+ *  0b1..Error Interrupt.
+ */
+#define CAU3_STA_EI(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_EI_SHIFT)) & CAU3_STA_EI_MASK)
+#define CAU3_STA_PKP_MASK                        (0x10000000U)
+#define CAU3_STA_PKP_SHIFT                       (28U)
+#define CAU3_STA_PKP(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKP_SHIFT)) & CAU3_STA_PKP_MASK)
+#define CAU3_STA_PKO_MASK                        (0x20000000U)
+#define CAU3_STA_PKO_SHIFT                       (29U)
+#define CAU3_STA_PKO(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKO_SHIFT)) & CAU3_STA_PKO_MASK)
+#define CAU3_STA_PKZ_MASK                        (0x40000000U)
+#define CAU3_STA_PKZ_SHIFT                       (30U)
+#define CAU3_STA_PKZ(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKZ_SHIFT)) & CAU3_STA_PKZ_MASK)
+/*! @} */
+
+/*! @name ESTA - Error Status Register */
+/*! @{ */
+#define CAU3_ESTA_ERRID1_MASK                    (0xFU)
+#define CAU3_ESTA_ERRID1_SHIFT                   (0U)
+/*! ERRID1 - Error ID 1
+ *  0b0001..Mode Error
+ *  0b0010..PKHA N Register Size Error
+ *  0b0011..PKHA E Register Size Error
+ *  0b0100..PKHA A Register Size Error
+ *  0b0101..PKHA B Register Size Error
+ *  0b0110..PKHA C input (as contained in the PKHA B0 quadrant) is Zero
+ *  0b0111..PKHA Divide by Zero Error
+ *  0b1000..PKHA Modulus Even Error
+ *  0b1111..Invalid Crypto Engine Selected
+ */
+#define CAU3_ESTA_ERRID1(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_ESTA_ERRID1_SHIFT)) & CAU3_ESTA_ERRID1_MASK)
+#define CAU3_ESTA_CL1_MASK                       (0xF00U)
+#define CAU3_ESTA_CL1_SHIFT                      (8U)
+/*! CL1 - algorithms
+ *  0b0000..General Error
+ *  0b1000..Public Key
+ */
+#define CAU3_ESTA_CL1(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_ESTA_CL1_SHIFT)) & CAU3_ESTA_CL1_MASK)
+/*! @} */
+
+/*! @name PKASZ - PKHA A Size Register */
+/*! @{ */
+#define CAU3_PKASZ_PKASZ_MASK                    (0x1FFU)
+#define CAU3_PKASZ_PKASZ_SHIFT                   (0U)
+#define CAU3_PKASZ_PKASZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKASZ_PKASZ_SHIFT)) & CAU3_PKASZ_PKASZ_MASK)
+/*! @} */
+
+/*! @name PKBSZ - PKHA B Size Register */
+/*! @{ */
+#define CAU3_PKBSZ_PKBSZ_MASK                    (0x1FFU)
+#define CAU3_PKBSZ_PKBSZ_SHIFT                   (0U)
+#define CAU3_PKBSZ_PKBSZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKBSZ_PKBSZ_SHIFT)) & CAU3_PKBSZ_PKBSZ_MASK)
+/*! @} */
+
+/*! @name PKNSZ - PKHA N Size Register */
+/*! @{ */
+#define CAU3_PKNSZ_PKNSZ_MASK                    (0x1FFU)
+#define CAU3_PKNSZ_PKNSZ_SHIFT                   (0U)
+#define CAU3_PKNSZ_PKNSZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKNSZ_PKNSZ_SHIFT)) & CAU3_PKNSZ_PKNSZ_MASK)
+/*! @} */
+
+/*! @name PKESZ - PKHA E Size Register */
+/*! @{ */
+#define CAU3_PKESZ_PKESZ_MASK                    (0x1FFU)
+#define CAU3_PKESZ_PKESZ_SHIFT                   (0U)
+#define CAU3_PKESZ_PKESZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKESZ_PKESZ_SHIFT)) & CAU3_PKESZ_PKESZ_MASK)
+/*! @} */
+
+/*! @name PKHA_VID1 - PKHA Revision ID 1 */
+/*! @{ */
+#define CAU3_PKHA_VID1_MIN_REV_MASK              (0xFFU)
+#define CAU3_PKHA_VID1_MIN_REV_SHIFT             (0U)
+#define CAU3_PKHA_VID1_MIN_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_MIN_REV_SHIFT)) & CAU3_PKHA_VID1_MIN_REV_MASK)
+#define CAU3_PKHA_VID1_MAJ_REV_MASK              (0xFF00U)
+#define CAU3_PKHA_VID1_MAJ_REV_SHIFT             (8U)
+#define CAU3_PKHA_VID1_MAJ_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_MAJ_REV_SHIFT)) & CAU3_PKHA_VID1_MAJ_REV_MASK)
+#define CAU3_PKHA_VID1_IP_ID_MASK                (0xFFFF0000U)
+#define CAU3_PKHA_VID1_IP_ID_SHIFT               (16U)
+#define CAU3_PKHA_VID1_IP_ID(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_IP_ID_SHIFT)) & CAU3_PKHA_VID1_IP_ID_MASK)
+/*! @} */
+
+/*! @name PKHA_VID2 - PKHA Revision ID 2 */
+/*! @{ */
+#define CAU3_PKHA_VID2_ECO_REV_MASK              (0xFFU)
+#define CAU3_PKHA_VID2_ECO_REV_SHIFT             (0U)
+#define CAU3_PKHA_VID2_ECO_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID2_ECO_REV_SHIFT)) & CAU3_PKHA_VID2_ECO_REV_MASK)
+#define CAU3_PKHA_VID2_ARCH_ERA_MASK             (0xFF00U)
+#define CAU3_PKHA_VID2_ARCH_ERA_SHIFT            (8U)
+#define CAU3_PKHA_VID2_ARCH_ERA(x)               (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID2_ARCH_ERA_SHIFT)) & CAU3_PKHA_VID2_ARCH_ERA_MASK)
+/*! @} */
+
+/*! @name CHA_VID - CHA Revision ID */
+/*! @{ */
+#define CAU3_CHA_VID_PKHAREV_MASK                (0xF0000U)
+#define CAU3_CHA_VID_PKHAREV_SHIFT               (16U)
+#define CAU3_CHA_VID_PKHAREV(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_CHA_VID_PKHAREV_SHIFT)) & CAU3_CHA_VID_PKHAREV_MASK)
+#define CAU3_CHA_VID_PKHAVID_MASK                (0xF00000U)
+#define CAU3_CHA_VID_PKHAVID_SHIFT               (20U)
+#define CAU3_CHA_VID_PKHAVID(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_CHA_VID_PKHAVID_SHIFT)) & CAU3_CHA_VID_PKHAVID_MASK)
+/*! @} */
+
+/*! @name PKHA_CCR - PKHA Clock Control Register */
+/*! @{ */
+#define CAU3_PKHA_CCR_CKTHRT_MASK                (0x7U)
+#define CAU3_PKHA_CCR_CKTHRT_SHIFT               (0U)
+/*! CKTHRT - Clock Throttle selection
+ *  0b000..PKHA clock division rate is 8/8 - full speed
+ *  0b001..PKHA clock division rate is 1/8
+ *  0b010..PKHA clock division rate is 2/8
+ *  0b011..PKHA clock division rate is 3/8
+ *  0b100..PKHA clock division rate is 4/8
+ *  0b101..PKHA clock division rate is 5/8
+ *  0b110..PKHA clock division rate is 6/8
+ *  0b111..PKHA clock division rate is 7/8
+ */
+#define CAU3_PKHA_CCR_CKTHRT(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_CKTHRT_SHIFT)) & CAU3_PKHA_CCR_CKTHRT_MASK)
+#define CAU3_PKHA_CCR_LK_MASK                    (0x1000000U)
+#define CAU3_PKHA_CCR_LK_SHIFT                   (24U)
+/*! LK - Register Lock
+ *  0b0..Register is unlocked
+ *  0b1..Register is locked
+ */
+#define CAU3_PKHA_CCR_LK(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_LK_SHIFT)) & CAU3_PKHA_CCR_LK_MASK)
+#define CAU3_PKHA_CCR_ELFR_MASK                  (0x20000000U)
+#define CAU3_PKHA_CCR_ELFR_SHIFT                 (29U)
+/*! ELFR - Enable Linear Feedback Shift Register
+ *  0b0..LFSR is only enabled if ECT = 1 and ECJ = 1
+ *  0b1..LFSR is enabled independently of ECT and ECJ
+ */
+#define CAU3_PKHA_CCR_ELFR(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ELFR_SHIFT)) & CAU3_PKHA_CCR_ELFR_MASK)
+#define CAU3_PKHA_CCR_ECJ_MASK                   (0x40000000U)
+#define CAU3_PKHA_CCR_ECJ_SHIFT                  (30U)
+/*! ECJ - Enable Clock Jitter
+ *  0b0..Clock Jitter is disabled
+ *  0b1..Clock jitter is enabled
+ */
+#define CAU3_PKHA_CCR_ECJ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ECJ_SHIFT)) & CAU3_PKHA_CCR_ECJ_MASK)
+#define CAU3_PKHA_CCR_ECT_MASK                   (0x80000000U)
+#define CAU3_PKHA_CCR_ECT_SHIFT                  (31U)
+/*! ECT - Enable Clock Throttle
+ *  0b0..PKHA clock throttle disabled meaning that PKHA is operatiing at full speed
+ *  0b1..PKHA clock throttle enabled
+ */
+#define CAU3_PKHA_CCR_ECT(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ECT_SHIFT)) & CAU3_PKHA_CCR_ECT_MASK)
+/*! @} */
+
+/*! @name GSR - Global Status Register */
+/*! @{ */
+#define CAU3_GSR_CDI_MASK                        (0x400U)
+#define CAU3_GSR_CDI_SHIFT                       (10U)
+/*! CDI - CAU3 Done Interrupt occurred
+ *  0b0..CAU3 Done Interrupt did not occur
+ *  0b1..CAU3 Done Interrupt occurred
+ */
+#define CAU3_GSR_CDI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_CDI_SHIFT)) & CAU3_GSR_CDI_MASK)
+#define CAU3_GSR_CEI_MASK                        (0x4000U)
+#define CAU3_GSR_CEI_SHIFT                       (14U)
+/*! CEI - CAU3 Error Interrupt
+ *  0b0..CAU3 Error Interrupt did not occur
+ *  0b1..CAU3 Error Interrupt occurred
+ */
+#define CAU3_GSR_CEI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_CEI_SHIFT)) & CAU3_GSR_CEI_MASK)
+#define CAU3_GSR_PEI_MASK                        (0x8000U)
+#define CAU3_GSR_PEI_SHIFT                       (15U)
+/*! PEI - PKHA Done or Error Interrupt
+ *  0b0..PKHA interrupt did not occur
+ *  0b1..PKHA interrupt had occurred
+ */
+#define CAU3_GSR_PEI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_PEI_SHIFT)) & CAU3_GSR_PEI_MASK)
+#define CAU3_GSR_PBSY_MASK                       (0x80000000U)
+#define CAU3_GSR_PBSY_SHIFT                      (31U)
+/*! PBSY - PKHA Busy
+ *  0b0..PKHA not busy
+ *  0b1..PKHA busy
+ */
+#define CAU3_GSR_PBSY(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_PBSY_SHIFT)) & CAU3_GSR_PBSY_MASK)
+/*! @} */
+
+/*! @name CKLFSR - Clock Linear Feedback Shift Register */
+/*! @{ */
+#define CAU3_CKLFSR_LFSR_MASK                    (0xFFFFFFFFU)
+#define CAU3_CKLFSR_LFSR_SHIFT                   (0U)
+#define CAU3_CKLFSR_LFSR(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_CKLFSR_LFSR_SHIFT)) & CAU3_CKLFSR_LFSR_MASK)
+/*! @} */
+
+/*! @name PKA0 - PKHA A0 Register */
+/*! @{ */
+#define CAU3_PKA0_PKHA_A0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA0_PKHA_A0_SHIFT                  (0U)
+#define CAU3_PKA0_PKHA_A0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA0_PKHA_A0_SHIFT)) & CAU3_PKA0_PKHA_A0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA0 */
+#define CAU3_PKA0_COUNT                          (32U)
+
+/*! @name PKA1 - PKHA A1 Register */
+/*! @{ */
+#define CAU3_PKA1_PKHA_A1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA1_PKHA_A1_SHIFT                  (0U)
+#define CAU3_PKA1_PKHA_A1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA1_PKHA_A1_SHIFT)) & CAU3_PKA1_PKHA_A1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA1 */
+#define CAU3_PKA1_COUNT                          (32U)
+
+/*! @name PKA2 - PKHA A2 Register */
+/*! @{ */
+#define CAU3_PKA2_PKHA_A2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA2_PKHA_A2_SHIFT                  (0U)
+#define CAU3_PKA2_PKHA_A2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA2_PKHA_A2_SHIFT)) & CAU3_PKA2_PKHA_A2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA2 */
+#define CAU3_PKA2_COUNT                          (32U)
+
+/*! @name PKA3 - PKHA A3 Register */
+/*! @{ */
+#define CAU3_PKA3_PKHA_A3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA3_PKHA_A3_SHIFT                  (0U)
+#define CAU3_PKA3_PKHA_A3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA3_PKHA_A3_SHIFT)) & CAU3_PKA3_PKHA_A3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA3 */
+#define CAU3_PKA3_COUNT                          (32U)
+
+/*! @name PKB0 - PKHA B0 Register */
+/*! @{ */
+#define CAU3_PKB0_PKHA_B0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB0_PKHA_B0_SHIFT                  (0U)
+#define CAU3_PKB0_PKHA_B0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB0_PKHA_B0_SHIFT)) & CAU3_PKB0_PKHA_B0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB0 */
+#define CAU3_PKB0_COUNT                          (32U)
+
+/*! @name PKB1 - PKHA B1 Register */
+/*! @{ */
+#define CAU3_PKB1_PKHA_B1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB1_PKHA_B1_SHIFT                  (0U)
+#define CAU3_PKB1_PKHA_B1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB1_PKHA_B1_SHIFT)) & CAU3_PKB1_PKHA_B1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB1 */
+#define CAU3_PKB1_COUNT                          (32U)
+
+/*! @name PKB2 - PKHA B2 Register */
+/*! @{ */
+#define CAU3_PKB2_PKHA_B2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB2_PKHA_B2_SHIFT                  (0U)
+#define CAU3_PKB2_PKHA_B2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB2_PKHA_B2_SHIFT)) & CAU3_PKB2_PKHA_B2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB2 */
+#define CAU3_PKB2_COUNT                          (32U)
+
+/*! @name PKB3 - PKHA B3 Register */
+/*! @{ */
+#define CAU3_PKB3_PKHA_B3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB3_PKHA_B3_SHIFT                  (0U)
+#define CAU3_PKB3_PKHA_B3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB3_PKHA_B3_SHIFT)) & CAU3_PKB3_PKHA_B3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB3 */
+#define CAU3_PKB3_COUNT                          (32U)
+
+/*! @name PKN0 - PKHA N0 Register */
+/*! @{ */
+#define CAU3_PKN0_PKHA_N0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN0_PKHA_N0_SHIFT                  (0U)
+#define CAU3_PKN0_PKHA_N0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN0_PKHA_N0_SHIFT)) & CAU3_PKN0_PKHA_N0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN0 */
+#define CAU3_PKN0_COUNT                          (32U)
+
+/*! @name PKN1 - PKHA N1 Register */
+/*! @{ */
+#define CAU3_PKN1_PKHA_N1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN1_PKHA_N1_SHIFT                  (0U)
+#define CAU3_PKN1_PKHA_N1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN1_PKHA_N1_SHIFT)) & CAU3_PKN1_PKHA_N1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN1 */
+#define CAU3_PKN1_COUNT                          (32U)
+
+/*! @name PKN2 - PKHA N2 Register */
+/*! @{ */
+#define CAU3_PKN2_PKHA_N2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN2_PKHA_N2_SHIFT                  (0U)
+#define CAU3_PKN2_PKHA_N2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN2_PKHA_N2_SHIFT)) & CAU3_PKN2_PKHA_N2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN2 */
+#define CAU3_PKN2_COUNT                          (32U)
+
+/*! @name PKN3 - PKHA N3 Register */
+/*! @{ */
+#define CAU3_PKN3_PKHA_N3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN3_PKHA_N3_SHIFT                  (0U)
+#define CAU3_PKN3_PKHA_N3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN3_PKHA_N3_SHIFT)) & CAU3_PKN3_PKHA_N3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN3 */
+#define CAU3_PKN3_COUNT                          (32U)
+
+/*! @name PKE - PKHA E Register */
+/*! @{ */
+#define CAU3_PKE_PKHA_E_MASK                     (0xFFFFFFFFU)
+#define CAU3_PKE_PKHA_E_SHIFT                    (0U)
+#define CAU3_PKE_PKHA_E(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_PKE_PKHA_E_SHIFT)) & CAU3_PKE_PKHA_E_MASK)
+/*! @} */
+
+/* The count of CAU3_PKE */
+#define CAU3_PKE_COUNT                           (128U)
+
+
+/*!
+ * @}
+ */ /* end of group CAU3_Register_Masks */
+
+
+/* CAU3 - Peripheral instance base addresses */
+/** Peripheral CAU3 base address */
+#define CAU3_BASE                                (0x41028000u)
+/** Peripheral CAU3 base pointer */
+#define CAU3                                     ((CAU3_Type *)CAU3_BASE)
+/** Array initializer of CAU3 peripheral base addresses */
+#define CAU3_BASE_ADDRS                          { CAU3_BASE }
+/** Array initializer of CAU3 peripheral base pointers */
+#define CAU3_BASE_PTRS                           { CAU3 }
+/** Interrupt vectors for the CAU3 peripheral type */
+#define CAU3_TASK_COMPLETE_IRQS                  { CAU3_Task_Complete_IRQn }
+#define CAU3_SECURITY_VIOLATION_IRQS             { CAU3_Security_Violation_IRQn }
+
+/*!
+ * @}
+ */ /* end of group CAU3_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- CRC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CRC_Peripheral_Access_Layer CRC Peripheral Access Layer
+ * @{
+ */
+
+/** CRC - Register Layout Typedef */
+typedef struct {
+  union {                                          /* offset: 0x0 */
+    __IO uint32_t DATA;                              /**< CRC Data register, offset: 0x0 */
+    struct {                                         /* offset: 0x0 */
+      __IO uint8_t DATALL;                             /**< CRC_DATALL register, offset: 0x0 */
+      __IO uint8_t DATALU;                             /**< CRC_DATALU register, offset: 0x1 */
+      __IO uint8_t DATAHL;                             /**< CRC_DATAHL register, offset: 0x2 */
+      __IO uint8_t DATAHU;                             /**< CRC_DATAHU register, offset: 0x3 */
+    } ACCESS8BIT;
+    struct {                                         /* offset: 0x0 */
+      __IO uint16_t DATAL;                             /**< CRC_DATAL register, offset: 0x0 */
+      __IO uint16_t DATAH;                             /**< CRC_DATAH register, offset: 0x2 */
+    } ACCESS16BIT;
+  };
+  union {                                          /* offset: 0x4 */
+    __IO uint32_t GPOLY;                             /**< CRC Polynomial register, offset: 0x4 */
+    struct {                                         /* offset: 0x4 */
+      __IO uint8_t GPOLYLL;                            /**< CRC_GPOLYLL register, offset: 0x4 */
+      __IO uint8_t GPOLYLU;                            /**< CRC_GPOLYLU register, offset: 0x5 */
+      __IO uint8_t GPOLYHL;                            /**< CRC_GPOLYHL register, offset: 0x6 */
+      __IO uint8_t GPOLYHU;                            /**< CRC_GPOLYHU register, offset: 0x7 */
+    } GPOLY_ACCESS8BIT;
+    struct {                                         /* offset: 0x4 */
+      __IO uint16_t GPOLYL;                            /**< CRC_GPOLYL register, offset: 0x4 */
+      __IO uint16_t GPOLYH;                            /**< CRC_GPOLYH register, offset: 0x6 */
+    } GPOLY_ACCESS16BIT;
+  };
+  union {                                          /* offset: 0x8 */
+    __IO uint32_t CTRL;                              /**< CRC Control register, offset: 0x8 */
+    struct {                                         /* offset: 0x8 */
+           uint8_t RESERVED_0[3];
+      __IO uint8_t CTRLHU;                             /**< CRC_CTRLHU register, offset: 0xB */
+    } CTRL_ACCESS8BIT;
+  };
+} CRC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- CRC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CRC_Register_Masks CRC Register Masks
+ * @{
+ */
+
+/*! @name DATA - CRC Data register */
+/*! @{ */
+#define CRC_DATA_LL_MASK                         (0xFFU)
+#define CRC_DATA_LL_SHIFT                        (0U)
+#define CRC_DATA_LL(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LL_SHIFT)) & CRC_DATA_LL_MASK)
+#define CRC_DATA_LU_MASK                         (0xFF00U)
+#define CRC_DATA_LU_SHIFT                        (8U)
+#define CRC_DATA_LU(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LU_SHIFT)) & CRC_DATA_LU_MASK)
+#define CRC_DATA_HL_MASK                         (0xFF0000U)
+#define CRC_DATA_HL_SHIFT                        (16U)
+#define CRC_DATA_HL(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HL_SHIFT)) & CRC_DATA_HL_MASK)
+#define CRC_DATA_HU_MASK                         (0xFF000000U)
+#define CRC_DATA_HU_SHIFT                        (24U)
+#define CRC_DATA_HU(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HU_SHIFT)) & CRC_DATA_HU_MASK)
+/*! @} */
+
+/*! @name DATALL - CRC_DATALL register */
+/*! @{ */
+#define CRC_DATALL_DATALL_MASK                   (0xFFU)
+#define CRC_DATALL_DATALL_SHIFT                  (0U)
+#define CRC_DATALL_DATALL(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATALL_DATALL_SHIFT)) & CRC_DATALL_DATALL_MASK)
+/*! @} */
+
+/*! @name DATALU - CRC_DATALU register */
+/*! @{ */
+#define CRC_DATALU_DATALU_MASK                   (0xFFU)
+#define CRC_DATALU_DATALU_SHIFT                  (0U)
+#define CRC_DATALU_DATALU(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATALU_DATALU_SHIFT)) & CRC_DATALU_DATALU_MASK)
+/*! @} */
+
+/*! @name DATAHL - CRC_DATAHL register */
+/*! @{ */
+#define CRC_DATAHL_DATAHL_MASK                   (0xFFU)
+#define CRC_DATAHL_DATAHL_SHIFT                  (0U)
+#define CRC_DATAHL_DATAHL(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATAHL_DATAHL_SHIFT)) & CRC_DATAHL_DATAHL_MASK)
+/*! @} */
+
+/*! @name DATAHU - CRC_DATAHU register */
+/*! @{ */
+#define CRC_DATAHU_DATAHU_MASK                   (0xFFU)
+#define CRC_DATAHU_DATAHU_SHIFT                  (0U)
+#define CRC_DATAHU_DATAHU(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATAHU_DATAHU_SHIFT)) & CRC_DATAHU_DATAHU_MASK)
+/*! @} */
+
+/*! @name DATAL - CRC_DATAL register */
+/*! @{ */
+#define CRC_DATAL_DATAL_MASK                     (0xFFFFU)
+#define CRC_DATAL_DATAL_SHIFT                    (0U)
+#define CRC_DATAL_DATAL(x)                       (((uint16_t)(((uint16_t)(x)) << CRC_DATAL_DATAL_SHIFT)) & CRC_DATAL_DATAL_MASK)
+/*! @} */
+
+/*! @name DATAH - CRC_DATAH register */
+/*! @{ */
+#define CRC_DATAH_DATAH_MASK                     (0xFFFFU)
+#define CRC_DATAH_DATAH_SHIFT                    (0U)
+#define CRC_DATAH_DATAH(x)                       (((uint16_t)(((uint16_t)(x)) << CRC_DATAH_DATAH_SHIFT)) & CRC_DATAH_DATAH_MASK)
+/*! @} */
+
+/*! @name GPOLY - CRC Polynomial register */
+/*! @{ */
+#define CRC_GPOLY_LOW_MASK                       (0xFFFFU)
+#define CRC_GPOLY_LOW_SHIFT                      (0U)
+#define CRC_GPOLY_LOW(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_LOW_SHIFT)) & CRC_GPOLY_LOW_MASK)
+#define CRC_GPOLY_HIGH_MASK                      (0xFFFF0000U)
+#define CRC_GPOLY_HIGH_SHIFT                     (16U)
+#define CRC_GPOLY_HIGH(x)                        (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_HIGH_SHIFT)) & CRC_GPOLY_HIGH_MASK)
+/*! @} */
+
+/*! @name GPOLYLL - CRC_GPOLYLL register */
+/*! @{ */
+#define CRC_GPOLYLL_GPOLYLL_MASK                 (0xFFU)
+#define CRC_GPOLYLL_GPOLYLL_SHIFT                (0U)
+#define CRC_GPOLYLL_GPOLYLL(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLL_GPOLYLL_SHIFT)) & CRC_GPOLYLL_GPOLYLL_MASK)
+/*! @} */
+
+/*! @name GPOLYLU - CRC_GPOLYLU register */
+/*! @{ */
+#define CRC_GPOLYLU_GPOLYLU_MASK                 (0xFFU)
+#define CRC_GPOLYLU_GPOLYLU_SHIFT                (0U)
+#define CRC_GPOLYLU_GPOLYLU(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLU_GPOLYLU_SHIFT)) & CRC_GPOLYLU_GPOLYLU_MASK)
+/*! @} */
+
+/*! @name GPOLYHL - CRC_GPOLYHL register */
+/*! @{ */
+#define CRC_GPOLYHL_GPOLYHL_MASK                 (0xFFU)
+#define CRC_GPOLYHL_GPOLYHL_SHIFT                (0U)
+#define CRC_GPOLYHL_GPOLYHL(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHL_GPOLYHL_SHIFT)) & CRC_GPOLYHL_GPOLYHL_MASK)
+/*! @} */
+
+/*! @name GPOLYHU - CRC_GPOLYHU register */
+/*! @{ */
+#define CRC_GPOLYHU_GPOLYHU_MASK                 (0xFFU)
+#define CRC_GPOLYHU_GPOLYHU_SHIFT                (0U)
+#define CRC_GPOLYHU_GPOLYHU(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHU_GPOLYHU_SHIFT)) & CRC_GPOLYHU_GPOLYHU_MASK)
+/*! @} */
+
+/*! @name GPOLYL - CRC_GPOLYL register */
+/*! @{ */
+#define CRC_GPOLYL_GPOLYL_MASK                   (0xFFFFU)
+#define CRC_GPOLYL_GPOLYL_SHIFT                  (0U)
+#define CRC_GPOLYL_GPOLYL(x)                     (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYL_GPOLYL_SHIFT)) & CRC_GPOLYL_GPOLYL_MASK)
+/*! @} */
+
+/*! @name GPOLYH - CRC_GPOLYH register */
+/*! @{ */
+#define CRC_GPOLYH_GPOLYH_MASK                   (0xFFFFU)
+#define CRC_GPOLYH_GPOLYH_SHIFT                  (0U)
+#define CRC_GPOLYH_GPOLYH(x)                     (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYH_GPOLYH_SHIFT)) & CRC_GPOLYH_GPOLYH_MASK)
+/*! @} */
+
+/*! @name CTRL - CRC Control register */
+/*! @{ */
+#define CRC_CTRL_TCRC_MASK                       (0x1000000U)
+#define CRC_CTRL_TCRC_SHIFT                      (24U)
+/*! TCRC - TCRC
+ *  0b0..16-bit CRC protocol.
+ *  0b1..32-bit CRC protocol.
+ */
+#define CRC_CTRL_TCRC(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TCRC_SHIFT)) & CRC_CTRL_TCRC_MASK)
+#define CRC_CTRL_WAS_MASK                        (0x2000000U)
+#define CRC_CTRL_WAS_SHIFT                       (25U)
+/*! WAS - Write CRC Data Register As Seed
+ *  0b0..Writes to the CRC data register are data values.
+ *  0b1..Writes to the CRC data register are seed values.
+ */
+#define CRC_CTRL_WAS(x)                          (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_WAS_SHIFT)) & CRC_CTRL_WAS_MASK)
+#define CRC_CTRL_FXOR_MASK                       (0x4000000U)
+#define CRC_CTRL_FXOR_SHIFT                      (26U)
+/*! FXOR - Complement Read Of CRC Data Register
+ *  0b0..No XOR on reading.
+ *  0b1..Invert or complement the read value of the CRC Data register.
+ */
+#define CRC_CTRL_FXOR(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_FXOR_SHIFT)) & CRC_CTRL_FXOR_MASK)
+#define CRC_CTRL_TOTR_MASK                       (0x30000000U)
+#define CRC_CTRL_TOTR_SHIFT                      (28U)
+/*! TOTR - Type Of Transpose For Read
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRL_TOTR(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOTR_SHIFT)) & CRC_CTRL_TOTR_MASK)
+#define CRC_CTRL_TOT_MASK                        (0xC0000000U)
+#define CRC_CTRL_TOT_SHIFT                       (30U)
+/*! TOT - Type Of Transpose For Writes
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRL_TOT(x)                          (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOT_SHIFT)) & CRC_CTRL_TOT_MASK)
+/*! @} */
+
+/*! @name CTRLHU - CRC_CTRLHU register */
+/*! @{ */
+#define CRC_CTRLHU_TCRC_MASK                     (0x1U)
+#define CRC_CTRLHU_TCRC_SHIFT                    (0U)
+/*! TCRC
+ *  0b0..16-bit CRC protocol.
+ *  0b1..32-bit CRC protocol.
+ */
+#define CRC_CTRLHU_TCRC(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TCRC_SHIFT)) & CRC_CTRLHU_TCRC_MASK)
+#define CRC_CTRLHU_WAS_MASK                      (0x2U)
+#define CRC_CTRLHU_WAS_SHIFT                     (1U)
+/*! WAS
+ *  0b0..Writes to the CRC data register are data values.
+ *  0b1..Writes to the CRC data register are seed values.
+ */
+#define CRC_CTRLHU_WAS(x)                        (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_WAS_SHIFT)) & CRC_CTRLHU_WAS_MASK)
+#define CRC_CTRLHU_FXOR_MASK                     (0x4U)
+#define CRC_CTRLHU_FXOR_SHIFT                    (2U)
+/*! FXOR
+ *  0b0..No XOR on reading.
+ *  0b1..Invert or complement the read value of the CRC Data register.
+ */
+#define CRC_CTRLHU_FXOR(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_FXOR_SHIFT)) & CRC_CTRLHU_FXOR_MASK)
+#define CRC_CTRLHU_TOTR_MASK                     (0x30U)
+#define CRC_CTRLHU_TOTR_SHIFT                    (4U)
+/*! TOTR
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRLHU_TOTR(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOTR_SHIFT)) & CRC_CTRLHU_TOTR_MASK)
+#define CRC_CTRLHU_TOT_MASK                      (0xC0U)
+#define CRC_CTRLHU_TOT_SHIFT                     (6U)
+/*! TOT
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRLHU_TOT(x)                        (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOT_SHIFT)) & CRC_CTRLHU_TOT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group CRC_Register_Masks */
+
+
+/* CRC - Peripheral instance base addresses */
+/** Peripheral CRC base address */
+#define CRC_BASE                                 (0x4002F000u)
+/** Peripheral CRC base pointer */
+#define CRC0                                     ((CRC_Type *)CRC_BASE)
+/** Array initializer of CRC peripheral base addresses */
+#define CRC_BASE_ADDRS                           { CRC_BASE }
+/** Array initializer of CRC peripheral base pointers */
+#define CRC_BASE_PTRS                            { CRC0 }
+
+/*!
+ * @}
+ */ /* end of group CRC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- DMA Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMA_Peripheral_Access_Layer DMA Peripheral Access Layer
+ * @{
+ */
+
+/** DMA - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x0 */
+  __I  uint32_t ES;                                /**< Error Status Register, offset: 0x4 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t ERQ;                               /**< Enable Request Register, offset: 0xC */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t EEI;                               /**< Enable Error Interrupt Register, offset: 0x14 */
+  __O  uint8_t CEEI;                               /**< Clear Enable Error Interrupt Register, offset: 0x18 */
+  __O  uint8_t SEEI;                               /**< Set Enable Error Interrupt Register, offset: 0x19 */
+  __O  uint8_t CERQ;                               /**< Clear Enable Request Register, offset: 0x1A */
+  __O  uint8_t SERQ;                               /**< Set Enable Request Register, offset: 0x1B */
+  __O  uint8_t CDNE;                               /**< Clear DONE Status Bit Register, offset: 0x1C */
+  __O  uint8_t SSRT;                               /**< Set START Bit Register, offset: 0x1D */
+  __O  uint8_t CERR;                               /**< Clear Error Register, offset: 0x1E */
+  __O  uint8_t CINT;                               /**< Clear Interrupt Request Register, offset: 0x1F */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t INT;                               /**< Interrupt Request Register, offset: 0x24 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t ERR;                               /**< Error Register, offset: 0x2C */
+       uint8_t RESERVED_4[4];
+  __I  uint32_t HRS;                               /**< Hardware Request Status Register, offset: 0x34 */
+       uint8_t RESERVED_5[12];
+  __IO uint32_t EARS;                              /**< Enable Asynchronous Request in Stop Register, offset: 0x44 */
+       uint8_t RESERVED_6[184];
+  __IO uint8_t DCHPRI3;                            /**< Channel Priority Register, offset: 0x100 */
+  __IO uint8_t DCHPRI2;                            /**< Channel Priority Register, offset: 0x101 */
+  __IO uint8_t DCHPRI1;                            /**< Channel Priority Register, offset: 0x102 */
+  __IO uint8_t DCHPRI0;                            /**< Channel Priority Register, offset: 0x103 */
+  __IO uint8_t DCHPRI7;                            /**< Channel Priority Register, offset: 0x104 */
+  __IO uint8_t DCHPRI6;                            /**< Channel Priority Register, offset: 0x105 */
+  __IO uint8_t DCHPRI5;                            /**< Channel Priority Register, offset: 0x106 */
+  __IO uint8_t DCHPRI4;                            /**< Channel Priority Register, offset: 0x107 */
+  __IO uint8_t DCHPRI11;                           /**< Channel Priority Register, offset: 0x108 */
+  __IO uint8_t DCHPRI10;                           /**< Channel Priority Register, offset: 0x109 */
+  __IO uint8_t DCHPRI9;                            /**< Channel Priority Register, offset: 0x10A */
+  __IO uint8_t DCHPRI8;                            /**< Channel Priority Register, offset: 0x10B */
+  __IO uint8_t DCHPRI15;                           /**< Channel Priority Register, offset: 0x10C */
+  __IO uint8_t DCHPRI14;                           /**< Channel Priority Register, offset: 0x10D */
+  __IO uint8_t DCHPRI13;                           /**< Channel Priority Register, offset: 0x10E */
+  __IO uint8_t DCHPRI12;                           /**< Channel Priority Register, offset: 0x10F */
+       uint8_t RESERVED_7[3824];
+  struct {                                         /* offset: 0x1000, array step: 0x20 */
+    __IO uint32_t SADDR;                             /**< TCD Source Address, array offset: 0x1000, array step: 0x20 */
+    __IO uint16_t SOFF;                              /**< TCD Signed Source Address Offset, array offset: 0x1004, array step: 0x20 */
+    __IO uint16_t ATTR;                              /**< TCD Transfer Attributes, array offset: 0x1006, array step: 0x20 */
+    union {                                          /* offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLNO;                       /**< TCD Minor Byte Count (Minor Loop Mapping Disabled), array offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLOFFNO;                    /**< TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled), array offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLOFFYES;                   /**< TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled), array offset: 0x1008, array step: 0x20 */
+    };
+    __IO uint32_t SLAST;                             /**< TCD Last Source Address Adjustment, array offset: 0x100C, array step: 0x20 */
+    __IO uint32_t DADDR;                             /**< TCD Destination Address, array offset: 0x1010, array step: 0x20 */
+    __IO uint16_t DOFF;                              /**< TCD Signed Destination Address Offset, array offset: 0x1014, array step: 0x20 */
+    union {                                          /* offset: 0x1016, array step: 0x20 */
+      __IO uint16_t CITER_ELINKNO;                     /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x1016, array step: 0x20 */
+      __IO uint16_t CITER_ELINKYES;                    /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x1016, array step: 0x20 */
+    };
+    __IO uint32_t DLAST_SGA;                         /**< TCD Last Destination Address Adjustment/Scatter Gather Address, array offset: 0x1018, array step: 0x20 */
+    __IO uint16_t CSR;                               /**< TCD Control and Status, array offset: 0x101C, array step: 0x20 */
+    union {                                          /* offset: 0x101E, array step: 0x20 */
+      __IO uint16_t BITER_ELINKNO;                     /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x101E, array step: 0x20 */
+      __IO uint16_t BITER_ELINKYES;                    /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x101E, array step: 0x20 */
+    };
+  } TCD[16];
+} DMA_Type;
+
+/* ----------------------------------------------------------------------------
+   -- DMA Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMA_Register_Masks DMA Register Masks
+ * @{
+ */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define DMA_CR_EDBG_MASK                         (0x2U)
+#define DMA_CR_EDBG_SHIFT                        (1U)
+/*! EDBG - Enable Debug
+ *  0b0..When in debug mode, the DMA continues to operate.
+ *  0b1..When in debug mode, the DMA stalls the start of a new channel. Executing channels are allowed to complete. Channel execution resumes when the system exits debug mode or the EDBG bit is cleared.
+ */
+#define DMA_CR_EDBG(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_EDBG_SHIFT)) & DMA_CR_EDBG_MASK)
+#define DMA_CR_ERCA_MASK                         (0x4U)
+#define DMA_CR_ERCA_SHIFT                        (2U)
+/*! ERCA - Enable Round Robin Channel Arbitration
+ *  0b0..Fixed priority arbitration is used for channel selection .
+ *  0b1..Round robin arbitration is used for channel selection .
+ */
+#define DMA_CR_ERCA(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_ERCA_SHIFT)) & DMA_CR_ERCA_MASK)
+#define DMA_CR_HOE_MASK                          (0x10U)
+#define DMA_CR_HOE_SHIFT                         (4U)
+/*! HOE - Halt On Error
+ *  0b0..Normal operation
+ *  0b1..Any error causes the HALT bit to set. Subsequently, all service requests are ignored until the HALT bit is cleared.
+ */
+#define DMA_CR_HOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_HOE_SHIFT)) & DMA_CR_HOE_MASK)
+#define DMA_CR_HALT_MASK                         (0x20U)
+#define DMA_CR_HALT_SHIFT                        (5U)
+/*! HALT - Halt DMA Operations
+ *  0b0..Normal operation
+ *  0b1..Stall the start of any new channels. Executing channels are allowed to complete. Channel execution resumes when this bit is cleared.
+ */
+#define DMA_CR_HALT(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_HALT_SHIFT)) & DMA_CR_HALT_MASK)
+#define DMA_CR_CLM_MASK                          (0x40U)
+#define DMA_CR_CLM_SHIFT                         (6U)
+/*! CLM - Continuous Link Mode
+ *  0b0..A minor loop channel link made to itself goes through channel arbitration before being activated again.
+ *  0b1..A minor loop channel link made to itself does not go through channel arbitration before being activated again. Upon minor loop completion, the channel activates again if that channel has a minor loop channel link enabled and the link channel is itself. This effectively applies the minor loop offsets and restarts the next minor loop.
+ */
+#define DMA_CR_CLM(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_CLM_SHIFT)) & DMA_CR_CLM_MASK)
+#define DMA_CR_EMLM_MASK                         (0x80U)
+#define DMA_CR_EMLM_SHIFT                        (7U)
+/*! EMLM - Enable Minor Loop Mapping
+ *  0b0..Disabled. TCDn.word2 is defined as a 32-bit NBYTES field.
+ *  0b1..Enabled. TCDn.word2 is redefined to include individual enable fields, an offset field, and the NBYTES field. The individual enable fields allow the minor loop offset to be applied to the source address, the destination address, or both. The NBYTES field is reduced when either offset is enabled.
+ */
+#define DMA_CR_EMLM(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_EMLM_SHIFT)) & DMA_CR_EMLM_MASK)
+#define DMA_CR_ECX_MASK                          (0x10000U)
+#define DMA_CR_ECX_SHIFT                         (16U)
+/*! ECX - Error Cancel Transfer
+ *  0b0..Normal operation
+ *  0b1..Cancel the remaining data transfer in the same fashion as the CX bit. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The ECX bit clears itself after the cancel is honored. In addition to cancelling the transfer, ECX treats the cancel as an error condition, thus updating the Error Status register (DMAx_ES) and generating an optional error interrupt.
+ */
+#define DMA_CR_ECX(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_ECX_SHIFT)) & DMA_CR_ECX_MASK)
+#define DMA_CR_CX_MASK                           (0x20000U)
+#define DMA_CR_CX_SHIFT                          (17U)
+/*! CX - Cancel Transfer
+ *  0b0..Normal operation
+ *  0b1..Cancel the remaining data transfer. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The CX bit clears itself after the cancel has been honored. This cancel retires the channel normally as if the minor loop was completed.
+ */
+#define DMA_CR_CX(x)                             (((uint32_t)(((uint32_t)(x)) << DMA_CR_CX_SHIFT)) & DMA_CR_CX_MASK)
+#define DMA_CR_ACTIVE_MASK                       (0x80000000U)
+#define DMA_CR_ACTIVE_SHIFT                      (31U)
+/*! ACTIVE - DMA Active Status
+ *  0b0..eDMA is idle.
+ *  0b1..eDMA is executing a channel.
+ */
+#define DMA_CR_ACTIVE(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_CR_ACTIVE_SHIFT)) & DMA_CR_ACTIVE_MASK)
+/*! @} */
+
+/*! @name ES - Error Status Register */
+/*! @{ */
+#define DMA_ES_DBE_MASK                          (0x1U)
+#define DMA_ES_DBE_SHIFT                         (0U)
+/*! DBE - Destination Bus Error
+ *  0b0..No destination bus error
+ *  0b1..The last recorded error was a bus error on a destination write
+ */
+#define DMA_ES_DBE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DBE_SHIFT)) & DMA_ES_DBE_MASK)
+#define DMA_ES_SBE_MASK                          (0x2U)
+#define DMA_ES_SBE_SHIFT                         (1U)
+/*! SBE - Source Bus Error
+ *  0b0..No source bus error
+ *  0b1..The last recorded error was a bus error on a source read
+ */
+#define DMA_ES_SBE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SBE_SHIFT)) & DMA_ES_SBE_MASK)
+#define DMA_ES_SGE_MASK                          (0x4U)
+#define DMA_ES_SGE_SHIFT                         (2U)
+/*! SGE - Scatter/Gather Configuration Error
+ *  0b0..No scatter/gather configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DLASTSGA field. This field is checked at the beginning of a scatter/gather operation after major loop completion if TCDn_CSR[ESG] is enabled. TCDn_DLASTSGA is not on a 32 byte boundary.
+ */
+#define DMA_ES_SGE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SGE_SHIFT)) & DMA_ES_SGE_MASK)
+#define DMA_ES_NCE_MASK                          (0x8U)
+#define DMA_ES_NCE_SHIFT                         (3U)
+/*! NCE - NBYTES/CITER Configuration Error
+ *  0b0..No NBYTES/CITER configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_NBYTES or TCDn_CITER fields. TCDn_NBYTES is not a multiple of TCDn_ATTR[SSIZE] and TCDn_ATTR[DSIZE], or TCDn_CITER[CITER] is equal to zero, or TCDn_CITER[ELINK] is not equal to TCDn_BITER[ELINK]
+ */
+#define DMA_ES_NCE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_NCE_SHIFT)) & DMA_ES_NCE_MASK)
+#define DMA_ES_DOE_MASK                          (0x10U)
+#define DMA_ES_DOE_SHIFT                         (4U)
+/*! DOE - Destination Offset Error
+ *  0b0..No destination offset configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DOFF field. TCDn_DOFF is inconsistent with TCDn_ATTR[DSIZE].
+ */
+#define DMA_ES_DOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DOE_SHIFT)) & DMA_ES_DOE_MASK)
+#define DMA_ES_DAE_MASK                          (0x20U)
+#define DMA_ES_DAE_SHIFT                         (5U)
+/*! DAE - Destination Address Error
+ *  0b0..No destination address configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DADDR field. TCDn_DADDR is inconsistent with TCDn_ATTR[DSIZE].
+ */
+#define DMA_ES_DAE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DAE_SHIFT)) & DMA_ES_DAE_MASK)
+#define DMA_ES_SOE_MASK                          (0x40U)
+#define DMA_ES_SOE_SHIFT                         (6U)
+/*! SOE - Source Offset Error
+ *  0b0..No source offset configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_SOFF field. TCDn_SOFF is inconsistent with TCDn_ATTR[SSIZE].
+ */
+#define DMA_ES_SOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SOE_SHIFT)) & DMA_ES_SOE_MASK)
+#define DMA_ES_SAE_MASK                          (0x80U)
+#define DMA_ES_SAE_SHIFT                         (7U)
+/*! SAE - Source Address Error
+ *  0b0..No source address configuration error.
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_SADDR field. TCDn_SADDR is inconsistent with TCDn_ATTR[SSIZE].
+ */
+#define DMA_ES_SAE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SAE_SHIFT)) & DMA_ES_SAE_MASK)
+#define DMA_ES_ERRCHN_MASK                       (0xF00U)
+#define DMA_ES_ERRCHN_SHIFT                      (8U)
+#define DMA_ES_ERRCHN(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ES_ERRCHN_SHIFT)) & DMA_ES_ERRCHN_MASK)
+#define DMA_ES_CPE_MASK                          (0x4000U)
+#define DMA_ES_CPE_SHIFT                         (14U)
+/*! CPE - Channel Priority Error
+ *  0b0..No channel priority error
+ *  0b1..The last recorded error was a configuration error in the channel priorities . Channel priorities are not unique.
+ */
+#define DMA_ES_CPE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_CPE_SHIFT)) & DMA_ES_CPE_MASK)
+#define DMA_ES_ECX_MASK                          (0x10000U)
+#define DMA_ES_ECX_SHIFT                         (16U)
+/*! ECX - Transfer Canceled
+ *  0b0..No canceled transfers
+ *  0b1..The last recorded entry was a canceled transfer by the error cancel transfer input
+ */
+#define DMA_ES_ECX(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_ECX_SHIFT)) & DMA_ES_ECX_MASK)
+#define DMA_ES_VLD_MASK                          (0x80000000U)
+#define DMA_ES_VLD_SHIFT                         (31U)
+/*! VLD - VLD
+ *  0b0..No ERR bits are set.
+ *  0b1..At least one ERR bit is set indicating a valid error exists that has not been cleared.
+ */
+#define DMA_ES_VLD(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_VLD_SHIFT)) & DMA_ES_VLD_MASK)
+/*! @} */
+
+/*! @name ERQ - Enable Request Register */
+/*! @{ */
+#define DMA_ERQ_ERQ0_MASK                        (0x1U)
+#define DMA_ERQ_ERQ0_SHIFT                       (0U)
+/*! ERQ0 - Enable DMA Request 0
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ0_SHIFT)) & DMA_ERQ_ERQ0_MASK)
+#define DMA_ERQ_ERQ1_MASK                        (0x2U)
+#define DMA_ERQ_ERQ1_SHIFT                       (1U)
+/*! ERQ1 - Enable DMA Request 1
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ1_SHIFT)) & DMA_ERQ_ERQ1_MASK)
+#define DMA_ERQ_ERQ2_MASK                        (0x4U)
+#define DMA_ERQ_ERQ2_SHIFT                       (2U)
+/*! ERQ2 - Enable DMA Request 2
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ2_SHIFT)) & DMA_ERQ_ERQ2_MASK)
+#define DMA_ERQ_ERQ3_MASK                        (0x8U)
+#define DMA_ERQ_ERQ3_SHIFT                       (3U)
+/*! ERQ3 - Enable DMA Request 3
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ3_SHIFT)) & DMA_ERQ_ERQ3_MASK)
+#define DMA_ERQ_ERQ4_MASK                        (0x10U)
+#define DMA_ERQ_ERQ4_SHIFT                       (4U)
+/*! ERQ4 - Enable DMA Request 4
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ4_SHIFT)) & DMA_ERQ_ERQ4_MASK)
+#define DMA_ERQ_ERQ5_MASK                        (0x20U)
+#define DMA_ERQ_ERQ5_SHIFT                       (5U)
+/*! ERQ5 - Enable DMA Request 5
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ5_SHIFT)) & DMA_ERQ_ERQ5_MASK)
+#define DMA_ERQ_ERQ6_MASK                        (0x40U)
+#define DMA_ERQ_ERQ6_SHIFT                       (6U)
+/*! ERQ6 - Enable DMA Request 6
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ6_SHIFT)) & DMA_ERQ_ERQ6_MASK)
+#define DMA_ERQ_ERQ7_MASK                        (0x80U)
+#define DMA_ERQ_ERQ7_SHIFT                       (7U)
+/*! ERQ7 - Enable DMA Request 7
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ7_SHIFT)) & DMA_ERQ_ERQ7_MASK)
+#define DMA_ERQ_ERQ8_MASK                        (0x100U)
+#define DMA_ERQ_ERQ8_SHIFT                       (8U)
+/*! ERQ8 - Enable DMA Request 8
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ8(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ8_SHIFT)) & DMA_ERQ_ERQ8_MASK)
+#define DMA_ERQ_ERQ9_MASK                        (0x200U)
+#define DMA_ERQ_ERQ9_SHIFT                       (9U)
+/*! ERQ9 - Enable DMA Request 9
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ9(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ9_SHIFT)) & DMA_ERQ_ERQ9_MASK)
+#define DMA_ERQ_ERQ10_MASK                       (0x400U)
+#define DMA_ERQ_ERQ10_SHIFT                      (10U)
+/*! ERQ10 - Enable DMA Request 10
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ10(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ10_SHIFT)) & DMA_ERQ_ERQ10_MASK)
+#define DMA_ERQ_ERQ11_MASK                       (0x800U)
+#define DMA_ERQ_ERQ11_SHIFT                      (11U)
+/*! ERQ11 - Enable DMA Request 11
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ11(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ11_SHIFT)) & DMA_ERQ_ERQ11_MASK)
+#define DMA_ERQ_ERQ12_MASK                       (0x1000U)
+#define DMA_ERQ_ERQ12_SHIFT                      (12U)
+/*! ERQ12 - Enable DMA Request 12
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ12(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ12_SHIFT)) & DMA_ERQ_ERQ12_MASK)
+#define DMA_ERQ_ERQ13_MASK                       (0x2000U)
+#define DMA_ERQ_ERQ13_SHIFT                      (13U)
+/*! ERQ13 - Enable DMA Request 13
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ13(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ13_SHIFT)) & DMA_ERQ_ERQ13_MASK)
+#define DMA_ERQ_ERQ14_MASK                       (0x4000U)
+#define DMA_ERQ_ERQ14_SHIFT                      (14U)
+/*! ERQ14 - Enable DMA Request 14
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ14(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ14_SHIFT)) & DMA_ERQ_ERQ14_MASK)
+#define DMA_ERQ_ERQ15_MASK                       (0x8000U)
+#define DMA_ERQ_ERQ15_SHIFT                      (15U)
+/*! ERQ15 - Enable DMA Request 15
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ15(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ15_SHIFT)) & DMA_ERQ_ERQ15_MASK)
+/*! @} */
+
+/*! @name EEI - Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_EEI_EEI0_MASK                        (0x1U)
+#define DMA_EEI_EEI0_SHIFT                       (0U)
+/*! EEI0 - Enable Error Interrupt 0
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI0_SHIFT)) & DMA_EEI_EEI0_MASK)
+#define DMA_EEI_EEI1_MASK                        (0x2U)
+#define DMA_EEI_EEI1_SHIFT                       (1U)
+/*! EEI1 - Enable Error Interrupt 1
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI1_SHIFT)) & DMA_EEI_EEI1_MASK)
+#define DMA_EEI_EEI2_MASK                        (0x4U)
+#define DMA_EEI_EEI2_SHIFT                       (2U)
+/*! EEI2 - Enable Error Interrupt 2
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI2_SHIFT)) & DMA_EEI_EEI2_MASK)
+#define DMA_EEI_EEI3_MASK                        (0x8U)
+#define DMA_EEI_EEI3_SHIFT                       (3U)
+/*! EEI3 - Enable Error Interrupt 3
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI3_SHIFT)) & DMA_EEI_EEI3_MASK)
+#define DMA_EEI_EEI4_MASK                        (0x10U)
+#define DMA_EEI_EEI4_SHIFT                       (4U)
+/*! EEI4 - Enable Error Interrupt 4
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI4_SHIFT)) & DMA_EEI_EEI4_MASK)
+#define DMA_EEI_EEI5_MASK                        (0x20U)
+#define DMA_EEI_EEI5_SHIFT                       (5U)
+/*! EEI5 - Enable Error Interrupt 5
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI5_SHIFT)) & DMA_EEI_EEI5_MASK)
+#define DMA_EEI_EEI6_MASK                        (0x40U)
+#define DMA_EEI_EEI6_SHIFT                       (6U)
+/*! EEI6 - Enable Error Interrupt 6
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI6_SHIFT)) & DMA_EEI_EEI6_MASK)
+#define DMA_EEI_EEI7_MASK                        (0x80U)
+#define DMA_EEI_EEI7_SHIFT                       (7U)
+/*! EEI7 - Enable Error Interrupt 7
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI7_SHIFT)) & DMA_EEI_EEI7_MASK)
+#define DMA_EEI_EEI8_MASK                        (0x100U)
+#define DMA_EEI_EEI8_SHIFT                       (8U)
+/*! EEI8 - Enable Error Interrupt 8
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI8(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI8_SHIFT)) & DMA_EEI_EEI8_MASK)
+#define DMA_EEI_EEI9_MASK                        (0x200U)
+#define DMA_EEI_EEI9_SHIFT                       (9U)
+/*! EEI9 - Enable Error Interrupt 9
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI9(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI9_SHIFT)) & DMA_EEI_EEI9_MASK)
+#define DMA_EEI_EEI10_MASK                       (0x400U)
+#define DMA_EEI_EEI10_SHIFT                      (10U)
+/*! EEI10 - Enable Error Interrupt 10
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI10(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI10_SHIFT)) & DMA_EEI_EEI10_MASK)
+#define DMA_EEI_EEI11_MASK                       (0x800U)
+#define DMA_EEI_EEI11_SHIFT                      (11U)
+/*! EEI11 - Enable Error Interrupt 11
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI11(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI11_SHIFT)) & DMA_EEI_EEI11_MASK)
+#define DMA_EEI_EEI12_MASK                       (0x1000U)
+#define DMA_EEI_EEI12_SHIFT                      (12U)
+/*! EEI12 - Enable Error Interrupt 12
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI12(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI12_SHIFT)) & DMA_EEI_EEI12_MASK)
+#define DMA_EEI_EEI13_MASK                       (0x2000U)
+#define DMA_EEI_EEI13_SHIFT                      (13U)
+/*! EEI13 - Enable Error Interrupt 13
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI13(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI13_SHIFT)) & DMA_EEI_EEI13_MASK)
+#define DMA_EEI_EEI14_MASK                       (0x4000U)
+#define DMA_EEI_EEI14_SHIFT                      (14U)
+/*! EEI14 - Enable Error Interrupt 14
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI14(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI14_SHIFT)) & DMA_EEI_EEI14_MASK)
+#define DMA_EEI_EEI15_MASK                       (0x8000U)
+#define DMA_EEI_EEI15_SHIFT                      (15U)
+/*! EEI15 - Enable Error Interrupt 15
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI15(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI15_SHIFT)) & DMA_EEI_EEI15_MASK)
+/*! @} */
+
+/*! @name CEEI - Clear Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_CEEI_CEEI_MASK                       (0xFU)
+#define DMA_CEEI_CEEI_SHIFT                      (0U)
+#define DMA_CEEI_CEEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CEEI_SHIFT)) & DMA_CEEI_CEEI_MASK)
+#define DMA_CEEI_CAEE_MASK                       (0x40U)
+#define DMA_CEEI_CAEE_SHIFT                      (6U)
+/*! CAEE - Clear All Enable Error Interrupts
+ *  0b0..Clear only the EEI bit specified in the CEEI field
+ *  0b1..Clear all bits in EEI
+ */
+#define DMA_CEEI_CAEE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CAEE_SHIFT)) & DMA_CEEI_CAEE_MASK)
+#define DMA_CEEI_NOP_MASK                        (0x80U)
+#define DMA_CEEI_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CEEI_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_NOP_SHIFT)) & DMA_CEEI_NOP_MASK)
+/*! @} */
+
+/*! @name SEEI - Set Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_SEEI_SEEI_MASK                       (0xFU)
+#define DMA_SEEI_SEEI_SHIFT                      (0U)
+#define DMA_SEEI_SEEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SEEI_SHIFT)) & DMA_SEEI_SEEI_MASK)
+#define DMA_SEEI_SAEE_MASK                       (0x40U)
+#define DMA_SEEI_SAEE_SHIFT                      (6U)
+/*! SAEE - Sets All Enable Error Interrupts
+ *  0b0..Set only the EEI bit specified in the SEEI field.
+ *  0b1..Sets all bits in EEI
+ */
+#define DMA_SEEI_SAEE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SAEE_SHIFT)) & DMA_SEEI_SAEE_MASK)
+#define DMA_SEEI_NOP_MASK                        (0x80U)
+#define DMA_SEEI_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SEEI_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_NOP_SHIFT)) & DMA_SEEI_NOP_MASK)
+/*! @} */
+
+/*! @name CERQ - Clear Enable Request Register */
+/*! @{ */
+#define DMA_CERQ_CERQ_MASK                       (0xFU)
+#define DMA_CERQ_CERQ_SHIFT                      (0U)
+#define DMA_CERQ_CERQ(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CERQ_SHIFT)) & DMA_CERQ_CERQ_MASK)
+#define DMA_CERQ_CAER_MASK                       (0x40U)
+#define DMA_CERQ_CAER_SHIFT                      (6U)
+/*! CAER - Clear All Enable Requests
+ *  0b0..Clear only the ERQ bit specified in the CERQ field
+ *  0b1..Clear all bits in ERQ
+ */
+#define DMA_CERQ_CAER(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CAER_SHIFT)) & DMA_CERQ_CAER_MASK)
+#define DMA_CERQ_NOP_MASK                        (0x80U)
+#define DMA_CERQ_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CERQ_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_NOP_SHIFT)) & DMA_CERQ_NOP_MASK)
+/*! @} */
+
+/*! @name SERQ - Set Enable Request Register */
+/*! @{ */
+#define DMA_SERQ_SERQ_MASK                       (0xFU)
+#define DMA_SERQ_SERQ_SHIFT                      (0U)
+#define DMA_SERQ_SERQ(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SERQ_SHIFT)) & DMA_SERQ_SERQ_MASK)
+#define DMA_SERQ_SAER_MASK                       (0x40U)
+#define DMA_SERQ_SAER_SHIFT                      (6U)
+/*! SAER - Set All Enable Requests
+ *  0b0..Set only the ERQ bit specified in the SERQ field
+ *  0b1..Set all bits in ERQ
+ */
+#define DMA_SERQ_SAER(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SAER_SHIFT)) & DMA_SERQ_SAER_MASK)
+#define DMA_SERQ_NOP_MASK                        (0x80U)
+#define DMA_SERQ_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SERQ_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_NOP_SHIFT)) & DMA_SERQ_NOP_MASK)
+/*! @} */
+
+/*! @name CDNE - Clear DONE Status Bit Register */
+/*! @{ */
+#define DMA_CDNE_CDNE_MASK                       (0xFU)
+#define DMA_CDNE_CDNE_SHIFT                      (0U)
+#define DMA_CDNE_CDNE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CDNE_SHIFT)) & DMA_CDNE_CDNE_MASK)
+#define DMA_CDNE_CADN_MASK                       (0x40U)
+#define DMA_CDNE_CADN_SHIFT                      (6U)
+/*! CADN - Clears All DONE Bits
+ *  0b0..Clears only the TCDn_CSR[DONE] bit specified in the CDNE field
+ *  0b1..Clears all bits in TCDn_CSR[DONE]
+ */
+#define DMA_CDNE_CADN(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CADN_SHIFT)) & DMA_CDNE_CADN_MASK)
+#define DMA_CDNE_NOP_MASK                        (0x80U)
+#define DMA_CDNE_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CDNE_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_NOP_SHIFT)) & DMA_CDNE_NOP_MASK)
+/*! @} */
+
+/*! @name SSRT - Set START Bit Register */
+/*! @{ */
+#define DMA_SSRT_SSRT_MASK                       (0xFU)
+#define DMA_SSRT_SSRT_SHIFT                      (0U)
+#define DMA_SSRT_SSRT(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SSRT_SHIFT)) & DMA_SSRT_SSRT_MASK)
+#define DMA_SSRT_SAST_MASK                       (0x40U)
+#define DMA_SSRT_SAST_SHIFT                      (6U)
+/*! SAST - Set All START Bits (activates all channels)
+ *  0b0..Set only the TCDn_CSR[START] bit specified in the SSRT field
+ *  0b1..Set all bits in TCDn_CSR[START]
+ */
+#define DMA_SSRT_SAST(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SAST_SHIFT)) & DMA_SSRT_SAST_MASK)
+#define DMA_SSRT_NOP_MASK                        (0x80U)
+#define DMA_SSRT_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SSRT_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_NOP_SHIFT)) & DMA_SSRT_NOP_MASK)
+/*! @} */
+
+/*! @name CERR - Clear Error Register */
+/*! @{ */
+#define DMA_CERR_CERR_MASK                       (0xFU)
+#define DMA_CERR_CERR_SHIFT                      (0U)
+#define DMA_CERR_CERR(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CERR_SHIFT)) & DMA_CERR_CERR_MASK)
+#define DMA_CERR_CAEI_MASK                       (0x40U)
+#define DMA_CERR_CAEI_SHIFT                      (6U)
+/*! CAEI - Clear All Error Indicators
+ *  0b0..Clear only the ERR bit specified in the CERR field
+ *  0b1..Clear all bits in ERR
+ */
+#define DMA_CERR_CAEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CAEI_SHIFT)) & DMA_CERR_CAEI_MASK)
+#define DMA_CERR_NOP_MASK                        (0x80U)
+#define DMA_CERR_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CERR_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CERR_NOP_SHIFT)) & DMA_CERR_NOP_MASK)
+/*! @} */
+
+/*! @name CINT - Clear Interrupt Request Register */
+/*! @{ */
+#define DMA_CINT_CINT_MASK                       (0xFU)
+#define DMA_CINT_CINT_SHIFT                      (0U)
+#define DMA_CINT_CINT(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CINT_SHIFT)) & DMA_CINT_CINT_MASK)
+#define DMA_CINT_CAIR_MASK                       (0x40U)
+#define DMA_CINT_CAIR_SHIFT                      (6U)
+/*! CAIR - Clear All Interrupt Requests
+ *  0b0..Clear only the INT bit specified in the CINT field
+ *  0b1..Clear all bits in INT
+ */
+#define DMA_CINT_CAIR(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CAIR_SHIFT)) & DMA_CINT_CAIR_MASK)
+#define DMA_CINT_NOP_MASK                        (0x80U)
+#define DMA_CINT_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CINT_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CINT_NOP_SHIFT)) & DMA_CINT_NOP_MASK)
+/*! @} */
+
+/*! @name INT - Interrupt Request Register */
+/*! @{ */
+#define DMA_INT_INT0_MASK                        (0x1U)
+#define DMA_INT_INT0_SHIFT                       (0U)
+/*! INT0 - Interrupt Request 0
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT0_SHIFT)) & DMA_INT_INT0_MASK)
+#define DMA_INT_INT1_MASK                        (0x2U)
+#define DMA_INT_INT1_SHIFT                       (1U)
+/*! INT1 - Interrupt Request 1
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT1_SHIFT)) & DMA_INT_INT1_MASK)
+#define DMA_INT_INT2_MASK                        (0x4U)
+#define DMA_INT_INT2_SHIFT                       (2U)
+/*! INT2 - Interrupt Request 2
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT2_SHIFT)) & DMA_INT_INT2_MASK)
+#define DMA_INT_INT3_MASK                        (0x8U)
+#define DMA_INT_INT3_SHIFT                       (3U)
+/*! INT3 - Interrupt Request 3
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT3_SHIFT)) & DMA_INT_INT3_MASK)
+#define DMA_INT_INT4_MASK                        (0x10U)
+#define DMA_INT_INT4_SHIFT                       (4U)
+/*! INT4 - Interrupt Request 4
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT4_SHIFT)) & DMA_INT_INT4_MASK)
+#define DMA_INT_INT5_MASK                        (0x20U)
+#define DMA_INT_INT5_SHIFT                       (5U)
+/*! INT5 - Interrupt Request 5
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT5_SHIFT)) & DMA_INT_INT5_MASK)
+#define DMA_INT_INT6_MASK                        (0x40U)
+#define DMA_INT_INT6_SHIFT                       (6U)
+/*! INT6 - Interrupt Request 6
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT6_SHIFT)) & DMA_INT_INT6_MASK)
+#define DMA_INT_INT7_MASK                        (0x80U)
+#define DMA_INT_INT7_SHIFT                       (7U)
+/*! INT7 - Interrupt Request 7
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT7_SHIFT)) & DMA_INT_INT7_MASK)
+#define DMA_INT_INT8_MASK                        (0x100U)
+#define DMA_INT_INT8_SHIFT                       (8U)
+/*! INT8 - Interrupt Request 8
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT8(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT8_SHIFT)) & DMA_INT_INT8_MASK)
+#define DMA_INT_INT9_MASK                        (0x200U)
+#define DMA_INT_INT9_SHIFT                       (9U)
+/*! INT9 - Interrupt Request 9
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT9(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT9_SHIFT)) & DMA_INT_INT9_MASK)
+#define DMA_INT_INT10_MASK                       (0x400U)
+#define DMA_INT_INT10_SHIFT                      (10U)
+/*! INT10 - Interrupt Request 10
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT10(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT10_SHIFT)) & DMA_INT_INT10_MASK)
+#define DMA_INT_INT11_MASK                       (0x800U)
+#define DMA_INT_INT11_SHIFT                      (11U)
+/*! INT11 - Interrupt Request 11
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT11(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT11_SHIFT)) & DMA_INT_INT11_MASK)
+#define DMA_INT_INT12_MASK                       (0x1000U)
+#define DMA_INT_INT12_SHIFT                      (12U)
+/*! INT12 - Interrupt Request 12
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT12(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT12_SHIFT)) & DMA_INT_INT12_MASK)
+#define DMA_INT_INT13_MASK                       (0x2000U)
+#define DMA_INT_INT13_SHIFT                      (13U)
+/*! INT13 - Interrupt Request 13
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT13(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT13_SHIFT)) & DMA_INT_INT13_MASK)
+#define DMA_INT_INT14_MASK                       (0x4000U)
+#define DMA_INT_INT14_SHIFT                      (14U)
+/*! INT14 - Interrupt Request 14
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT14(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT14_SHIFT)) & DMA_INT_INT14_MASK)
+#define DMA_INT_INT15_MASK                       (0x8000U)
+#define DMA_INT_INT15_SHIFT                      (15U)
+/*! INT15 - Interrupt Request 15
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT15(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT15_SHIFT)) & DMA_INT_INT15_MASK)
+/*! @} */
+
+/*! @name ERR - Error Register */
+/*! @{ */
+#define DMA_ERR_ERR0_MASK                        (0x1U)
+#define DMA_ERR_ERR0_SHIFT                       (0U)
+/*! ERR0 - Error In Channel 0
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR0_SHIFT)) & DMA_ERR_ERR0_MASK)
+#define DMA_ERR_ERR1_MASK                        (0x2U)
+#define DMA_ERR_ERR1_SHIFT                       (1U)
+/*! ERR1 - Error In Channel 1
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR1_SHIFT)) & DMA_ERR_ERR1_MASK)
+#define DMA_ERR_ERR2_MASK                        (0x4U)
+#define DMA_ERR_ERR2_SHIFT                       (2U)
+/*! ERR2 - Error In Channel 2
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR2_SHIFT)) & DMA_ERR_ERR2_MASK)
+#define DMA_ERR_ERR3_MASK                        (0x8U)
+#define DMA_ERR_ERR3_SHIFT                       (3U)
+/*! ERR3 - Error In Channel 3
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR3_SHIFT)) & DMA_ERR_ERR3_MASK)
+#define DMA_ERR_ERR4_MASK                        (0x10U)
+#define DMA_ERR_ERR4_SHIFT                       (4U)
+/*! ERR4 - Error In Channel 4
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR4_SHIFT)) & DMA_ERR_ERR4_MASK)
+#define DMA_ERR_ERR5_MASK                        (0x20U)
+#define DMA_ERR_ERR5_SHIFT                       (5U)
+/*! ERR5 - Error In Channel 5
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR5_SHIFT)) & DMA_ERR_ERR5_MASK)
+#define DMA_ERR_ERR6_MASK                        (0x40U)
+#define DMA_ERR_ERR6_SHIFT                       (6U)
+/*! ERR6 - Error In Channel 6
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR6_SHIFT)) & DMA_ERR_ERR6_MASK)
+#define DMA_ERR_ERR7_MASK                        (0x80U)
+#define DMA_ERR_ERR7_SHIFT                       (7U)
+/*! ERR7 - Error In Channel 7
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR7_SHIFT)) & DMA_ERR_ERR7_MASK)
+#define DMA_ERR_ERR8_MASK                        (0x100U)
+#define DMA_ERR_ERR8_SHIFT                       (8U)
+/*! ERR8 - Error In Channel 8
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR8(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR8_SHIFT)) & DMA_ERR_ERR8_MASK)
+#define DMA_ERR_ERR9_MASK                        (0x200U)
+#define DMA_ERR_ERR9_SHIFT                       (9U)
+/*! ERR9 - Error In Channel 9
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR9(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR9_SHIFT)) & DMA_ERR_ERR9_MASK)
+#define DMA_ERR_ERR10_MASK                       (0x400U)
+#define DMA_ERR_ERR10_SHIFT                      (10U)
+/*! ERR10 - Error In Channel 10
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR10(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR10_SHIFT)) & DMA_ERR_ERR10_MASK)
+#define DMA_ERR_ERR11_MASK                       (0x800U)
+#define DMA_ERR_ERR11_SHIFT                      (11U)
+/*! ERR11 - Error In Channel 11
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR11(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR11_SHIFT)) & DMA_ERR_ERR11_MASK)
+#define DMA_ERR_ERR12_MASK                       (0x1000U)
+#define DMA_ERR_ERR12_SHIFT                      (12U)
+/*! ERR12 - Error In Channel 12
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR12(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR12_SHIFT)) & DMA_ERR_ERR12_MASK)
+#define DMA_ERR_ERR13_MASK                       (0x2000U)
+#define DMA_ERR_ERR13_SHIFT                      (13U)
+/*! ERR13 - Error In Channel 13
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR13(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR13_SHIFT)) & DMA_ERR_ERR13_MASK)
+#define DMA_ERR_ERR14_MASK                       (0x4000U)
+#define DMA_ERR_ERR14_SHIFT                      (14U)
+/*! ERR14 - Error In Channel 14
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR14(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR14_SHIFT)) & DMA_ERR_ERR14_MASK)
+#define DMA_ERR_ERR15_MASK                       (0x8000U)
+#define DMA_ERR_ERR15_SHIFT                      (15U)
+/*! ERR15 - Error In Channel 15
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR15(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR15_SHIFT)) & DMA_ERR_ERR15_MASK)
+/*! @} */
+
+/*! @name HRS - Hardware Request Status Register */
+/*! @{ */
+#define DMA_HRS_HRS0_MASK                        (0x1U)
+#define DMA_HRS_HRS0_SHIFT                       (0U)
+/*! HRS0 - Hardware Request Status Channel 0
+ *  0b0..A hardware service request for channel 0 is not present
+ *  0b1..A hardware service request for channel 0 is present
+ */
+#define DMA_HRS_HRS0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS0_SHIFT)) & DMA_HRS_HRS0_MASK)
+#define DMA_HRS_HRS1_MASK                        (0x2U)
+#define DMA_HRS_HRS1_SHIFT                       (1U)
+/*! HRS1 - Hardware Request Status Channel 1
+ *  0b0..A hardware service request for channel 1 is not present
+ *  0b1..A hardware service request for channel 1 is present
+ */
+#define DMA_HRS_HRS1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS1_SHIFT)) & DMA_HRS_HRS1_MASK)
+#define DMA_HRS_HRS2_MASK                        (0x4U)
+#define DMA_HRS_HRS2_SHIFT                       (2U)
+/*! HRS2 - Hardware Request Status Channel 2
+ *  0b0..A hardware service request for channel 2 is not present
+ *  0b1..A hardware service request for channel 2 is present
+ */
+#define DMA_HRS_HRS2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS2_SHIFT)) & DMA_HRS_HRS2_MASK)
+#define DMA_HRS_HRS3_MASK                        (0x8U)
+#define DMA_HRS_HRS3_SHIFT                       (3U)
+/*! HRS3 - Hardware Request Status Channel 3
+ *  0b0..A hardware service request for channel 3 is not present
+ *  0b1..A hardware service request for channel 3 is present
+ */
+#define DMA_HRS_HRS3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS3_SHIFT)) & DMA_HRS_HRS3_MASK)
+#define DMA_HRS_HRS4_MASK                        (0x10U)
+#define DMA_HRS_HRS4_SHIFT                       (4U)
+/*! HRS4 - Hardware Request Status Channel 4
+ *  0b0..A hardware service request for channel 4 is not present
+ *  0b1..A hardware service request for channel 4 is present
+ */
+#define DMA_HRS_HRS4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS4_SHIFT)) & DMA_HRS_HRS4_MASK)
+#define DMA_HRS_HRS5_MASK                        (0x20U)
+#define DMA_HRS_HRS5_SHIFT                       (5U)
+/*! HRS5 - Hardware Request Status Channel 5
+ *  0b0..A hardware service request for channel 5 is not present
+ *  0b1..A hardware service request for channel 5 is present
+ */
+#define DMA_HRS_HRS5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS5_SHIFT)) & DMA_HRS_HRS5_MASK)
+#define DMA_HRS_HRS6_MASK                        (0x40U)
+#define DMA_HRS_HRS6_SHIFT                       (6U)
+/*! HRS6 - Hardware Request Status Channel 6
+ *  0b0..A hardware service request for channel 6 is not present
+ *  0b1..A hardware service request for channel 6 is present
+ */
+#define DMA_HRS_HRS6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS6_SHIFT)) & DMA_HRS_HRS6_MASK)
+#define DMA_HRS_HRS7_MASK                        (0x80U)
+#define DMA_HRS_HRS7_SHIFT                       (7U)
+/*! HRS7 - Hardware Request Status Channel 7
+ *  0b0..A hardware service request for channel 7 is not present
+ *  0b1..A hardware service request for channel 7 is present
+ */
+#define DMA_HRS_HRS7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS7_SHIFT)) & DMA_HRS_HRS7_MASK)
+#define DMA_HRS_HRS8_MASK                        (0x100U)
+#define DMA_HRS_HRS8_SHIFT                       (8U)
+/*! HRS8 - Hardware Request Status Channel 8
+ *  0b0..A hardware service request for channel 8 is not present
+ *  0b1..A hardware service request for channel 8 is present
+ */
+#define DMA_HRS_HRS8(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS8_SHIFT)) & DMA_HRS_HRS8_MASK)
+#define DMA_HRS_HRS9_MASK                        (0x200U)
+#define DMA_HRS_HRS9_SHIFT                       (9U)
+/*! HRS9 - Hardware Request Status Channel 9
+ *  0b0..A hardware service request for channel 9 is not present
+ *  0b1..A hardware service request for channel 9 is present
+ */
+#define DMA_HRS_HRS9(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS9_SHIFT)) & DMA_HRS_HRS9_MASK)
+#define DMA_HRS_HRS10_MASK                       (0x400U)
+#define DMA_HRS_HRS10_SHIFT                      (10U)
+/*! HRS10 - Hardware Request Status Channel 10
+ *  0b0..A hardware service request for channel 10 is not present
+ *  0b1..A hardware service request for channel 10 is present
+ */
+#define DMA_HRS_HRS10(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS10_SHIFT)) & DMA_HRS_HRS10_MASK)
+#define DMA_HRS_HRS11_MASK                       (0x800U)
+#define DMA_HRS_HRS11_SHIFT                      (11U)
+/*! HRS11 - Hardware Request Status Channel 11
+ *  0b0..A hardware service request for channel 11 is not present
+ *  0b1..A hardware service request for channel 11 is present
+ */
+#define DMA_HRS_HRS11(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS11_SHIFT)) & DMA_HRS_HRS11_MASK)
+#define DMA_HRS_HRS12_MASK                       (0x1000U)
+#define DMA_HRS_HRS12_SHIFT                      (12U)
+/*! HRS12 - Hardware Request Status Channel 12
+ *  0b0..A hardware service request for channel 12 is not present
+ *  0b1..A hardware service request for channel 12 is present
+ */
+#define DMA_HRS_HRS12(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS12_SHIFT)) & DMA_HRS_HRS12_MASK)
+#define DMA_HRS_HRS13_MASK                       (0x2000U)
+#define DMA_HRS_HRS13_SHIFT                      (13U)
+/*! HRS13 - Hardware Request Status Channel 13
+ *  0b0..A hardware service request for channel 13 is not present
+ *  0b1..A hardware service request for channel 13 is present
+ */
+#define DMA_HRS_HRS13(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS13_SHIFT)) & DMA_HRS_HRS13_MASK)
+#define DMA_HRS_HRS14_MASK                       (0x4000U)
+#define DMA_HRS_HRS14_SHIFT                      (14U)
+/*! HRS14 - Hardware Request Status Channel 14
+ *  0b0..A hardware service request for channel 14 is not present
+ *  0b1..A hardware service request for channel 14 is present
+ */
+#define DMA_HRS_HRS14(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS14_SHIFT)) & DMA_HRS_HRS14_MASK)
+#define DMA_HRS_HRS15_MASK                       (0x8000U)
+#define DMA_HRS_HRS15_SHIFT                      (15U)
+/*! HRS15 - Hardware Request Status Channel 15
+ *  0b0..A hardware service request for channel 15 is not present
+ *  0b1..A hardware service request for channel 15 is present
+ */
+#define DMA_HRS_HRS15(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS15_SHIFT)) & DMA_HRS_HRS15_MASK)
+/*! @} */
+
+/*! @name EARS - Enable Asynchronous Request in Stop Register */
+/*! @{ */
+#define DMA_EARS_EDREQ_0_MASK                    (0x1U)
+#define DMA_EARS_EDREQ_0_SHIFT                   (0U)
+/*! EDREQ_0 - Enable asynchronous DMA request in stop mode for channel 0.
+ *  0b0..Disable asynchronous DMA request for channel 0.
+ *  0b1..Enable asynchronous DMA request for channel 0.
+ */
+#define DMA_EARS_EDREQ_0(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_0_SHIFT)) & DMA_EARS_EDREQ_0_MASK)
+#define DMA_EARS_EDREQ_1_MASK                    (0x2U)
+#define DMA_EARS_EDREQ_1_SHIFT                   (1U)
+/*! EDREQ_1 - Enable asynchronous DMA request in stop mode for channel 1.
+ *  0b0..Disable asynchronous DMA request for channel 1
+ *  0b1..Enable asynchronous DMA request for channel 1.
+ */
+#define DMA_EARS_EDREQ_1(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_1_SHIFT)) & DMA_EARS_EDREQ_1_MASK)
+#define DMA_EARS_EDREQ_2_MASK                    (0x4U)
+#define DMA_EARS_EDREQ_2_SHIFT                   (2U)
+/*! EDREQ_2 - Enable asynchronous DMA request in stop mode for channel 2.
+ *  0b0..Disable asynchronous DMA request for channel 2.
+ *  0b1..Enable asynchronous DMA request for channel 2.
+ */
+#define DMA_EARS_EDREQ_2(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_2_SHIFT)) & DMA_EARS_EDREQ_2_MASK)
+#define DMA_EARS_EDREQ_3_MASK                    (0x8U)
+#define DMA_EARS_EDREQ_3_SHIFT                   (3U)
+/*! EDREQ_3 - Enable asynchronous DMA request in stop mode for channel 3.
+ *  0b0..Disable asynchronous DMA request for channel 3.
+ *  0b1..Enable asynchronous DMA request for channel 3.
+ */
+#define DMA_EARS_EDREQ_3(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_3_SHIFT)) & DMA_EARS_EDREQ_3_MASK)
+#define DMA_EARS_EDREQ_4_MASK                    (0x10U)
+#define DMA_EARS_EDREQ_4_SHIFT                   (4U)
+/*! EDREQ_4 - Enable asynchronous DMA request in stop mode for channel 4
+ *  0b0..Disable asynchronous DMA request for channel 4.
+ *  0b1..Enable asynchronous DMA request for channel 4.
+ */
+#define DMA_EARS_EDREQ_4(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_4_SHIFT)) & DMA_EARS_EDREQ_4_MASK)
+#define DMA_EARS_EDREQ_5_MASK                    (0x20U)
+#define DMA_EARS_EDREQ_5_SHIFT                   (5U)
+/*! EDREQ_5 - Enable asynchronous DMA request in stop mode for channel 5
+ *  0b0..Disable asynchronous DMA request for channel 5.
+ *  0b1..Enable asynchronous DMA request for channel 5.
+ */
+#define DMA_EARS_EDREQ_5(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_5_SHIFT)) & DMA_EARS_EDREQ_5_MASK)
+#define DMA_EARS_EDREQ_6_MASK                    (0x40U)
+#define DMA_EARS_EDREQ_6_SHIFT                   (6U)
+/*! EDREQ_6 - Enable asynchronous DMA request in stop mode for channel 6
+ *  0b0..Disable asynchronous DMA request for channel 6.
+ *  0b1..Enable asynchronous DMA request for channel 6.
+ */
+#define DMA_EARS_EDREQ_6(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_6_SHIFT)) & DMA_EARS_EDREQ_6_MASK)
+#define DMA_EARS_EDREQ_7_MASK                    (0x80U)
+#define DMA_EARS_EDREQ_7_SHIFT                   (7U)
+/*! EDREQ_7 - Enable asynchronous DMA request in stop mode for channel 7
+ *  0b0..Disable asynchronous DMA request for channel 7.
+ *  0b1..Enable asynchronous DMA request for channel 7.
+ */
+#define DMA_EARS_EDREQ_7(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_7_SHIFT)) & DMA_EARS_EDREQ_7_MASK)
+#define DMA_EARS_EDREQ_8_MASK                    (0x100U)
+#define DMA_EARS_EDREQ_8_SHIFT                   (8U)
+/*! EDREQ_8 - Enable asynchronous DMA request in stop mode for channel 8
+ *  0b0..Disable asynchronous DMA request for channel 8.
+ *  0b1..Enable asynchronous DMA request for channel 8.
+ */
+#define DMA_EARS_EDREQ_8(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_8_SHIFT)) & DMA_EARS_EDREQ_8_MASK)
+#define DMA_EARS_EDREQ_9_MASK                    (0x200U)
+#define DMA_EARS_EDREQ_9_SHIFT                   (9U)
+/*! EDREQ_9 - Enable asynchronous DMA request in stop mode for channel 9
+ *  0b0..Disable asynchronous DMA request for channel 9.
+ *  0b1..Enable asynchronous DMA request for channel 9.
+ */
+#define DMA_EARS_EDREQ_9(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_9_SHIFT)) & DMA_EARS_EDREQ_9_MASK)
+#define DMA_EARS_EDREQ_10_MASK                   (0x400U)
+#define DMA_EARS_EDREQ_10_SHIFT                  (10U)
+/*! EDREQ_10 - Enable asynchronous DMA request in stop mode for channel 10
+ *  0b0..Disable asynchronous DMA request for channel 10.
+ *  0b1..Enable asynchronous DMA request for channel 10.
+ */
+#define DMA_EARS_EDREQ_10(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_10_SHIFT)) & DMA_EARS_EDREQ_10_MASK)
+#define DMA_EARS_EDREQ_11_MASK                   (0x800U)
+#define DMA_EARS_EDREQ_11_SHIFT                  (11U)
+/*! EDREQ_11 - Enable asynchronous DMA request in stop mode for channel 11
+ *  0b0..Disable asynchronous DMA request for channel 11.
+ *  0b1..Enable asynchronous DMA request for channel 11.
+ */
+#define DMA_EARS_EDREQ_11(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_11_SHIFT)) & DMA_EARS_EDREQ_11_MASK)
+#define DMA_EARS_EDREQ_12_MASK                   (0x1000U)
+#define DMA_EARS_EDREQ_12_SHIFT                  (12U)
+/*! EDREQ_12 - Enable asynchronous DMA request in stop mode for channel 12
+ *  0b0..Disable asynchronous DMA request for channel 12.
+ *  0b1..Enable asynchronous DMA request for channel 12.
+ */
+#define DMA_EARS_EDREQ_12(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_12_SHIFT)) & DMA_EARS_EDREQ_12_MASK)
+#define DMA_EARS_EDREQ_13_MASK                   (0x2000U)
+#define DMA_EARS_EDREQ_13_SHIFT                  (13U)
+/*! EDREQ_13 - Enable asynchronous DMA request in stop mode for channel 13
+ *  0b0..Disable asynchronous DMA request for channel 13.
+ *  0b1..Enable asynchronous DMA request for channel 13.
+ */
+#define DMA_EARS_EDREQ_13(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_13_SHIFT)) & DMA_EARS_EDREQ_13_MASK)
+#define DMA_EARS_EDREQ_14_MASK                   (0x4000U)
+#define DMA_EARS_EDREQ_14_SHIFT                  (14U)
+/*! EDREQ_14 - Enable asynchronous DMA request in stop mode for channel 14
+ *  0b0..Disable asynchronous DMA request for channel 14.
+ *  0b1..Enable asynchronous DMA request for channel 14.
+ */
+#define DMA_EARS_EDREQ_14(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_14_SHIFT)) & DMA_EARS_EDREQ_14_MASK)
+#define DMA_EARS_EDREQ_15_MASK                   (0x8000U)
+#define DMA_EARS_EDREQ_15_SHIFT                  (15U)
+/*! EDREQ_15 - Enable asynchronous DMA request in stop mode for channel 15
+ *  0b0..Disable asynchronous DMA request for channel 15.
+ *  0b1..Enable asynchronous DMA request for channel 15.
+ */
+#define DMA_EARS_EDREQ_15(x)                     (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_15_SHIFT)) & DMA_EARS_EDREQ_15_MASK)
+/*! @} */
+
+/*! @name DCHPRI3 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI3_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI3_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI3_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_CHPRI_SHIFT)) & DMA_DCHPRI3_CHPRI_MASK)
+#define DMA_DCHPRI3_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI3_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI3_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_DPA_SHIFT)) & DMA_DCHPRI3_DPA_MASK)
+#define DMA_DCHPRI3_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI3_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI3_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_ECP_SHIFT)) & DMA_DCHPRI3_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI2 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI2_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI2_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI2_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_CHPRI_SHIFT)) & DMA_DCHPRI2_CHPRI_MASK)
+#define DMA_DCHPRI2_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI2_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI2_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_DPA_SHIFT)) & DMA_DCHPRI2_DPA_MASK)
+#define DMA_DCHPRI2_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI2_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI2_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_ECP_SHIFT)) & DMA_DCHPRI2_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI1 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI1_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI1_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI1_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_CHPRI_SHIFT)) & DMA_DCHPRI1_CHPRI_MASK)
+#define DMA_DCHPRI1_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI1_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI1_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_DPA_SHIFT)) & DMA_DCHPRI1_DPA_MASK)
+#define DMA_DCHPRI1_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI1_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI1_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_ECP_SHIFT)) & DMA_DCHPRI1_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI0 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI0_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI0_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI0_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_CHPRI_SHIFT)) & DMA_DCHPRI0_CHPRI_MASK)
+#define DMA_DCHPRI0_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI0_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI0_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_DPA_SHIFT)) & DMA_DCHPRI0_DPA_MASK)
+#define DMA_DCHPRI0_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI0_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI0_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_ECP_SHIFT)) & DMA_DCHPRI0_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI7 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI7_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI7_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI7_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_CHPRI_SHIFT)) & DMA_DCHPRI7_CHPRI_MASK)
+#define DMA_DCHPRI7_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI7_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI7_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_DPA_SHIFT)) & DMA_DCHPRI7_DPA_MASK)
+#define DMA_DCHPRI7_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI7_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI7_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_ECP_SHIFT)) & DMA_DCHPRI7_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI6 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI6_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI6_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI6_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_CHPRI_SHIFT)) & DMA_DCHPRI6_CHPRI_MASK)
+#define DMA_DCHPRI6_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI6_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI6_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_DPA_SHIFT)) & DMA_DCHPRI6_DPA_MASK)
+#define DMA_DCHPRI6_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI6_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI6_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_ECP_SHIFT)) & DMA_DCHPRI6_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI5 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI5_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI5_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI5_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_CHPRI_SHIFT)) & DMA_DCHPRI5_CHPRI_MASK)
+#define DMA_DCHPRI5_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI5_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI5_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_DPA_SHIFT)) & DMA_DCHPRI5_DPA_MASK)
+#define DMA_DCHPRI5_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI5_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI5_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_ECP_SHIFT)) & DMA_DCHPRI5_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI4 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI4_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI4_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI4_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_CHPRI_SHIFT)) & DMA_DCHPRI4_CHPRI_MASK)
+#define DMA_DCHPRI4_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI4_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI4_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_DPA_SHIFT)) & DMA_DCHPRI4_DPA_MASK)
+#define DMA_DCHPRI4_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI4_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI4_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_ECP_SHIFT)) & DMA_DCHPRI4_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI11 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI11_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI11_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI11_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_CHPRI_SHIFT)) & DMA_DCHPRI11_CHPRI_MASK)
+#define DMA_DCHPRI11_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI11_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI11_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_DPA_SHIFT)) & DMA_DCHPRI11_DPA_MASK)
+#define DMA_DCHPRI11_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI11_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI11_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI11_ECP_SHIFT)) & DMA_DCHPRI11_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI10 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI10_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI10_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI10_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_CHPRI_SHIFT)) & DMA_DCHPRI10_CHPRI_MASK)
+#define DMA_DCHPRI10_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI10_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI10_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_DPA_SHIFT)) & DMA_DCHPRI10_DPA_MASK)
+#define DMA_DCHPRI10_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI10_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI10_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI10_ECP_SHIFT)) & DMA_DCHPRI10_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI9 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI9_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI9_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI9_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_CHPRI_SHIFT)) & DMA_DCHPRI9_CHPRI_MASK)
+#define DMA_DCHPRI9_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI9_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI9_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_DPA_SHIFT)) & DMA_DCHPRI9_DPA_MASK)
+#define DMA_DCHPRI9_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI9_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI9_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI9_ECP_SHIFT)) & DMA_DCHPRI9_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI8 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI8_CHPRI_MASK                   (0xFU)
+#define DMA_DCHPRI8_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI8_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_CHPRI_SHIFT)) & DMA_DCHPRI8_CHPRI_MASK)
+#define DMA_DCHPRI8_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI8_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI8_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_DPA_SHIFT)) & DMA_DCHPRI8_DPA_MASK)
+#define DMA_DCHPRI8_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI8_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI8_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI8_ECP_SHIFT)) & DMA_DCHPRI8_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI15 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI15_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI15_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI15_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_CHPRI_SHIFT)) & DMA_DCHPRI15_CHPRI_MASK)
+#define DMA_DCHPRI15_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI15_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI15_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_DPA_SHIFT)) & DMA_DCHPRI15_DPA_MASK)
+#define DMA_DCHPRI15_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI15_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI15_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI15_ECP_SHIFT)) & DMA_DCHPRI15_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI14 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI14_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI14_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI14_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_CHPRI_SHIFT)) & DMA_DCHPRI14_CHPRI_MASK)
+#define DMA_DCHPRI14_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI14_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI14_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_DPA_SHIFT)) & DMA_DCHPRI14_DPA_MASK)
+#define DMA_DCHPRI14_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI14_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI14_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI14_ECP_SHIFT)) & DMA_DCHPRI14_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI13 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI13_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI13_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI13_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_CHPRI_SHIFT)) & DMA_DCHPRI13_CHPRI_MASK)
+#define DMA_DCHPRI13_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI13_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI13_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_DPA_SHIFT)) & DMA_DCHPRI13_DPA_MASK)
+#define DMA_DCHPRI13_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI13_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI13_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI13_ECP_SHIFT)) & DMA_DCHPRI13_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI12 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI12_CHPRI_MASK                  (0xFU)
+#define DMA_DCHPRI12_CHPRI_SHIFT                 (0U)
+#define DMA_DCHPRI12_CHPRI(x)                    (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_CHPRI_SHIFT)) & DMA_DCHPRI12_CHPRI_MASK)
+#define DMA_DCHPRI12_DPA_MASK                    (0x40U)
+#define DMA_DCHPRI12_DPA_SHIFT                   (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI12_DPA(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_DPA_SHIFT)) & DMA_DCHPRI12_DPA_MASK)
+#define DMA_DCHPRI12_ECP_MASK                    (0x80U)
+#define DMA_DCHPRI12_ECP_SHIFT                   (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI12_ECP(x)                      (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI12_ECP_SHIFT)) & DMA_DCHPRI12_ECP_MASK)
+/*! @} */
+
+/*! @name SADDR - TCD Source Address */
+/*! @{ */
+#define DMA_SADDR_SADDR_MASK                     (0xFFFFFFFFU)
+#define DMA_SADDR_SADDR_SHIFT                    (0U)
+#define DMA_SADDR_SADDR(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_SADDR_SADDR_SHIFT)) & DMA_SADDR_SADDR_MASK)
+/*! @} */
+
+/* The count of DMA_SADDR */
+#define DMA_SADDR_COUNT                          (16U)
+
+/*! @name SOFF - TCD Signed Source Address Offset */
+/*! @{ */
+#define DMA_SOFF_SOFF_MASK                       (0xFFFFU)
+#define DMA_SOFF_SOFF_SHIFT                      (0U)
+#define DMA_SOFF_SOFF(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_SOFF_SOFF_SHIFT)) & DMA_SOFF_SOFF_MASK)
+/*! @} */
+
+/* The count of DMA_SOFF */
+#define DMA_SOFF_COUNT                           (16U)
+
+/*! @name ATTR - TCD Transfer Attributes */
+/*! @{ */
+#define DMA_ATTR_DSIZE_MASK                      (0x7U)
+#define DMA_ATTR_DSIZE_SHIFT                     (0U)
+#define DMA_ATTR_DSIZE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DSIZE_SHIFT)) & DMA_ATTR_DSIZE_MASK)
+#define DMA_ATTR_DMOD_MASK                       (0xF8U)
+#define DMA_ATTR_DMOD_SHIFT                      (3U)
+#define DMA_ATTR_DMOD(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DMOD_SHIFT)) & DMA_ATTR_DMOD_MASK)
+#define DMA_ATTR_SSIZE_MASK                      (0x700U)
+#define DMA_ATTR_SSIZE_SHIFT                     (8U)
+/*! SSIZE - Source data transfer size
+ *  0b000..8-bit
+ *  0b001..16-bit
+ *  0b010..32-bit
+ *  0b011..Reserved
+ *  0b100..16-byte burst
+ *  0b101..32-byte burst
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define DMA_ATTR_SSIZE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SSIZE_SHIFT)) & DMA_ATTR_SSIZE_MASK)
+#define DMA_ATTR_SMOD_MASK                       (0xF800U)
+#define DMA_ATTR_SMOD_SHIFT                      (11U)
+/*! SMOD - Source Address Modulo
+ *  0b00000..Source address modulo feature is disabled
+ *  0b00001-0b11111..This value defines a specific address range specified to be the value after SADDR + SOFF calculation is performed on the original register value. Setting this field provides the ability to implement a circular data queue easily. For data queues requiring power-of-2 size bytes, the queue should start at a 0-modulo-size address and the SMOD field should be set to the appropriate value for the queue, freezing the desired number of upper address bits. The value programmed into this field specifies the number of lower address bits allowed to change. For a circular queue application, the SOFF is typically set to the transfer size to implement post-increment addressing with the SMOD function constraining the addresses to a 0-modulo-size range.
+ */
+#define DMA_ATTR_SMOD(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SMOD_SHIFT)) & DMA_ATTR_SMOD_MASK)
+/*! @} */
+
+/* The count of DMA_ATTR */
+#define DMA_ATTR_COUNT                           (16U)
+
+/*! @name NBYTES_MLNO - TCD Minor Byte Count (Minor Loop Mapping Disabled) */
+/*! @{ */
+#define DMA_NBYTES_MLNO_NBYTES_MASK              (0xFFFFFFFFU)
+#define DMA_NBYTES_MLNO_NBYTES_SHIFT             (0U)
+#define DMA_NBYTES_MLNO_NBYTES(x)                (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLNO_NBYTES_SHIFT)) & DMA_NBYTES_MLNO_NBYTES_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLNO */
+#define DMA_NBYTES_MLNO_COUNT                    (16U)
+
+/*! @name NBYTES_MLOFFNO - TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled) */
+/*! @{ */
+#define DMA_NBYTES_MLOFFNO_NBYTES_MASK           (0x3FFFFFFFU)
+#define DMA_NBYTES_MLOFFNO_NBYTES_SHIFT          (0U)
+#define DMA_NBYTES_MLOFFNO_NBYTES(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFNO_NBYTES_MASK)
+#define DMA_NBYTES_MLOFFNO_DMLOE_MASK            (0x40000000U)
+#define DMA_NBYTES_MLOFFNO_DMLOE_SHIFT           (30U)
+/*! DMLOE - Destination Minor Loop Offset enable
+ *  0b0..The minor loop offset is not applied to the DADDR
+ *  0b1..The minor loop offset is applied to the DADDR
+ */
+#define DMA_NBYTES_MLOFFNO_DMLOE(x)              (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_DMLOE_MASK)
+#define DMA_NBYTES_MLOFFNO_SMLOE_MASK            (0x80000000U)
+#define DMA_NBYTES_MLOFFNO_SMLOE_SHIFT           (31U)
+/*! SMLOE - Source Minor Loop Offset Enable
+ *  0b0..The minor loop offset is not applied to the SADDR
+ *  0b1..The minor loop offset is applied to the SADDR
+ */
+#define DMA_NBYTES_MLOFFNO_SMLOE(x)              (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_SMLOE_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLOFFNO */
+#define DMA_NBYTES_MLOFFNO_COUNT                 (16U)
+
+/*! @name NBYTES_MLOFFYES - TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled) */
+/*! @{ */
+#define DMA_NBYTES_MLOFFYES_NBYTES_MASK          (0x3FFU)
+#define DMA_NBYTES_MLOFFYES_NBYTES_SHIFT         (0U)
+#define DMA_NBYTES_MLOFFYES_NBYTES(x)            (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFYES_NBYTES_MASK)
+#define DMA_NBYTES_MLOFFYES_MLOFF_MASK           (0x3FFFFC00U)
+#define DMA_NBYTES_MLOFFYES_MLOFF_SHIFT          (10U)
+#define DMA_NBYTES_MLOFFYES_MLOFF(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_MLOFF_SHIFT)) & DMA_NBYTES_MLOFFYES_MLOFF_MASK)
+#define DMA_NBYTES_MLOFFYES_DMLOE_MASK           (0x40000000U)
+#define DMA_NBYTES_MLOFFYES_DMLOE_SHIFT          (30U)
+/*! DMLOE - Destination Minor Loop Offset enable
+ *  0b0..The minor loop offset is not applied to the DADDR
+ *  0b1..The minor loop offset is applied to the DADDR
+ */
+#define DMA_NBYTES_MLOFFYES_DMLOE(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_DMLOE_MASK)
+#define DMA_NBYTES_MLOFFYES_SMLOE_MASK           (0x80000000U)
+#define DMA_NBYTES_MLOFFYES_SMLOE_SHIFT          (31U)
+/*! SMLOE - Source Minor Loop Offset Enable
+ *  0b0..The minor loop offset is not applied to the SADDR
+ *  0b1..The minor loop offset is applied to the SADDR
+ */
+#define DMA_NBYTES_MLOFFYES_SMLOE(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_SMLOE_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLOFFYES */
+#define DMA_NBYTES_MLOFFYES_COUNT                (16U)
+
+/*! @name SLAST - TCD Last Source Address Adjustment */
+/*! @{ */
+#define DMA_SLAST_SLAST_MASK                     (0xFFFFFFFFU)
+#define DMA_SLAST_SLAST_SHIFT                    (0U)
+#define DMA_SLAST_SLAST(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_SLAST_SLAST_SHIFT)) & DMA_SLAST_SLAST_MASK)
+/*! @} */
+
+/* The count of DMA_SLAST */
+#define DMA_SLAST_COUNT                          (16U)
+
+/*! @name DADDR - TCD Destination Address */
+/*! @{ */
+#define DMA_DADDR_DADDR_MASK                     (0xFFFFFFFFU)
+#define DMA_DADDR_DADDR_SHIFT                    (0U)
+#define DMA_DADDR_DADDR(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_DADDR_DADDR_SHIFT)) & DMA_DADDR_DADDR_MASK)
+/*! @} */
+
+/* The count of DMA_DADDR */
+#define DMA_DADDR_COUNT                          (16U)
+
+/*! @name DOFF - TCD Signed Destination Address Offset */
+/*! @{ */
+#define DMA_DOFF_DOFF_MASK                       (0xFFFFU)
+#define DMA_DOFF_DOFF_SHIFT                      (0U)
+#define DMA_DOFF_DOFF(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_DOFF_DOFF_SHIFT)) & DMA_DOFF_DOFF_MASK)
+/*! @} */
+
+/* The count of DMA_DOFF */
+#define DMA_DOFF_COUNT                           (16U)
+
+/*! @name CITER_ELINKNO - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled) */
+/*! @{ */
+#define DMA_CITER_ELINKNO_CITER_MASK             (0x7FFFU)
+#define DMA_CITER_ELINKNO_CITER_SHIFT            (0U)
+#define DMA_CITER_ELINKNO_CITER(x)               (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_CITER_SHIFT)) & DMA_CITER_ELINKNO_CITER_MASK)
+#define DMA_CITER_ELINKNO_ELINK_MASK             (0x8000U)
+#define DMA_CITER_ELINKNO_ELINK_SHIFT            (15U)
+/*! ELINK - Enable channel-to-channel linking on minor-loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_CITER_ELINKNO_ELINK(x)               (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_ELINK_SHIFT)) & DMA_CITER_ELINKNO_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_CITER_ELINKNO */
+#define DMA_CITER_ELINKNO_COUNT                  (16U)
+
+/*! @name CITER_ELINKYES - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled) */
+/*! @{ */
+#define DMA_CITER_ELINKYES_CITER_MASK            (0x1FFU)
+#define DMA_CITER_ELINKYES_CITER_SHIFT           (0U)
+#define DMA_CITER_ELINKYES_CITER(x)              (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_CITER_SHIFT)) & DMA_CITER_ELINKYES_CITER_MASK)
+#define DMA_CITER_ELINKYES_LINKCH_MASK           (0x1E00U)
+#define DMA_CITER_ELINKYES_LINKCH_SHIFT          (9U)
+#define DMA_CITER_ELINKYES_LINKCH(x)             (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_LINKCH_SHIFT)) & DMA_CITER_ELINKYES_LINKCH_MASK)
+#define DMA_CITER_ELINKYES_ELINK_MASK            (0x8000U)
+#define DMA_CITER_ELINKYES_ELINK_SHIFT           (15U)
+/*! ELINK - Enable channel-to-channel linking on minor-loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_CITER_ELINKYES_ELINK(x)              (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_ELINK_SHIFT)) & DMA_CITER_ELINKYES_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_CITER_ELINKYES */
+#define DMA_CITER_ELINKYES_COUNT                 (16U)
+
+/*! @name DLAST_SGA - TCD Last Destination Address Adjustment/Scatter Gather Address */
+/*! @{ */
+#define DMA_DLAST_SGA_DLASTSGA_MASK              (0xFFFFFFFFU)
+#define DMA_DLAST_SGA_DLASTSGA_SHIFT             (0U)
+#define DMA_DLAST_SGA_DLASTSGA(x)                (((uint32_t)(((uint32_t)(x)) << DMA_DLAST_SGA_DLASTSGA_SHIFT)) & DMA_DLAST_SGA_DLASTSGA_MASK)
+/*! @} */
+
+/* The count of DMA_DLAST_SGA */
+#define DMA_DLAST_SGA_COUNT                      (16U)
+
+/*! @name CSR - TCD Control and Status */
+/*! @{ */
+#define DMA_CSR_START_MASK                       (0x1U)
+#define DMA_CSR_START_SHIFT                      (0U)
+/*! START - Channel Start
+ *  0b0..The channel is not explicitly started.
+ *  0b1..The channel is explicitly started via a software initiated service request.
+ */
+#define DMA_CSR_START(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_CSR_START_SHIFT)) & DMA_CSR_START_MASK)
+#define DMA_CSR_INTMAJOR_MASK                    (0x2U)
+#define DMA_CSR_INTMAJOR_SHIFT                   (1U)
+/*! INTMAJOR - Enable an interrupt when major iteration count completes.
+ *  0b0..The end-of-major loop interrupt is disabled.
+ *  0b1..The end-of-major loop interrupt is enabled.
+ */
+#define DMA_CSR_INTMAJOR(x)                      (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTMAJOR_SHIFT)) & DMA_CSR_INTMAJOR_MASK)
+#define DMA_CSR_INTHALF_MASK                     (0x4U)
+#define DMA_CSR_INTHALF_SHIFT                    (2U)
+/*! INTHALF - Enable an interrupt when major counter is half complete.
+ *  0b0..The half-point interrupt is disabled.
+ *  0b1..The half-point interrupt is enabled.
+ */
+#define DMA_CSR_INTHALF(x)                       (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTHALF_SHIFT)) & DMA_CSR_INTHALF_MASK)
+#define DMA_CSR_DREQ_MASK                        (0x8U)
+#define DMA_CSR_DREQ_SHIFT                       (3U)
+/*! DREQ - Disable Request
+ *  0b0..The channel's ERQ bit is not affected.
+ *  0b1..The channel's ERQ bit is cleared when the major loop is complete.
+ */
+#define DMA_CSR_DREQ(x)                          (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DREQ_SHIFT)) & DMA_CSR_DREQ_MASK)
+#define DMA_CSR_ESG_MASK                         (0x10U)
+#define DMA_CSR_ESG_SHIFT                        (4U)
+/*! ESG - Enable Scatter/Gather Processing
+ *  0b0..The current channel's TCD is normal format.
+ *  0b1..The current channel's TCD specifies a scatter gather format. The DLASTSGA field provides a memory pointer to the next TCD to be loaded into this channel after the major loop completes its execution.
+ */
+#define DMA_CSR_ESG(x)                           (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ESG_SHIFT)) & DMA_CSR_ESG_MASK)
+#define DMA_CSR_MAJORELINK_MASK                  (0x20U)
+#define DMA_CSR_MAJORELINK_SHIFT                 (5U)
+/*! MAJORELINK - Enable channel-to-channel linking on major loop complete
+ *  0b0..The channel-to-channel linking is disabled.
+ *  0b1..The channel-to-channel linking is enabled.
+ */
+#define DMA_CSR_MAJORELINK(x)                    (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORELINK_SHIFT)) & DMA_CSR_MAJORELINK_MASK)
+#define DMA_CSR_ACTIVE_MASK                      (0x40U)
+#define DMA_CSR_ACTIVE_SHIFT                     (6U)
+#define DMA_CSR_ACTIVE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ACTIVE_SHIFT)) & DMA_CSR_ACTIVE_MASK)
+#define DMA_CSR_DONE_MASK                        (0x80U)
+#define DMA_CSR_DONE_SHIFT                       (7U)
+#define DMA_CSR_DONE(x)                          (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DONE_SHIFT)) & DMA_CSR_DONE_MASK)
+#define DMA_CSR_MAJORLINKCH_MASK                 (0xF00U)
+#define DMA_CSR_MAJORLINKCH_SHIFT                (8U)
+#define DMA_CSR_MAJORLINKCH(x)                   (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORLINKCH_SHIFT)) & DMA_CSR_MAJORLINKCH_MASK)
+#define DMA_CSR_BWC_MASK                         (0xC000U)
+#define DMA_CSR_BWC_SHIFT                        (14U)
+/*! BWC - Bandwidth Control
+ *  0b00..No eDMA engine stalls.
+ *  0b01..Reserved
+ *  0b10..eDMA engine stalls for 4 cycles after each R/W.
+ *  0b11..eDMA engine stalls for 8 cycles after each R/W.
+ */
+#define DMA_CSR_BWC(x)                           (((uint16_t)(((uint16_t)(x)) << DMA_CSR_BWC_SHIFT)) & DMA_CSR_BWC_MASK)
+/*! @} */
+
+/* The count of DMA_CSR */
+#define DMA_CSR_COUNT                            (16U)
+
+/*! @name BITER_ELINKNO - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled) */
+/*! @{ */
+#define DMA_BITER_ELINKNO_BITER_MASK             (0x7FFFU)
+#define DMA_BITER_ELINKNO_BITER_SHIFT            (0U)
+#define DMA_BITER_ELINKNO_BITER(x)               (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_BITER_SHIFT)) & DMA_BITER_ELINKNO_BITER_MASK)
+#define DMA_BITER_ELINKNO_ELINK_MASK             (0x8000U)
+#define DMA_BITER_ELINKNO_ELINK_SHIFT            (15U)
+/*! ELINK - Enables channel-to-channel linking on minor loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_BITER_ELINKNO_ELINK(x)               (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_ELINK_SHIFT)) & DMA_BITER_ELINKNO_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_BITER_ELINKNO */
+#define DMA_BITER_ELINKNO_COUNT                  (16U)
+
+/*! @name BITER_ELINKYES - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled) */
+/*! @{ */
+#define DMA_BITER_ELINKYES_BITER_MASK            (0x1FFU)
+#define DMA_BITER_ELINKYES_BITER_SHIFT           (0U)
+#define DMA_BITER_ELINKYES_BITER(x)              (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_BITER_SHIFT)) & DMA_BITER_ELINKYES_BITER_MASK)
+#define DMA_BITER_ELINKYES_LINKCH_MASK           (0x1E00U)
+#define DMA_BITER_ELINKYES_LINKCH_SHIFT          (9U)
+#define DMA_BITER_ELINKYES_LINKCH(x)             (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_LINKCH_SHIFT)) & DMA_BITER_ELINKYES_LINKCH_MASK)
+#define DMA_BITER_ELINKYES_ELINK_MASK            (0x8000U)
+#define DMA_BITER_ELINKYES_ELINK_SHIFT           (15U)
+/*! ELINK - Enables channel-to-channel linking on minor loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_BITER_ELINKYES_ELINK(x)              (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_ELINK_SHIFT)) & DMA_BITER_ELINKYES_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_BITER_ELINKYES */
+#define DMA_BITER_ELINKYES_COUNT                 (16U)
+
+
+/*!
+ * @}
+ */ /* end of group DMA_Register_Masks */
+
+
+/* DMA - Peripheral instance base addresses */
+/** Peripheral DMA0 base address */
+#define DMA0_BASE                                (0x40008000u)
+/** Peripheral DMA0 base pointer */
+#define DMA0                                     ((DMA_Type *)DMA0_BASE)
+/** Array initializer of DMA peripheral base addresses */
+#define DMA_BASE_ADDRS                           { DMA0_BASE }
+/** Array initializer of DMA peripheral base pointers */
+#define DMA_BASE_PTRS                            { DMA0 }
+/** Interrupt vectors for the DMA peripheral type */
+#define DMA_CHN_IRQS                             { {DMA0_0_4_8_12_IRQn, DMA0_1_5_9_13_IRQn, DMA0_2_6_10_14_IRQn, DMA0_3_7_11_15_IRQn} }
+#define DMA_ERROR_IRQS                           { DMA0_Error_IRQn }
+
+/*!
+ * @}
+ */ /* end of group DMA_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- DMAMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMAMUX_Peripheral_Access_Layer DMAMUX Peripheral Access Layer
+ * @{
+ */
+
+/** DMAMUX - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CHCFG[16];                         /**< Channel 0 Configuration Register..Channel 15 Configuration Register, array offset: 0x0, array step: 0x4 */
+} DMAMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- DMAMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMAMUX_Register_Masks DMAMUX Register Masks
+ * @{
+ */
+
+/*! @name CHCFG - Channel 0 Configuration Register..Channel 15 Configuration Register */
+/*! @{ */
+#define DMAMUX_CHCFG_SOURCE_MASK                 (0x3FU)
+#define DMAMUX_CHCFG_SOURCE_SHIFT                (0U)
+#define DMAMUX_CHCFG_SOURCE(x)                   (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_SOURCE_SHIFT)) & DMAMUX_CHCFG_SOURCE_MASK)
+#define DMAMUX_CHCFG_A_ON_MASK                   (0x20000000U)
+#define DMAMUX_CHCFG_A_ON_SHIFT                  (29U)
+/*! A_ON - DMA Channel Always Enable
+ *  0b0..DMA Channel Always ON function is disabled
+ *  0b1..DMA Channel Always ON function is enabled
+ */
+#define DMAMUX_CHCFG_A_ON(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_A_ON_SHIFT)) & DMAMUX_CHCFG_A_ON_MASK)
+#define DMAMUX_CHCFG_TRIG_MASK                   (0x40000000U)
+#define DMAMUX_CHCFG_TRIG_SHIFT                  (30U)
+/*! TRIG - DMA Channel Trigger Enable
+ *  0b0..Triggering is disabled. If triggering is disabled and ENBL is set, the DMA Channel will simply route the specified source to the DMA channel. (Normal mode)
+ *  0b1..Triggering is enabled. If triggering is enabled and ENBL is set, the DMA_CH_MUX is in Periodic Trigger mode.
+ */
+#define DMAMUX_CHCFG_TRIG(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_TRIG_SHIFT)) & DMAMUX_CHCFG_TRIG_MASK)
+#define DMAMUX_CHCFG_ENBL_MASK                   (0x80000000U)
+#define DMAMUX_CHCFG_ENBL_SHIFT                  (31U)
+/*! ENBL - DMA Mux Channel Enable
+ *  0b0..DMA Mux channel is disabled
+ *  0b1..DMA Mux channel is enabled
+ */
+#define DMAMUX_CHCFG_ENBL(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_ENBL_SHIFT)) & DMAMUX_CHCFG_ENBL_MASK)
+/*! @} */
+
+/* The count of DMAMUX_CHCFG */
+#define DMAMUX_CHCFG_COUNT                       (16U)
+
+
+/*!
+ * @}
+ */ /* end of group DMAMUX_Register_Masks */
+
+
+/* DMAMUX - Peripheral instance base addresses */
+/** Peripheral DMAMUX0 base address */
+#define DMAMUX0_BASE                             (0x40021000u)
+/** Peripheral DMAMUX0 base pointer */
+#define DMAMUX0                                  ((DMAMUX_Type *)DMAMUX0_BASE)
+/** Array initializer of DMAMUX peripheral base addresses */
+#define DMAMUX_BASE_ADDRS                        { DMAMUX0_BASE }
+/** Array initializer of DMAMUX peripheral base pointers */
+#define DMAMUX_BASE_PTRS                         { DMAMUX0 }
+
+/*!
+ * @}
+ */ /* end of group DMAMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EMVSIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EMVSIM_Peripheral_Access_Layer EMVSIM Peripheral Access Layer
+ * @{
+ */
+
+/** EMVSIM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VER_ID;                            /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CLKCFG;                            /**< Clock Configuration Register, offset: 0x8 */
+  __IO uint32_t DIVISOR;                           /**< Baud Rate Divisor Register, offset: 0xC */
+  __IO uint32_t CTRL;                              /**< Control Register, offset: 0x10 */
+  __IO uint32_t INT_MASK;                          /**< Interrupt Mask Register, offset: 0x14 */
+  __IO uint32_t RX_THD;                            /**< Receiver Threshold Register, offset: 0x18 */
+  __IO uint32_t TX_THD;                            /**< Transmitter Threshold Register, offset: 0x1C */
+  __IO uint32_t RX_STATUS;                         /**< Receive Status Register, offset: 0x20 */
+  __IO uint32_t TX_STATUS;                         /**< Transmitter Status Register, offset: 0x24 */
+  __IO uint32_t PCSR;                              /**< Port Control and Status Register, offset: 0x28 */
+  __I  uint32_t RX_BUF;                            /**< Receive Data Read Buffer, offset: 0x2C */
+  __O  uint32_t TX_BUF;                            /**< Transmit Data Buffer, offset: 0x30 */
+  __IO uint32_t TX_GETU;                           /**< Transmitter Guard ETU Value Register, offset: 0x34 */
+  __IO uint32_t CWT_VAL;                           /**< Character Wait Time Value Register, offset: 0x38 */
+  __IO uint32_t BWT_VAL;                           /**< Block Wait Time Value Register, offset: 0x3C */
+  __IO uint32_t BGT_VAL;                           /**< Block Guard Time Value Register, offset: 0x40 */
+  __IO uint32_t GPCNT0_VAL;                        /**< General Purpose Counter 0 Timeout Value Register, offset: 0x44 */
+  __IO uint32_t GPCNT1_VAL;                        /**< General Purpose Counter 1 Timeout Value, offset: 0x48 */
+} EMVSIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EMVSIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EMVSIM_Register_Masks EMVSIM Register Masks
+ * @{
+ */
+
+/*! @name VER_ID - Version ID Register */
+/*! @{ */
+#define EMVSIM_VER_ID_VER_MASK                   (0xFFFFFFFFU)
+#define EMVSIM_VER_ID_VER_SHIFT                  (0U)
+#define EMVSIM_VER_ID_VER(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_VER_ID_VER_SHIFT)) & EMVSIM_VER_ID_VER_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define EMVSIM_PARAM_RX_FIFO_DEPTH_MASK          (0xFFU)
+#define EMVSIM_PARAM_RX_FIFO_DEPTH_SHIFT         (0U)
+#define EMVSIM_PARAM_RX_FIFO_DEPTH(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_PARAM_RX_FIFO_DEPTH_SHIFT)) & EMVSIM_PARAM_RX_FIFO_DEPTH_MASK)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH_MASK          (0xFF00U)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH_SHIFT         (8U)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_PARAM_TX_FIFO_DEPTH_SHIFT)) & EMVSIM_PARAM_TX_FIFO_DEPTH_MASK)
+/*! @} */
+
+/*! @name CLKCFG - Clock Configuration Register */
+/*! @{ */
+#define EMVSIM_CLKCFG_CLK_PRSC_MASK              (0xFFU)
+#define EMVSIM_CLKCFG_CLK_PRSC_SHIFT             (0U)
+/*! CLK_PRSC - Clock Prescaler Value
+ *  0b00000010..Divide by 2
+ */
+#define EMVSIM_CLKCFG_CLK_PRSC(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_CLK_PRSC_SHIFT)) & EMVSIM_CLKCFG_CLK_PRSC_MASK)
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL_MASK        (0x300U)
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL_SHIFT       (8U)
+/*! GPCNT1_CLK_SEL - General Purpose Counter 1 Clock Select
+ *  0b00..Disabled / Reset (default)
+ *  0b01..Card Clock
+ *  0b10..Receive Clock
+ *  0b11..ETU Clock (transmit clock)
+ */
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_GPCNT1_CLK_SEL_SHIFT)) & EMVSIM_CLKCFG_GPCNT1_CLK_SEL_MASK)
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL_MASK        (0xC00U)
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL_SHIFT       (10U)
+/*! GPCNT0_CLK_SEL - General Purpose Counter 0 Clock Select
+ *  0b00..Disabled / Reset (default)
+ *  0b01..Card Clock
+ *  0b10..Receive Clock
+ *  0b11..ETU Clock (transmit clock)
+ */
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_GPCNT0_CLK_SEL_SHIFT)) & EMVSIM_CLKCFG_GPCNT0_CLK_SEL_MASK)
+/*! @} */
+
+/*! @name DIVISOR - Baud Rate Divisor Register */
+/*! @{ */
+#define EMVSIM_DIVISOR_DIVISOR_VALUE_MASK        (0x1FFU)
+#define EMVSIM_DIVISOR_DIVISOR_VALUE_SHIFT       (0U)
+/*! DIVISOR_VALUE - Divisor (F/D) Value
+ *  0b000000000-0b000000100..Invalid. As per ISO 7816 specification, minimum value of F/D is 5
+ *  0b101110100..Divisor value for F = 372 and D = 1 (default)
+ */
+#define EMVSIM_DIVISOR_DIVISOR_VALUE(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_DIVISOR_DIVISOR_VALUE_SHIFT)) & EMVSIM_DIVISOR_DIVISOR_VALUE_MASK)
+/*! @} */
+
+/*! @name CTRL - Control Register */
+/*! @{ */
+#define EMVSIM_CTRL_IC_MASK                      (0x1U)
+#define EMVSIM_CTRL_IC_SHIFT                     (0U)
+/*! IC - Inverse Convention
+ *  0b0..Direction convention transfers enabled (default)
+ *  0b1..Inverse convention transfers enabled
+ */
+#define EMVSIM_CTRL_IC(x)                        (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_IC_SHIFT)) & EMVSIM_CTRL_IC_MASK)
+#define EMVSIM_CTRL_ICM_MASK                     (0x2U)
+#define EMVSIM_CTRL_ICM_SHIFT                    (1U)
+/*! ICM - Initial Character Mode
+ *  0b0..Initial Character Mode disabled
+ *  0b1..Initial Character Mode enabled (default)
+ */
+#define EMVSIM_CTRL_ICM(x)                       (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ICM_SHIFT)) & EMVSIM_CTRL_ICM_MASK)
+#define EMVSIM_CTRL_ANACK_MASK                   (0x4U)
+#define EMVSIM_CTRL_ANACK_SHIFT                  (2U)
+/*! ANACK - Auto NACK Enable
+ *  0b0..NACK generation on errors disabled
+ *  0b1..NACK generation on errors enabled (default)
+ */
+#define EMVSIM_CTRL_ANACK(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ANACK_SHIFT)) & EMVSIM_CTRL_ANACK_MASK)
+#define EMVSIM_CTRL_ONACK_MASK                   (0x8U)
+#define EMVSIM_CTRL_ONACK_SHIFT                  (3U)
+/*! ONACK - Overrun NACK Enable
+ *  0b0..NACK generation on overrun is disabled (default)
+ *  0b1..NACK generation on overrun is enabled
+ */
+#define EMVSIM_CTRL_ONACK(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ONACK_SHIFT)) & EMVSIM_CTRL_ONACK_MASK)
+#define EMVSIM_CTRL_FLSH_RX_MASK                 (0x100U)
+#define EMVSIM_CTRL_FLSH_RX_SHIFT                (8U)
+/*! FLSH_RX - Flush Receiver Bit
+ *  0b0..EMV SIM Receiver normal operation (default)
+ *  0b1..EMV SIM Receiver held in Reset
+ */
+#define EMVSIM_CTRL_FLSH_RX(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_FLSH_RX_SHIFT)) & EMVSIM_CTRL_FLSH_RX_MASK)
+#define EMVSIM_CTRL_FLSH_TX_MASK                 (0x200U)
+#define EMVSIM_CTRL_FLSH_TX_SHIFT                (9U)
+/*! FLSH_TX - Flush Transmitter Bit
+ *  0b0..EMV SIM Transmitter normal operation (default)
+ *  0b1..EMV SIM Transmitter held in Reset
+ */
+#define EMVSIM_CTRL_FLSH_TX(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_FLSH_TX_SHIFT)) & EMVSIM_CTRL_FLSH_TX_MASK)
+#define EMVSIM_CTRL_SW_RST_MASK                  (0x400U)
+#define EMVSIM_CTRL_SW_RST_SHIFT                 (10U)
+/*! SW_RST - Software Reset Bit
+ *  0b0..EMV SIM Normal operation (default)
+ *  0b1..EMV SIM held in Reset
+ */
+#define EMVSIM_CTRL_SW_RST(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_SW_RST_SHIFT)) & EMVSIM_CTRL_SW_RST_MASK)
+#define EMVSIM_CTRL_KILL_CLOCKS_MASK             (0x800U)
+#define EMVSIM_CTRL_KILL_CLOCKS_SHIFT            (11U)
+/*! KILL_CLOCKS - Kill all internal clocks
+ *  0b0..EMV SIM input clock enabled (default)
+ *  0b1..EMV SIM input clock is disabled
+ */
+#define EMVSIM_CTRL_KILL_CLOCKS(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_KILL_CLOCKS_SHIFT)) & EMVSIM_CTRL_KILL_CLOCKS_MASK)
+#define EMVSIM_CTRL_DOZE_EN_MASK                 (0x1000U)
+#define EMVSIM_CTRL_DOZE_EN_SHIFT                (12U)
+/*! DOZE_EN - Doze Enable
+ *  0b0..DOZE instruction will gate all internal EMV SIM clocks as well as the Smart Card clock when the transmit FIFO is empty (default)
+ *  0b1..DOZE instruction has no effect on EMV SIM module
+ */
+#define EMVSIM_CTRL_DOZE_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_DOZE_EN_SHIFT)) & EMVSIM_CTRL_DOZE_EN_MASK)
+#define EMVSIM_CTRL_STOP_EN_MASK                 (0x2000U)
+#define EMVSIM_CTRL_STOP_EN_SHIFT                (13U)
+/*! STOP_EN - STOP Enable
+ *  0b0..STOP instruction shuts down all EMV SIM clocks (default)
+ *  0b1..STOP instruction shuts down all clocks except for the Smart Card Clock (SCK) (clock provided to Smart Card)
+ */
+#define EMVSIM_CTRL_STOP_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_STOP_EN_SHIFT)) & EMVSIM_CTRL_STOP_EN_MASK)
+#define EMVSIM_CTRL_RCV_EN_MASK                  (0x10000U)
+#define EMVSIM_CTRL_RCV_EN_SHIFT                 (16U)
+/*! RCV_EN - Receiver Enable
+ *  0b0..EMV SIM Receiver disabled (default)
+ *  0b1..EMV SIM Receiver enabled
+ */
+#define EMVSIM_CTRL_RCV_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RCV_EN_SHIFT)) & EMVSIM_CTRL_RCV_EN_MASK)
+#define EMVSIM_CTRL_XMT_EN_MASK                  (0x20000U)
+#define EMVSIM_CTRL_XMT_EN_SHIFT                 (17U)
+/*! XMT_EN - Transmitter Enable
+ *  0b0..EMV SIM Transmitter disabled (default)
+ *  0b1..EMV SIM Transmitter enabled
+ */
+#define EMVSIM_CTRL_XMT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_XMT_EN_SHIFT)) & EMVSIM_CTRL_XMT_EN_MASK)
+#define EMVSIM_CTRL_RCVR_11_MASK                 (0x40000U)
+#define EMVSIM_CTRL_RCVR_11_SHIFT                (18U)
+/*! RCVR_11 - Receiver 11 ETU Mode Enable
+ *  0b0..Receiver configured for 12 ETU operation mode (default)
+ *  0b1..Receiver configured for 11 ETU operation mode
+ */
+#define EMVSIM_CTRL_RCVR_11(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RCVR_11_SHIFT)) & EMVSIM_CTRL_RCVR_11_MASK)
+#define EMVSIM_CTRL_RX_DMA_EN_MASK               (0x80000U)
+#define EMVSIM_CTRL_RX_DMA_EN_SHIFT              (19U)
+/*! RX_DMA_EN - Receive DMA Enable
+ *  0b0..No DMA Read Request asserted for Receiver (default)
+ *  0b1..DMA Read Request asserted for Receiver
+ */
+#define EMVSIM_CTRL_RX_DMA_EN(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RX_DMA_EN_SHIFT)) & EMVSIM_CTRL_RX_DMA_EN_MASK)
+#define EMVSIM_CTRL_TX_DMA_EN_MASK               (0x100000U)
+#define EMVSIM_CTRL_TX_DMA_EN_SHIFT              (20U)
+/*! TX_DMA_EN - Transmit DMA Enable
+ *  0b0..No DMA Write Request asserted for Transmitter (default)
+ *  0b1..DMA Write Request asserted for Transmitter
+ */
+#define EMVSIM_CTRL_TX_DMA_EN(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_TX_DMA_EN_SHIFT)) & EMVSIM_CTRL_TX_DMA_EN_MASK)
+#define EMVSIM_CTRL_INV_CRC_VAL_MASK             (0x1000000U)
+#define EMVSIM_CTRL_INV_CRC_VAL_SHIFT            (24U)
+/*! INV_CRC_VAL - Invert bits in the CRC Output Value
+ *  0b0..Bits in CRC Output value will not be inverted.
+ *  0b1..Bits in CRC Output value will be inverted. (default)
+ */
+#define EMVSIM_CTRL_INV_CRC_VAL(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_INV_CRC_VAL_SHIFT)) & EMVSIM_CTRL_INV_CRC_VAL_MASK)
+#define EMVSIM_CTRL_CRC_OUT_FLIP_MASK            (0x2000000U)
+#define EMVSIM_CTRL_CRC_OUT_FLIP_SHIFT           (25U)
+/*! CRC_OUT_FLIP - CRC Output Value Bit Reversal or Flip
+ *  0b0..Bits within the CRC output bytes will not be reversed i.e. 15:0 will remain 15:0 (default)
+ *  0b1..Bits within the CRC output bytes will be reversed i.e. 15:0 will become {8:15,0:7}
+ */
+#define EMVSIM_CTRL_CRC_OUT_FLIP(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_OUT_FLIP_SHIFT)) & EMVSIM_CTRL_CRC_OUT_FLIP_MASK)
+#define EMVSIM_CTRL_CRC_IN_FLIP_MASK             (0x4000000U)
+#define EMVSIM_CTRL_CRC_IN_FLIP_SHIFT            (26U)
+/*! CRC_IN_FLIP - CRC Input Byte's Bit Reversal or Flip Control
+ *  0b0..Bits in the input byte will not be reversed (i.e. 7:0 will remain 7:0) before the CRC calculation (default)
+ *  0b1..Bits in the input byte will be reversed (i.e. 7:0 will become 0:7) before CRC calculation
+ */
+#define EMVSIM_CTRL_CRC_IN_FLIP(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_IN_FLIP_SHIFT)) & EMVSIM_CTRL_CRC_IN_FLIP_MASK)
+#define EMVSIM_CTRL_CWT_EN_MASK                  (0x8000000U)
+#define EMVSIM_CTRL_CWT_EN_SHIFT                 (27U)
+/*! CWT_EN - Character Wait Time Counter Enable
+ *  0b0..Character Wait time Counter is disabled (default)
+ *  0b1..Character Wait time counter is enabled
+ */
+#define EMVSIM_CTRL_CWT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CWT_EN_SHIFT)) & EMVSIM_CTRL_CWT_EN_MASK)
+#define EMVSIM_CTRL_LRC_EN_MASK                  (0x10000000U)
+#define EMVSIM_CTRL_LRC_EN_SHIFT                 (28U)
+/*! LRC_EN - LRC Enable
+ *  0b0..8-bit Linear Redundancy Checking disabled (default)
+ *  0b1..8-bit Linear Redundancy Checking enabled
+ */
+#define EMVSIM_CTRL_LRC_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_LRC_EN_SHIFT)) & EMVSIM_CTRL_LRC_EN_MASK)
+#define EMVSIM_CTRL_CRC_EN_MASK                  (0x20000000U)
+#define EMVSIM_CTRL_CRC_EN_SHIFT                 (29U)
+/*! CRC_EN - CRC Enable
+ *  0b0..16-bit Cyclic Redundancy Checking disabled (default)
+ *  0b1..16-bit Cyclic Redundancy Checking enabled
+ */
+#define EMVSIM_CTRL_CRC_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_EN_SHIFT)) & EMVSIM_CTRL_CRC_EN_MASK)
+#define EMVSIM_CTRL_XMT_CRC_LRC_MASK             (0x40000000U)
+#define EMVSIM_CTRL_XMT_CRC_LRC_SHIFT            (30U)
+/*! XMT_CRC_LRC - Transmit CRC or LRC Enable
+ *  0b0..No CRC or LRC value is transmitted (default)
+ *  0b1..Transmit LRC or CRC info when FIFO empties (whichever is enabled)
+ */
+#define EMVSIM_CTRL_XMT_CRC_LRC(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_XMT_CRC_LRC_SHIFT)) & EMVSIM_CTRL_XMT_CRC_LRC_MASK)
+#define EMVSIM_CTRL_BWT_EN_MASK                  (0x80000000U)
+#define EMVSIM_CTRL_BWT_EN_SHIFT                 (31U)
+/*! BWT_EN - Block Wait Time Counter Enable
+ *  0b0..Disable BWT, BGT Counters (default)
+ *  0b1..Enable BWT, BGT Counters
+ */
+#define EMVSIM_CTRL_BWT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_BWT_EN_SHIFT)) & EMVSIM_CTRL_BWT_EN_MASK)
+/*! @} */
+
+/*! @name INT_MASK - Interrupt Mask Register */
+/*! @{ */
+#define EMVSIM_INT_MASK_RDT_IM_MASK              (0x1U)
+#define EMVSIM_INT_MASK_RDT_IM_SHIFT             (0U)
+/*! RDT_IM - Receive Data Threshold Interrupt Mask
+ *  0b0..RDTF interrupt enabled
+ *  0b1..RDTF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RDT_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RDT_IM_SHIFT)) & EMVSIM_INT_MASK_RDT_IM_MASK)
+#define EMVSIM_INT_MASK_TC_IM_MASK               (0x2U)
+#define EMVSIM_INT_MASK_TC_IM_SHIFT              (1U)
+/*! TC_IM - Transmit Complete Interrupt Mask
+ *  0b0..TCF interrupt enabled
+ *  0b1..TCF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TC_IM(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TC_IM_SHIFT)) & EMVSIM_INT_MASK_TC_IM_MASK)
+#define EMVSIM_INT_MASK_RFO_IM_MASK              (0x4U)
+#define EMVSIM_INT_MASK_RFO_IM_SHIFT             (2U)
+/*! RFO_IM - Receive FIFO Overflow Interrupt Mask
+ *  0b0..RFO interrupt enabled
+ *  0b1..RFO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RFO_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RFO_IM_SHIFT)) & EMVSIM_INT_MASK_RFO_IM_MASK)
+#define EMVSIM_INT_MASK_ETC_IM_MASK              (0x8U)
+#define EMVSIM_INT_MASK_ETC_IM_SHIFT             (3U)
+/*! ETC_IM - Early Transmit Complete Interrupt Mask
+ *  0b0..ETC interrupt enabled
+ *  0b1..ETC interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_ETC_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_ETC_IM_SHIFT)) & EMVSIM_INT_MASK_ETC_IM_MASK)
+#define EMVSIM_INT_MASK_TFE_IM_MASK              (0x10U)
+#define EMVSIM_INT_MASK_TFE_IM_SHIFT             (4U)
+/*! TFE_IM - Transmit FIFO Empty Interrupt Mask
+ *  0b0..TFE interrupt enabled
+ *  0b1..TFE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TFE_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TFE_IM_SHIFT)) & EMVSIM_INT_MASK_TFE_IM_MASK)
+#define EMVSIM_INT_MASK_TNACK_IM_MASK            (0x20U)
+#define EMVSIM_INT_MASK_TNACK_IM_SHIFT           (5U)
+/*! TNACK_IM - Transmit NACK Threshold Interrupt Mask
+ *  0b0..TNTE interrupt enabled
+ *  0b1..TNTE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TNACK_IM(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TNACK_IM_SHIFT)) & EMVSIM_INT_MASK_TNACK_IM_MASK)
+#define EMVSIM_INT_MASK_TFF_IM_MASK              (0x40U)
+#define EMVSIM_INT_MASK_TFF_IM_SHIFT             (6U)
+/*! TFF_IM - Transmit FIFO Full Interrupt Mask
+ *  0b0..TFF interrupt enabled
+ *  0b1..TFF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TFF_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TFF_IM_SHIFT)) & EMVSIM_INT_MASK_TFF_IM_MASK)
+#define EMVSIM_INT_MASK_TDT_IM_MASK              (0x80U)
+#define EMVSIM_INT_MASK_TDT_IM_SHIFT             (7U)
+/*! TDT_IM - Transmit Data Threshold Interrupt Mask
+ *  0b0..TDTF interrupt enabled
+ *  0b1..TDTF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TDT_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TDT_IM_SHIFT)) & EMVSIM_INT_MASK_TDT_IM_MASK)
+#define EMVSIM_INT_MASK_GPCNT0_IM_MASK           (0x100U)
+#define EMVSIM_INT_MASK_GPCNT0_IM_SHIFT          (8U)
+/*! GPCNT0_IM - General Purpose Timer 0 Timeout Interrupt Mask
+ *  0b0..GPCNT0_TO interrupt enabled
+ *  0b1..GPCNT0_TO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_GPCNT0_IM(x)             (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_GPCNT0_IM_SHIFT)) & EMVSIM_INT_MASK_GPCNT0_IM_MASK)
+#define EMVSIM_INT_MASK_CWT_ERR_IM_MASK          (0x200U)
+#define EMVSIM_INT_MASK_CWT_ERR_IM_SHIFT         (9U)
+/*! CWT_ERR_IM - Character Wait Time Error Interrupt Mask
+ *  0b0..CWT_ERR interrupt enabled
+ *  0b1..CWT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_CWT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_CWT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_CWT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_RNACK_IM_MASK            (0x400U)
+#define EMVSIM_INT_MASK_RNACK_IM_SHIFT           (10U)
+/*! RNACK_IM - Receiver NACK Threshold Interrupt Mask
+ *  0b0..RTE interrupt enabled
+ *  0b1..RTE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RNACK_IM(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RNACK_IM_SHIFT)) & EMVSIM_INT_MASK_RNACK_IM_MASK)
+#define EMVSIM_INT_MASK_BWT_ERR_IM_MASK          (0x800U)
+#define EMVSIM_INT_MASK_BWT_ERR_IM_SHIFT         (11U)
+/*! BWT_ERR_IM - Block Wait Time Error Interrupt Mask
+ *  0b0..BWT_ERR interrupt enabled
+ *  0b1..BWT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_BWT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_BWT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_BWT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_BGT_ERR_IM_MASK          (0x1000U)
+#define EMVSIM_INT_MASK_BGT_ERR_IM_SHIFT         (12U)
+/*! BGT_ERR_IM - Block Guard Time Error Interrupt
+ *  0b0..BGT_ERR interrupt enabled
+ *  0b1..BGT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_BGT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_BGT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_BGT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_GPCNT1_IM_MASK           (0x2000U)
+#define EMVSIM_INT_MASK_GPCNT1_IM_SHIFT          (13U)
+/*! GPCNT1_IM - General Purpose Counter 1 Timeout Interrupt Mask
+ *  0b0..GPCNT1_TO interrupt enabled
+ *  0b1..GPCNT1_TO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_GPCNT1_IM(x)             (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_GPCNT1_IM_SHIFT)) & EMVSIM_INT_MASK_GPCNT1_IM_MASK)
+#define EMVSIM_INT_MASK_RX_DATA_IM_MASK          (0x4000U)
+#define EMVSIM_INT_MASK_RX_DATA_IM_SHIFT         (14U)
+/*! RX_DATA_IM - Receive Data Interrupt Mask
+ *  0b0..RX_DATA interrupt enabled
+ *  0b1..RX_DATA interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RX_DATA_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RX_DATA_IM_SHIFT)) & EMVSIM_INT_MASK_RX_DATA_IM_MASK)
+#define EMVSIM_INT_MASK_PEF_IM_MASK              (0x8000U)
+#define EMVSIM_INT_MASK_PEF_IM_SHIFT             (15U)
+/*! PEF_IM - Parity Error Interrupt Mask
+ *  0b0..PEF interrupt enabled
+ *  0b1..PEF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_PEF_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_PEF_IM_SHIFT)) & EMVSIM_INT_MASK_PEF_IM_MASK)
+/*! @} */
+
+/*! @name RX_THD - Receiver Threshold Register */
+/*! @{ */
+#define EMVSIM_RX_THD_RDT_MASK                   (0xFU)
+#define EMVSIM_RX_THD_RDT_SHIFT                  (0U)
+#define EMVSIM_RX_THD_RDT(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_THD_RDT_SHIFT)) & EMVSIM_RX_THD_RDT_MASK)
+#define EMVSIM_RX_THD_RNCK_THD_MASK              (0xF00U)
+#define EMVSIM_RX_THD_RNCK_THD_SHIFT             (8U)
+/*! RNCK_THD - Receiver NACK Threshold Value
+ *  0b0000..Zero Threshold. RTE will not be set
+ */
+#define EMVSIM_RX_THD_RNCK_THD(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_THD_RNCK_THD_SHIFT)) & EMVSIM_RX_THD_RNCK_THD_MASK)
+/*! @} */
+
+/*! @name TX_THD - Transmitter Threshold Register */
+/*! @{ */
+#define EMVSIM_TX_THD_TDT_MASK                   (0xFU)
+#define EMVSIM_TX_THD_TDT_SHIFT                  (0U)
+#define EMVSIM_TX_THD_TDT(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_THD_TDT_SHIFT)) & EMVSIM_TX_THD_TDT_MASK)
+#define EMVSIM_TX_THD_TNCK_THD_MASK              (0xF00U)
+#define EMVSIM_TX_THD_TNCK_THD_SHIFT             (8U)
+/*! TNCK_THD - Transmitter NACK Threshold Value
+ *  0b0000..TNTE will never be set; retransmission after NACK reception is disabled.
+ *  0b0001..TNTE will be set after 1 nack is received; 0 retransmissions occurs.
+ *  0b0010..TNTE will be set after 2 nacks are received; at most 1 retransmission occurs.
+ *  0b0011..TNTE will be set after 3 nacks are received; at most 2 retransmissions occurs.
+ *  0b1111..TNTE will be set after 15 nacks are received; at most 14 retransmissions occurs.
+ */
+#define EMVSIM_TX_THD_TNCK_THD(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_THD_TNCK_THD_SHIFT)) & EMVSIM_TX_THD_TNCK_THD_MASK)
+/*! @} */
+
+/*! @name RX_STATUS - Receive Status Register */
+/*! @{ */
+#define EMVSIM_RX_STATUS_RFO_MASK                (0x1U)
+#define EMVSIM_RX_STATUS_RFO_SHIFT               (0U)
+/*! RFO - Receive FIFO Overflow Flag
+ *  0b0..No overrun error has occurred (default)
+ *  0b1..A byte was received when the received FIFO was already full
+ */
+#define EMVSIM_RX_STATUS_RFO(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RFO_SHIFT)) & EMVSIM_RX_STATUS_RFO_MASK)
+#define EMVSIM_RX_STATUS_RX_DATA_MASK            (0x10U)
+#define EMVSIM_RX_STATUS_RX_DATA_SHIFT           (4U)
+/*! RX_DATA - Receive Data Interrupt Flag
+ *  0b0..No new byte is received
+ *  0b1..New byte is received ans stored in Receive FIFO
+ */
+#define EMVSIM_RX_STATUS_RX_DATA(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_DATA_SHIFT)) & EMVSIM_RX_STATUS_RX_DATA_MASK)
+#define EMVSIM_RX_STATUS_RDTF_MASK               (0x20U)
+#define EMVSIM_RX_STATUS_RDTF_SHIFT              (5U)
+/*! RDTF - Receive Data Threshold Interrupt Flag
+ *  0b0..Number of unread bytes in receive FIFO less than the value set by RDT[3:0] (default).
+ *  0b1..Number of unread bytes in receive FIFO greater or than equal to value set by RDT[3:0].
+ */
+#define EMVSIM_RX_STATUS_RDTF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RDTF_SHIFT)) & EMVSIM_RX_STATUS_RDTF_MASK)
+#define EMVSIM_RX_STATUS_LRC_OK_MASK             (0x40U)
+#define EMVSIM_RX_STATUS_LRC_OK_SHIFT            (6U)
+/*! LRC_OK - LRC Check OK Flag
+ *  0b0..Current LRC value does not match remainder.
+ *  0b1..Current calculated LRC value matches the expected result (i.e. zero).
+ */
+#define EMVSIM_RX_STATUS_LRC_OK(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_LRC_OK_SHIFT)) & EMVSIM_RX_STATUS_LRC_OK_MASK)
+#define EMVSIM_RX_STATUS_CRC_OK_MASK             (0x80U)
+#define EMVSIM_RX_STATUS_CRC_OK_SHIFT            (7U)
+/*! CRC_OK - CRC Check OK Flag
+ *  0b0..Current CRC value does not match remainder.
+ *  0b1..Current calculated CRC value matches the expected result.
+ */
+#define EMVSIM_RX_STATUS_CRC_OK(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_CRC_OK_SHIFT)) & EMVSIM_RX_STATUS_CRC_OK_MASK)
+#define EMVSIM_RX_STATUS_CWT_ERR_MASK            (0x100U)
+#define EMVSIM_RX_STATUS_CWT_ERR_SHIFT           (8U)
+/*! CWT_ERR - Character Wait Time Error Flag
+ *  0b0..No CWT violation has occurred (default).
+ *  0b1..Time between two consecutive characters has exceeded the value in CHAR_WAIT.
+ */
+#define EMVSIM_RX_STATUS_CWT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_CWT_ERR_SHIFT)) & EMVSIM_RX_STATUS_CWT_ERR_MASK)
+#define EMVSIM_RX_STATUS_RTE_MASK                (0x200U)
+#define EMVSIM_RX_STATUS_RTE_SHIFT               (9U)
+/*! RTE - Received NACK Threshold Error Flag
+ *  0b0..Number of NACKs generated by the receiver is less than the value programmed in RTH[3:0]
+ *  0b1..Number of NACKs generated by the receiver is equal to the value programmed in RTH[3:0]
+ */
+#define EMVSIM_RX_STATUS_RTE(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RTE_SHIFT)) & EMVSIM_RX_STATUS_RTE_MASK)
+#define EMVSIM_RX_STATUS_BWT_ERR_MASK            (0x400U)
+#define EMVSIM_RX_STATUS_BWT_ERR_SHIFT           (10U)
+/*! BWT_ERR - Block Wait Time Error Flag
+ *  0b0..Block wait time not exceeded
+ *  0b1..Block wait time was exceeded
+ */
+#define EMVSIM_RX_STATUS_BWT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_BWT_ERR_SHIFT)) & EMVSIM_RX_STATUS_BWT_ERR_MASK)
+#define EMVSIM_RX_STATUS_BGT_ERR_MASK            (0x800U)
+#define EMVSIM_RX_STATUS_BGT_ERR_SHIFT           (11U)
+/*! BGT_ERR - Block Guard Time Error Flag
+ *  0b0..Block guard time was sufficient
+ *  0b1..Block guard time was too small
+ */
+#define EMVSIM_RX_STATUS_BGT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_BGT_ERR_SHIFT)) & EMVSIM_RX_STATUS_BGT_ERR_MASK)
+#define EMVSIM_RX_STATUS_PEF_MASK                (0x1000U)
+#define EMVSIM_RX_STATUS_PEF_SHIFT               (12U)
+/*! PEF - Parity Error Flag
+ *  0b0..No parity error detected
+ *  0b1..Parity error detected
+ */
+#define EMVSIM_RX_STATUS_PEF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_PEF_SHIFT)) & EMVSIM_RX_STATUS_PEF_MASK)
+#define EMVSIM_RX_STATUS_FEF_MASK                (0x2000U)
+#define EMVSIM_RX_STATUS_FEF_SHIFT               (13U)
+/*! FEF - Frame Error Flag
+ *  0b0..No frame error detected
+ *  0b1..Frame error detected
+ */
+#define EMVSIM_RX_STATUS_FEF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_FEF_SHIFT)) & EMVSIM_RX_STATUS_FEF_MASK)
+#define EMVSIM_RX_STATUS_RX_WPTR_MASK            (0xF0000U)
+#define EMVSIM_RX_STATUS_RX_WPTR_SHIFT           (16U)
+#define EMVSIM_RX_STATUS_RX_WPTR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_WPTR_SHIFT)) & EMVSIM_RX_STATUS_RX_WPTR_MASK)
+#define EMVSIM_RX_STATUS_RX_CNT_MASK             (0xF000000U)
+#define EMVSIM_RX_STATUS_RX_CNT_SHIFT            (24U)
+/*! RX_CNT - Receive FIFO Byte Count
+ *  0b0000..FIFO is emtpy
+ */
+#define EMVSIM_RX_STATUS_RX_CNT(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_CNT_SHIFT)) & EMVSIM_RX_STATUS_RX_CNT_MASK)
+/*! @} */
+
+/*! @name TX_STATUS - Transmitter Status Register */
+/*! @{ */
+#define EMVSIM_TX_STATUS_TNTE_MASK               (0x1U)
+#define EMVSIM_TX_STATUS_TNTE_SHIFT              (0U)
+/*! TNTE - Transmit NACK Threshold Error Flag
+ *  0b0..Transmit NACK threshold has not been reached (default)
+ *  0b1..Transmit NACK threshold reached; transmitter frozen
+ */
+#define EMVSIM_TX_STATUS_TNTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TNTE_SHIFT)) & EMVSIM_TX_STATUS_TNTE_MASK)
+#define EMVSIM_TX_STATUS_TFE_MASK                (0x8U)
+#define EMVSIM_TX_STATUS_TFE_SHIFT               (3U)
+/*! TFE - Transmit FIFO Empty Flag
+ *  0b0..Transmit FIFO is not empty
+ *  0b1..Transmit FIFO is empty (default)
+ */
+#define EMVSIM_TX_STATUS_TFE(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TFE_SHIFT)) & EMVSIM_TX_STATUS_TFE_MASK)
+#define EMVSIM_TX_STATUS_ETCF_MASK               (0x10U)
+#define EMVSIM_TX_STATUS_ETCF_SHIFT              (4U)
+/*! ETCF - Early Transmit Complete Flag
+ *  0b0..Transmit pending or in progress
+ *  0b1..Transmit complete (default)
+ */
+#define EMVSIM_TX_STATUS_ETCF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_ETCF_SHIFT)) & EMVSIM_TX_STATUS_ETCF_MASK)
+#define EMVSIM_TX_STATUS_TCF_MASK                (0x20U)
+#define EMVSIM_TX_STATUS_TCF_SHIFT               (5U)
+/*! TCF - Transmit Complete Flag
+ *  0b0..Transmit pending or in progress
+ *  0b1..Transmit complete (default)
+ */
+#define EMVSIM_TX_STATUS_TCF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TCF_SHIFT)) & EMVSIM_TX_STATUS_TCF_MASK)
+#define EMVSIM_TX_STATUS_TFF_MASK                (0x40U)
+#define EMVSIM_TX_STATUS_TFF_SHIFT               (6U)
+/*! TFF - Transmit FIFO Full Flag
+ *  0b0..Transmit FIFO Full condition has not occurred (default)
+ *  0b1..A Transmit FIFO Full condition has occurred
+ */
+#define EMVSIM_TX_STATUS_TFF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TFF_SHIFT)) & EMVSIM_TX_STATUS_TFF_MASK)
+#define EMVSIM_TX_STATUS_TDTF_MASK               (0x80U)
+#define EMVSIM_TX_STATUS_TDTF_SHIFT              (7U)
+/*! TDTF - Transmit Data Threshold Flag
+ *  0b0..Number of bytes in FIFO is greater than TDT[3:0], or bit has been cleared
+ *  0b1..Number of bytes in FIFO is less than or equal to TDT[3:0] (default)
+ */
+#define EMVSIM_TX_STATUS_TDTF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TDTF_SHIFT)) & EMVSIM_TX_STATUS_TDTF_MASK)
+#define EMVSIM_TX_STATUS_GPCNT0_TO_MASK          (0x100U)
+#define EMVSIM_TX_STATUS_GPCNT0_TO_SHIFT         (8U)
+/*! GPCNT0_TO - General Purpose Counter 0 Timeout Flag
+ *  0b0..GPCNT0_VAL time not reached, or bit has been cleared. (default)
+ *  0b1..General Purpose counter has reached the GPCNT0_VAL value
+ */
+#define EMVSIM_TX_STATUS_GPCNT0_TO(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_GPCNT0_TO_SHIFT)) & EMVSIM_TX_STATUS_GPCNT0_TO_MASK)
+#define EMVSIM_TX_STATUS_GPCNT1_TO_MASK          (0x200U)
+#define EMVSIM_TX_STATUS_GPCNT1_TO_SHIFT         (9U)
+/*! GPCNT1_TO - General Purpose Counter 1 Timeout Flag
+ *  0b0..GPCNT1_VAL time not reached, or bit has been cleared. (default)
+ *  0b1..General Purpose counter has reached the GPCNT1_VAL value
+ */
+#define EMVSIM_TX_STATUS_GPCNT1_TO(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_GPCNT1_TO_SHIFT)) & EMVSIM_TX_STATUS_GPCNT1_TO_MASK)
+#define EMVSIM_TX_STATUS_TX_RPTR_MASK            (0xF0000U)
+#define EMVSIM_TX_STATUS_TX_RPTR_SHIFT           (16U)
+#define EMVSIM_TX_STATUS_TX_RPTR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TX_RPTR_SHIFT)) & EMVSIM_TX_STATUS_TX_RPTR_MASK)
+#define EMVSIM_TX_STATUS_TX_CNT_MASK             (0xF000000U)
+#define EMVSIM_TX_STATUS_TX_CNT_SHIFT            (24U)
+/*! TX_CNT - Transmit FIFO Byte Count
+ *  0b0000..FIFO is emtpy
+ */
+#define EMVSIM_TX_STATUS_TX_CNT(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TX_CNT_SHIFT)) & EMVSIM_TX_STATUS_TX_CNT_MASK)
+/*! @} */
+
+/*! @name PCSR - Port Control and Status Register */
+/*! @{ */
+#define EMVSIM_PCSR_SAPD_MASK                    (0x1U)
+#define EMVSIM_PCSR_SAPD_SHIFT                   (0U)
+/*! SAPD - Auto Power Down Enable
+ *  0b0..Auto power down disabled (default)
+ *  0b1..Auto power down enabled
+ */
+#define EMVSIM_PCSR_SAPD(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SAPD_SHIFT)) & EMVSIM_PCSR_SAPD_MASK)
+#define EMVSIM_PCSR_SVCC_EN_MASK                 (0x2U)
+#define EMVSIM_PCSR_SVCC_EN_SHIFT                (1U)
+/*! SVCC_EN - Vcc Enable for Smart Card
+ *  0b0..Smart Card Voltage disabled (default)
+ *  0b1..Smart Card Voltage enabled
+ */
+#define EMVSIM_PCSR_SVCC_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SVCC_EN_SHIFT)) & EMVSIM_PCSR_SVCC_EN_MASK)
+#define EMVSIM_PCSR_VCCENP_MASK                  (0x4U)
+#define EMVSIM_PCSR_VCCENP_SHIFT                 (2U)
+/*! VCCENP - VCC Enable Polarity Control
+ *  0b0..VCC_EN is active high. Polarity of SVCC_EN is unchanged.
+ *  0b1..VCC_EN is active low. Polarity of SVCC_EN is inverted.
+ */
+#define EMVSIM_PCSR_VCCENP(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_VCCENP_SHIFT)) & EMVSIM_PCSR_VCCENP_MASK)
+#define EMVSIM_PCSR_SRST_MASK                    (0x8U)
+#define EMVSIM_PCSR_SRST_SHIFT                   (3U)
+/*! SRST - Reset to Smart Card
+ *  0b0..Smart Card Reset is asserted (default)
+ *  0b1..Smart Card Reset is de-asserted
+ */
+#define EMVSIM_PCSR_SRST(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SRST_SHIFT)) & EMVSIM_PCSR_SRST_MASK)
+#define EMVSIM_PCSR_SCEN_MASK                    (0x10U)
+#define EMVSIM_PCSR_SCEN_SHIFT                   (4U)
+/*! SCEN - Clock Enable for Smart Card
+ *  0b0..Smart Card Clock Disabled
+ *  0b1..Smart Card Clock Enabled
+ */
+#define EMVSIM_PCSR_SCEN(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SCEN_SHIFT)) & EMVSIM_PCSR_SCEN_MASK)
+#define EMVSIM_PCSR_SCSP_MASK                    (0x20U)
+#define EMVSIM_PCSR_SCSP_SHIFT                   (5U)
+/*! SCSP - Smart Card Clock Stop Polarity
+ *  0b0..Clock is logic 0 when stopped by SCEN
+ *  0b1..Clock is logic 1 when stopped by SCEN
+ */
+#define EMVSIM_PCSR_SCSP(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SCSP_SHIFT)) & EMVSIM_PCSR_SCSP_MASK)
+#define EMVSIM_PCSR_SPD_MASK                     (0x80U)
+#define EMVSIM_PCSR_SPD_SHIFT                    (7U)
+/*! SPD - Auto Power Down Control
+ *  0b0..No effect (default)
+ *  0b1..Start Auto Powerdown or Power Down is in progress
+ */
+#define EMVSIM_PCSR_SPD(x)                       (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPD_SHIFT)) & EMVSIM_PCSR_SPD_MASK)
+#define EMVSIM_PCSR_SPDIM_MASK                   (0x1000000U)
+#define EMVSIM_PCSR_SPDIM_SHIFT                  (24U)
+/*! SPDIM - Smart Card Presence Detect Interrupt Mask
+ *  0b0..SIM presence detect interrupt is enabled
+ *  0b1..SIM presence detect interrupt is masked (default)
+ */
+#define EMVSIM_PCSR_SPDIM(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDIM_SHIFT)) & EMVSIM_PCSR_SPDIM_MASK)
+#define EMVSIM_PCSR_SPDIF_MASK                   (0x2000000U)
+#define EMVSIM_PCSR_SPDIF_SHIFT                  (25U)
+/*! SPDIF - Smart Card Presence Detect Interrupt Flag
+ *  0b0..No insertion or removal of Smart Card detected on Port (default)
+ *  0b1..Insertion or removal of Smart Card detected on Port
+ */
+#define EMVSIM_PCSR_SPDIF(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDIF_SHIFT)) & EMVSIM_PCSR_SPDIF_MASK)
+#define EMVSIM_PCSR_SPDP_MASK                    (0x4000000U)
+#define EMVSIM_PCSR_SPDP_SHIFT                   (26U)
+/*! SPDP - Smart Card Presence Detect Pin Status
+ *  0b0..SIM Presence Detect pin is logic low
+ *  0b1..SIM Presence Detectpin is logic high
+ */
+#define EMVSIM_PCSR_SPDP(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDP_SHIFT)) & EMVSIM_PCSR_SPDP_MASK)
+#define EMVSIM_PCSR_SPDES_MASK                   (0x8000000U)
+#define EMVSIM_PCSR_SPDES_SHIFT                  (27U)
+/*! SPDES - SIM Presence Detect Edge Select
+ *  0b0..Falling edge on the pin (default)
+ *  0b1..Rising edge on the pin
+ */
+#define EMVSIM_PCSR_SPDES(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDES_SHIFT)) & EMVSIM_PCSR_SPDES_MASK)
+/*! @} */
+
+/*! @name RX_BUF - Receive Data Read Buffer */
+/*! @{ */
+#define EMVSIM_RX_BUF_RX_BYTE_MASK               (0xFFU)
+#define EMVSIM_RX_BUF_RX_BYTE_SHIFT              (0U)
+#define EMVSIM_RX_BUF_RX_BYTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_BUF_RX_BYTE_SHIFT)) & EMVSIM_RX_BUF_RX_BYTE_MASK)
+/*! @} */
+
+/*! @name TX_BUF - Transmit Data Buffer */
+/*! @{ */
+#define EMVSIM_TX_BUF_TX_BYTE_MASK               (0xFFU)
+#define EMVSIM_TX_BUF_TX_BYTE_SHIFT              (0U)
+#define EMVSIM_TX_BUF_TX_BYTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_BUF_TX_BYTE_SHIFT)) & EMVSIM_TX_BUF_TX_BYTE_MASK)
+/*! @} */
+
+/*! @name TX_GETU - Transmitter Guard ETU Value Register */
+/*! @{ */
+#define EMVSIM_TX_GETU_GETU_MASK                 (0xFFU)
+#define EMVSIM_TX_GETU_GETU_SHIFT                (0U)
+/*! GETU - Transmitter Guard Time Value in ETU
+ *  0b00000000..no additional ETUs inserted (default)
+ *  0b00000001..1 additional ETU inserted
+ *  0b11111110..254 additional ETUs inserted
+ *  0b11111111..Subtracts one ETU by reducing the number of STOP bits from two to one
+ */
+#define EMVSIM_TX_GETU_GETU(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_GETU_GETU_SHIFT)) & EMVSIM_TX_GETU_GETU_MASK)
+/*! @} */
+
+/*! @name CWT_VAL - Character Wait Time Value Register */
+/*! @{ */
+#define EMVSIM_CWT_VAL_CWT_MASK                  (0xFFFFU)
+#define EMVSIM_CWT_VAL_CWT_SHIFT                 (0U)
+#define EMVSIM_CWT_VAL_CWT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CWT_VAL_CWT_SHIFT)) & EMVSIM_CWT_VAL_CWT_MASK)
+/*! @} */
+
+/*! @name BWT_VAL - Block Wait Time Value Register */
+/*! @{ */
+#define EMVSIM_BWT_VAL_BWT_MASK                  (0xFFFFFFFFU)
+#define EMVSIM_BWT_VAL_BWT_SHIFT                 (0U)
+#define EMVSIM_BWT_VAL_BWT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_BWT_VAL_BWT_SHIFT)) & EMVSIM_BWT_VAL_BWT_MASK)
+/*! @} */
+
+/*! @name BGT_VAL - Block Guard Time Value Register */
+/*! @{ */
+#define EMVSIM_BGT_VAL_BGT_MASK                  (0xFFFFU)
+#define EMVSIM_BGT_VAL_BGT_SHIFT                 (0U)
+#define EMVSIM_BGT_VAL_BGT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_BGT_VAL_BGT_SHIFT)) & EMVSIM_BGT_VAL_BGT_MASK)
+/*! @} */
+
+/*! @name GPCNT0_VAL - General Purpose Counter 0 Timeout Value Register */
+/*! @{ */
+#define EMVSIM_GPCNT0_VAL_GPCNT0_MASK            (0xFFFFU)
+#define EMVSIM_GPCNT0_VAL_GPCNT0_SHIFT           (0U)
+#define EMVSIM_GPCNT0_VAL_GPCNT0(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_GPCNT0_VAL_GPCNT0_SHIFT)) & EMVSIM_GPCNT0_VAL_GPCNT0_MASK)
+/*! @} */
+
+/*! @name GPCNT1_VAL - General Purpose Counter 1 Timeout Value */
+/*! @{ */
+#define EMVSIM_GPCNT1_VAL_GPCNT1_MASK            (0xFFFFU)
+#define EMVSIM_GPCNT1_VAL_GPCNT1_SHIFT           (0U)
+#define EMVSIM_GPCNT1_VAL_GPCNT1(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_GPCNT1_VAL_GPCNT1_SHIFT)) & EMVSIM_GPCNT1_VAL_GPCNT1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EMVSIM_Register_Masks */
+
+
+/* EMVSIM - Peripheral instance base addresses */
+/** Peripheral EMVSIM0 base address */
+#define EMVSIM0_BASE                             (0x40038000u)
+/** Peripheral EMVSIM0 base pointer */
+#define EMVSIM0                                  ((EMVSIM_Type *)EMVSIM0_BASE)
+/** Array initializer of EMVSIM peripheral base addresses */
+#define EMVSIM_BASE_ADDRS                        { EMVSIM0_BASE }
+/** Array initializer of EMVSIM peripheral base pointers */
+#define EMVSIM_BASE_PTRS                         { EMVSIM0 }
+/** Interrupt vectors for the EMVSIM peripheral type */
+#define EMVSIM_IRQS                              { EMVSIM0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group EMVSIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EVENT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EVENT_Peripheral_Access_Layer EVENT Peripheral Access Layer
+ * @{
+ */
+
+/** EVENT - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t INTPTEN;                           /**< Interrupt Enable Register, offset: 0x0 */
+  __IO uint32_t INTPTPEND;                         /**< Interrupt Pengding Register, offset: 0x4 */
+  __IO uint32_t INTPTPENDSET;                      /**< Set Interrupt Pengding Register, offset: 0x8 */
+  __IO uint32_t INTPTPENDCLEAR;                    /**< Clear Interrupt Pengding Register, offset: 0xC */
+  __IO uint32_t INTPTSECURE;                       /**< Interrupt Secure Register, offset: 0x10 */
+  __IO uint32_t INTPTPRI[4];                       /**< Interrupt Priority 0 Register..Interrupt Priority 3 Register, array offset: 0x14, array step: 0x4 */
+  __IO uint32_t INTPRIBASE;                        /**< Interrupt Priority Base, offset: 0x24 */
+  __I  uint32_t INTPTENACTIVE;                     /**< Interrupt Active Register, offset: 0x28 */
+  __I  uint32_t INTACTPRI[4];                      /**< Interrupt Active Priority 0 Register..Interrupt Active Priority 3 Register, array offset: 0x2C, array step: 0x4 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t EVENTEN;                           /**< Event Enable Register, offset: 0x40 */
+  __IO uint32_t EVENTPEND;                         /**< Event Pengding Register, offset: 0x44 */
+  __IO uint32_t EVTPENDSET;                        /**< Set Event Pengding Register, offset: 0x48 */
+  __IO uint32_t EVTPENDCLEAR;                      /**< Clear Event Pengding Register, offset: 0x4C */
+       uint8_t RESERVED_1[48];
+  __IO uint32_t SLPCTRL;                           /**< Sleep Control Register, offset: 0x80 */
+  __IO uint32_t SLPSTATUS;                         /**< Sleep Status Register, offset: 0x84 */
+} EVENT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EVENT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EVENT_Register_Masks EVENT Register Masks
+ * @{
+ */
+
+/*! @name INTPTEN - Interrupt Enable Register */
+/*! @{ */
+#define EVENT_INTPTEN_IEN_MASK                   (0xFFFFFFFFU)
+#define EVENT_INTPTEN_IEN_SHIFT                  (0U)
+/*! IEN - Interrupt n Enable
+ *  0b00000000000000000000000000000000..Interrupt n is disabled.
+ *  0b00000000000000000000000000000001..Interrupt n is enabled.
+ */
+#define EVENT_INTPTEN_IEN(x)                     (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTEN_IEN_SHIFT)) & EVENT_INTPTEN_IEN_MASK)
+/*! @} */
+
+/*! @name INTPTPEND - Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPEND_IPEND_MASK               (0xFFFFFFFFU)
+#define EVENT_INTPTPEND_IPEND_SHIFT              (0U)
+/*! IPEND - Interrupt n Pending
+ *  0b00000000000000000000000000000000..Interrupt n is not pending.
+ *  0b00000000000000000000000000000001..Interrupt n is pending.
+ */
+#define EVENT_INTPTPEND_IPEND(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPEND_IPEND_SHIFT)) & EVENT_INTPTPEND_IPEND_MASK)
+/*! @} */
+
+/*! @name INTPTPENDSET - Set Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPENDSET_IPENDSET_MASK         (0xFFFFFFFFU)
+#define EVENT_INTPTPENDSET_IPENDSET_SHIFT        (0U)
+/*! IPENDSET - Set Interrupt n Pending
+ *  0b00000000000000000000000000000000..Not set interrupt n in pending status
+ *  0b00000000000000000000000000000001..Set interrupt n in pending status.
+ */
+#define EVENT_INTPTPENDSET_IPENDSET(x)           (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPENDSET_IPENDSET_SHIFT)) & EVENT_INTPTPENDSET_IPENDSET_MASK)
+/*! @} */
+
+/*! @name INTPTPENDCLEAR - Clear Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR_MASK     (0xFFFFFFFFU)
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR_SHIFT    (0U)
+/*! IPENDCLEAR - Clear Interrupt n out of Pending
+ *  0b00000000000000000000000000000000..Not clear interrupt n out of pending status
+ *  0b00000000000000000000000000000001..Clear interrupt n out of pending status.
+ */
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR(x)       (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPENDCLEAR_IPENDCLEAR_SHIFT)) & EVENT_INTPTPENDCLEAR_IPENDCLEAR_MASK)
+/*! @} */
+
+/*! @name INTPTSECURE - Interrupt Secure Register */
+/*! @{ */
+#define EVENT_INTPTSECURE_ISECURE_MASK           (0xFFFFFFFFU)
+#define EVENT_INTPTSECURE_ISECURE_SHIFT          (0U)
+/*! ISECURE - Set secure feature of Interrupt n
+ *  0b00000000000000000000000000000000..Set interrupt n out of security
+ *  0b00000000000000000000000000000001..Set interrupt n in secruity.
+ */
+#define EVENT_INTPTSECURE_ISECURE(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTSECURE_ISECURE_SHIFT)) & EVENT_INTPTSECURE_ISECURE_MASK)
+/*! @} */
+
+/*! @name INTPTPRI - Interrupt Priority 0 Register..Interrupt Priority 3 Register */
+/*! @{ */
+#define EVENT_INTPTPRI_IPRI0_MASK                (0x7U)
+#define EVENT_INTPTPRI_IPRI0_SHIFT               (0U)
+#define EVENT_INTPTPRI_IPRI0(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI0_SHIFT)) & EVENT_INTPTPRI_IPRI0_MASK)
+#define EVENT_INTPTPRI_IPRI8_MASK                (0x7U)
+#define EVENT_INTPTPRI_IPRI8_SHIFT               (0U)
+#define EVENT_INTPTPRI_IPRI8(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI8_SHIFT)) & EVENT_INTPTPRI_IPRI8_MASK)
+#define EVENT_INTPTPRI_IPRI16_MASK               (0x7U)
+#define EVENT_INTPTPRI_IPRI16_SHIFT              (0U)
+#define EVENT_INTPTPRI_IPRI16(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI16_SHIFT)) & EVENT_INTPTPRI_IPRI16_MASK)
+#define EVENT_INTPTPRI_IPRI24_MASK               (0x7U)
+#define EVENT_INTPTPRI_IPRI24_SHIFT              (0U)
+#define EVENT_INTPTPRI_IPRI24(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI24_SHIFT)) & EVENT_INTPTPRI_IPRI24_MASK)
+#define EVENT_INTPTPRI_IPRI1_MASK                (0x70U)
+#define EVENT_INTPTPRI_IPRI1_SHIFT               (4U)
+#define EVENT_INTPTPRI_IPRI1(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI1_SHIFT)) & EVENT_INTPTPRI_IPRI1_MASK)
+#define EVENT_INTPTPRI_IPRI9_MASK                (0x70U)
+#define EVENT_INTPTPRI_IPRI9_SHIFT               (4U)
+#define EVENT_INTPTPRI_IPRI9(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI9_SHIFT)) & EVENT_INTPTPRI_IPRI9_MASK)
+#define EVENT_INTPTPRI_IPRI17_MASK               (0x70U)
+#define EVENT_INTPTPRI_IPRI17_SHIFT              (4U)
+#define EVENT_INTPTPRI_IPRI17(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI17_SHIFT)) & EVENT_INTPTPRI_IPRI17_MASK)
+#define EVENT_INTPTPRI_IPRI25_MASK               (0x70U)
+#define EVENT_INTPTPRI_IPRI25_SHIFT              (4U)
+#define EVENT_INTPTPRI_IPRI25(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI25_SHIFT)) & EVENT_INTPTPRI_IPRI25_MASK)
+#define EVENT_INTPTPRI_IPRI2_MASK                (0x700U)
+#define EVENT_INTPTPRI_IPRI2_SHIFT               (8U)
+#define EVENT_INTPTPRI_IPRI2(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI2_SHIFT)) & EVENT_INTPTPRI_IPRI2_MASK)
+#define EVENT_INTPTPRI_IPRI10_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI10_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI10(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI10_SHIFT)) & EVENT_INTPTPRI_IPRI10_MASK)
+#define EVENT_INTPTPRI_IPRI18_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI18_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI18(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI18_SHIFT)) & EVENT_INTPTPRI_IPRI18_MASK)
+#define EVENT_INTPTPRI_IPRI26_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI26_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI26(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI26_SHIFT)) & EVENT_INTPTPRI_IPRI26_MASK)
+#define EVENT_INTPTPRI_IPRI3_MASK                (0x7000U)
+#define EVENT_INTPTPRI_IPRI3_SHIFT               (12U)
+#define EVENT_INTPTPRI_IPRI3(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI3_SHIFT)) & EVENT_INTPTPRI_IPRI3_MASK)
+#define EVENT_INTPTPRI_IPRI11_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI11_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI11(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI11_SHIFT)) & EVENT_INTPTPRI_IPRI11_MASK)
+#define EVENT_INTPTPRI_IPRI19_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI19_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI19(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI19_SHIFT)) & EVENT_INTPTPRI_IPRI19_MASK)
+#define EVENT_INTPTPRI_IPRI27_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI27_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI27(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI27_SHIFT)) & EVENT_INTPTPRI_IPRI27_MASK)
+#define EVENT_INTPTPRI_IPRI4_MASK                (0x70000U)
+#define EVENT_INTPTPRI_IPRI4_SHIFT               (16U)
+#define EVENT_INTPTPRI_IPRI4(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI4_SHIFT)) & EVENT_INTPTPRI_IPRI4_MASK)
+#define EVENT_INTPTPRI_IPRI12_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI12_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI12(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI12_SHIFT)) & EVENT_INTPTPRI_IPRI12_MASK)
+#define EVENT_INTPTPRI_IPRI20_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI20_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI20(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI20_SHIFT)) & EVENT_INTPTPRI_IPRI20_MASK)
+#define EVENT_INTPTPRI_IPRI28_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI28_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI28(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI28_SHIFT)) & EVENT_INTPTPRI_IPRI28_MASK)
+#define EVENT_INTPTPRI_IPRI5_MASK                (0x700000U)
+#define EVENT_INTPTPRI_IPRI5_SHIFT               (20U)
+#define EVENT_INTPTPRI_IPRI5(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI5_SHIFT)) & EVENT_INTPTPRI_IPRI5_MASK)
+#define EVENT_INTPTPRI_IPRI13_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI13_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI13(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI13_SHIFT)) & EVENT_INTPTPRI_IPRI13_MASK)
+#define EVENT_INTPTPRI_IPRI21_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI21_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI21(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI21_SHIFT)) & EVENT_INTPTPRI_IPRI21_MASK)
+#define EVENT_INTPTPRI_IPRI29_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI29_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI29(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI29_SHIFT)) & EVENT_INTPTPRI_IPRI29_MASK)
+#define EVENT_INTPTPRI_IPRI6_MASK                (0x7000000U)
+#define EVENT_INTPTPRI_IPRI6_SHIFT               (24U)
+#define EVENT_INTPTPRI_IPRI6(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI6_SHIFT)) & EVENT_INTPTPRI_IPRI6_MASK)
+#define EVENT_INTPTPRI_IPRI14_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI14_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI14(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI14_SHIFT)) & EVENT_INTPTPRI_IPRI14_MASK)
+#define EVENT_INTPTPRI_IPRI22_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI22_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI22(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI22_SHIFT)) & EVENT_INTPTPRI_IPRI22_MASK)
+#define EVENT_INTPTPRI_IPRI30_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI30_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI30(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI30_SHIFT)) & EVENT_INTPTPRI_IPRI30_MASK)
+#define EVENT_INTPTPRI_IPRI7_MASK                (0x70000000U)
+#define EVENT_INTPTPRI_IPRI7_SHIFT               (28U)
+#define EVENT_INTPTPRI_IPRI7(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI7_SHIFT)) & EVENT_INTPTPRI_IPRI7_MASK)
+#define EVENT_INTPTPRI_IPRI15_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI15_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI15(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI15_SHIFT)) & EVENT_INTPTPRI_IPRI15_MASK)
+#define EVENT_INTPTPRI_IPRI23_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI23_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI23(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI23_SHIFT)) & EVENT_INTPTPRI_IPRI23_MASK)
+#define EVENT_INTPTPRI_IPRI31_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI31_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI31(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI31_SHIFT)) & EVENT_INTPTPRI_IPRI31_MASK)
+/*! @} */
+
+/* The count of EVENT_INTPTPRI */
+#define EVENT_INTPTPRI_COUNT                     (4U)
+
+/*! @name INTPRIBASE - Interrupt Priority Base */
+/*! @{ */
+#define EVENT_INTPRIBASE_IPBASE_MASK             (0xFU)
+#define EVENT_INTPRIBASE_IPBASE_SHIFT            (0U)
+#define EVENT_INTPRIBASE_IPBASE(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTPRIBASE_IPBASE_SHIFT)) & EVENT_INTPRIBASE_IPBASE_MASK)
+/*! @} */
+
+/*! @name INTPTENACTIVE - Interrupt Active Register */
+/*! @{ */
+#define EVENT_INTPTENACTIVE_IACTIVE_MASK         (0xFFFFFFFFU)
+#define EVENT_INTPTENACTIVE_IACTIVE_SHIFT        (0U)
+/*! IACTIVE - Interrupt n Enable
+ *  0b00000000000000000000000000000000..Interrupt n is not active.
+ *  0b00000000000000000000000000000001..Interrupt n is active..
+ */
+#define EVENT_INTPTENACTIVE_IACTIVE(x)           (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTENACTIVE_IACTIVE_SHIFT)) & EVENT_INTPTENACTIVE_IACTIVE_MASK)
+/*! @} */
+
+/*! @name INTACTPRI - Interrupt Active Priority 0 Register..Interrupt Active Priority 3 Register */
+/*! @{ */
+#define EVENT_INTACTPRI_IAPRI0_MASK              (0x7U)
+#define EVENT_INTACTPRI_IAPRI0_SHIFT             (0U)
+#define EVENT_INTACTPRI_IAPRI0(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI0_SHIFT)) & EVENT_INTACTPRI_IAPRI0_MASK)
+#define EVENT_INTACTPRI_IAPRI8_MASK              (0x7U)
+#define EVENT_INTACTPRI_IAPRI8_SHIFT             (0U)
+#define EVENT_INTACTPRI_IAPRI8(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI8_SHIFT)) & EVENT_INTACTPRI_IAPRI8_MASK)
+#define EVENT_INTACTPRI_IAPRI16_MASK             (0x7U)
+#define EVENT_INTACTPRI_IAPRI16_SHIFT            (0U)
+#define EVENT_INTACTPRI_IAPRI16(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI16_SHIFT)) & EVENT_INTACTPRI_IAPRI16_MASK)
+#define EVENT_INTACTPRI_IAPRI24_MASK             (0x7U)
+#define EVENT_INTACTPRI_IAPRI24_SHIFT            (0U)
+#define EVENT_INTACTPRI_IAPRI24(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI24_SHIFT)) & EVENT_INTACTPRI_IAPRI24_MASK)
+#define EVENT_INTACTPRI_IAPRI1_MASK              (0x70U)
+#define EVENT_INTACTPRI_IAPRI1_SHIFT             (4U)
+#define EVENT_INTACTPRI_IAPRI1(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI1_SHIFT)) & EVENT_INTACTPRI_IAPRI1_MASK)
+#define EVENT_INTACTPRI_IAPRI9_MASK              (0x70U)
+#define EVENT_INTACTPRI_IAPRI9_SHIFT             (4U)
+#define EVENT_INTACTPRI_IAPRI9(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI9_SHIFT)) & EVENT_INTACTPRI_IAPRI9_MASK)
+#define EVENT_INTACTPRI_IAPRI17_MASK             (0x70U)
+#define EVENT_INTACTPRI_IAPRI17_SHIFT            (4U)
+#define EVENT_INTACTPRI_IAPRI17(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI17_SHIFT)) & EVENT_INTACTPRI_IAPRI17_MASK)
+#define EVENT_INTACTPRI_IAPRI25_MASK             (0x70U)
+#define EVENT_INTACTPRI_IAPRI25_SHIFT            (4U)
+#define EVENT_INTACTPRI_IAPRI25(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI25_SHIFT)) & EVENT_INTACTPRI_IAPRI25_MASK)
+#define EVENT_INTACTPRI_IAPRI2_MASK              (0x700U)
+#define EVENT_INTACTPRI_IAPRI2_SHIFT             (8U)
+#define EVENT_INTACTPRI_IAPRI2(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI2_SHIFT)) & EVENT_INTACTPRI_IAPRI2_MASK)
+#define EVENT_INTACTPRI_IAPRI10_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI10_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI10(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI10_SHIFT)) & EVENT_INTACTPRI_IAPRI10_MASK)
+#define EVENT_INTACTPRI_IAPRI18_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI18_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI18(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI18_SHIFT)) & EVENT_INTACTPRI_IAPRI18_MASK)
+#define EVENT_INTACTPRI_IAPRI26_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI26_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI26(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI26_SHIFT)) & EVENT_INTACTPRI_IAPRI26_MASK)
+#define EVENT_INTACTPRI_IAPRI3_MASK              (0x7000U)
+#define EVENT_INTACTPRI_IAPRI3_SHIFT             (12U)
+#define EVENT_INTACTPRI_IAPRI3(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI3_SHIFT)) & EVENT_INTACTPRI_IAPRI3_MASK)
+#define EVENT_INTACTPRI_IAPRI11_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI11_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI11(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI11_SHIFT)) & EVENT_INTACTPRI_IAPRI11_MASK)
+#define EVENT_INTACTPRI_IAPRI19_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI19_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI19(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI19_SHIFT)) & EVENT_INTACTPRI_IAPRI19_MASK)
+#define EVENT_INTACTPRI_IAPRI27_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI27_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI27(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI27_SHIFT)) & EVENT_INTACTPRI_IAPRI27_MASK)
+#define EVENT_INTACTPRI_IAPRI4_MASK              (0x70000U)
+#define EVENT_INTACTPRI_IAPRI4_SHIFT             (16U)
+#define EVENT_INTACTPRI_IAPRI4(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI4_SHIFT)) & EVENT_INTACTPRI_IAPRI4_MASK)
+#define EVENT_INTACTPRI_IAPRI12_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI12_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI12(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI12_SHIFT)) & EVENT_INTACTPRI_IAPRI12_MASK)
+#define EVENT_INTACTPRI_IAPRI20_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI20_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI20(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI20_SHIFT)) & EVENT_INTACTPRI_IAPRI20_MASK)
+#define EVENT_INTACTPRI_IAPRI28_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI28_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI28(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI28_SHIFT)) & EVENT_INTACTPRI_IAPRI28_MASK)
+#define EVENT_INTACTPRI_IAPRI5_MASK              (0x700000U)
+#define EVENT_INTACTPRI_IAPRI5_SHIFT             (20U)
+#define EVENT_INTACTPRI_IAPRI5(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI5_SHIFT)) & EVENT_INTACTPRI_IAPRI5_MASK)
+#define EVENT_INTACTPRI_IAPRI13_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI13_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI13(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI13_SHIFT)) & EVENT_INTACTPRI_IAPRI13_MASK)
+#define EVENT_INTACTPRI_IAPRI21_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI21_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI21(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI21_SHIFT)) & EVENT_INTACTPRI_IAPRI21_MASK)
+#define EVENT_INTACTPRI_IAPRI29_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI29_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI29(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI29_SHIFT)) & EVENT_INTACTPRI_IAPRI29_MASK)
+#define EVENT_INTACTPRI_IAPRI6_MASK              (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI6_SHIFT             (24U)
+#define EVENT_INTACTPRI_IAPRI6(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI6_SHIFT)) & EVENT_INTACTPRI_IAPRI6_MASK)
+#define EVENT_INTACTPRI_IAPRI14_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI14_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI14(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI14_SHIFT)) & EVENT_INTACTPRI_IAPRI14_MASK)
+#define EVENT_INTACTPRI_IAPRI22_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI22_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI22(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI22_SHIFT)) & EVENT_INTACTPRI_IAPRI22_MASK)
+#define EVENT_INTACTPRI_IAPRI30_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI30_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI30(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI30_SHIFT)) & EVENT_INTACTPRI_IAPRI30_MASK)
+#define EVENT_INTACTPRI_IAPRI7_MASK              (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI7_SHIFT             (28U)
+#define EVENT_INTACTPRI_IAPRI7(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI7_SHIFT)) & EVENT_INTACTPRI_IAPRI7_MASK)
+#define EVENT_INTACTPRI_IAPRI15_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI15_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI15(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI15_SHIFT)) & EVENT_INTACTPRI_IAPRI15_MASK)
+#define EVENT_INTACTPRI_IAPRI23_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI23_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI23(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI23_SHIFT)) & EVENT_INTACTPRI_IAPRI23_MASK)
+#define EVENT_INTACTPRI_IAPRI31_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI31_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI31(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI31_SHIFT)) & EVENT_INTACTPRI_IAPRI31_MASK)
+/*! @} */
+
+/* The count of EVENT_INTACTPRI */
+#define EVENT_INTACTPRI_COUNT                    (4U)
+
+/*! @name EVENTEN - Event Enable Register */
+/*! @{ */
+#define EVENT_EVENTEN_EEN_MASK                   (0xFFFFFFFFU)
+#define EVENT_EVENTEN_EEN_SHIFT                  (0U)
+/*! EEN - Event n Enable
+ *  0b00000000000000000000000000000000..Event n is disabled.
+ *  0b00000000000000000000000000000001..Event n is enabled.
+ */
+#define EVENT_EVENTEN_EEN(x)                     (((uint32_t)(((uint32_t)(x)) << EVENT_EVENTEN_EEN_SHIFT)) & EVENT_EVENTEN_EEN_MASK)
+/*! @} */
+
+/*! @name EVENTPEND - Event Pengding Register */
+/*! @{ */
+#define EVENT_EVENTPEND_EPEND_MASK               (0xFFFFFFFFU)
+#define EVENT_EVENTPEND_EPEND_SHIFT              (0U)
+/*! EPEND - Event n Pending
+ *  0b00000000000000000000000000000000..Event n is not pending.
+ *  0b00000000000000000000000000000001..Event n is pending.
+ */
+#define EVENT_EVENTPEND_EPEND(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_EVENTPEND_EPEND_SHIFT)) & EVENT_EVENTPEND_EPEND_MASK)
+/*! @} */
+
+/*! @name EVTPENDSET - Set Event Pengding Register */
+/*! @{ */
+#define EVENT_EVTPENDSET_EPENDSET_MASK           (0xFFFFFFFFU)
+#define EVENT_EVTPENDSET_EPENDSET_SHIFT          (0U)
+/*! EPENDSET - Set Event n Pending
+ *  0b00000000000000000000000000000000..Not set event n in pending status
+ *  0b00000000000000000000000000000001..Set event n in pending status.
+ */
+#define EVENT_EVTPENDSET_EPENDSET(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_EVTPENDSET_EPENDSET_SHIFT)) & EVENT_EVTPENDSET_EPENDSET_MASK)
+/*! @} */
+
+/*! @name EVTPENDCLEAR - Clear Event Pengding Register */
+/*! @{ */
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR_MASK       (0xFFFFFFFFU)
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR_SHIFT      (0U)
+/*! EPENDCLEAR - Clear Event n out of Pending
+ *  0b00000000000000000000000000000000..Not clear event n out of pending status
+ *  0b00000000000000000000000000000001..Clear event n out of pending status.
+ */
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR(x)         (((uint32_t)(((uint32_t)(x)) << EVENT_EVTPENDCLEAR_EPENDCLEAR_SHIFT)) & EVENT_EVTPENDCLEAR_EPENDCLEAR_MASK)
+/*! @} */
+
+/*! @name SLPCTRL - Sleep Control Register */
+/*! @{ */
+#define EVENT_SLPCTRL_SLPCTRL_MASK               (0x3U)
+#define EVENT_SLPCTRL_SLPCTRL_SHIFT              (0U)
+/*! SLPCTRL - Sleep Mode Control
+ *  0b01..Sleep enable
+ *  0b10..Deep sleep enable
+ */
+#define EVENT_SLPCTRL_SLPCTRL(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_SLPCTRL_SLPCTRL_SHIFT)) & EVENT_SLPCTRL_SLPCTRL_MASK)
+#define EVENT_SLPCTRL_SYSRSTREQST_MASK           (0x80000000U)
+#define EVENT_SLPCTRL_SYSRSTREQST_SHIFT          (31U)
+/*! SYSRSTREQST - System Reset Request
+ *  0b0..Do not send system reset request.
+ *  0b1..Send system reset request
+ */
+#define EVENT_SLPCTRL_SYSRSTREQST(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_SLPCTRL_SYSRSTREQST_SHIFT)) & EVENT_SLPCTRL_SYSRSTREQST_MASK)
+/*! @} */
+
+/*! @name SLPSTATUS - Sleep Status Register */
+/*! @{ */
+#define EVENT_SLPSTATUS_SLPSTAT_MASK             (0x3U)
+#define EVENT_SLPSTATUS_SLPSTAT_SHIFT            (0U)
+/*! SLPSTAT - Sleep Status
+ *  0b01..In sleep mode
+ *  0b10..In deep sleep mode
+ */
+#define EVENT_SLPSTATUS_SLPSTAT(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_SLPSTATUS_SLPSTAT_SHIFT)) & EVENT_SLPSTATUS_SLPSTAT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EVENT_Register_Masks */
+
+
+/* EVENT - Peripheral instance base addresses */
+/** Peripheral EVENT0 base address */
+#define EVENT0_BASE                              (0xE0041000u)
+/** Peripheral EVENT0 base pointer */
+#define EVENT0                                   ((EVENT_Type *)EVENT0_BASE)
+/** Array initializer of EVENT peripheral base addresses */
+#define EVENT_BASE_ADDRS                         { EVENT0_BASE }
+/** Array initializer of EVENT peripheral base pointers */
+#define EVENT_BASE_PTRS                          { EVENT0 }
+
+/*!
+ * @}
+ */ /* end of group EVENT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EWM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EWM_Peripheral_Access_Layer EWM Peripheral Access Layer
+ * @{
+ */
+
+/** EWM - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t CTRL;                               /**< Control Register, offset: 0x0 */
+  __O  uint8_t SERV;                               /**< Service Register, offset: 0x1 */
+  __IO uint8_t CMPL;                               /**< Compare Low Register, offset: 0x2 */
+  __IO uint8_t CMPH;                               /**< Compare High Register, offset: 0x3 */
+       uint8_t RESERVED_0[1];
+  __IO uint8_t CLKPRESCALER;                       /**< Clock Prescaler Register, offset: 0x5 */
+} EWM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EWM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EWM_Register_Masks EWM Register Masks
+ * @{
+ */
+
+/*! @name CTRL - Control Register */
+/*! @{ */
+#define EWM_CTRL_EWMEN_MASK                      (0x1U)
+#define EWM_CTRL_EWMEN_SHIFT                     (0U)
+#define EWM_CTRL_EWMEN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_EWMEN_SHIFT)) & EWM_CTRL_EWMEN_MASK)
+#define EWM_CTRL_ASSIN_MASK                      (0x2U)
+#define EWM_CTRL_ASSIN_SHIFT                     (1U)
+#define EWM_CTRL_ASSIN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_ASSIN_SHIFT)) & EWM_CTRL_ASSIN_MASK)
+#define EWM_CTRL_INEN_MASK                       (0x4U)
+#define EWM_CTRL_INEN_SHIFT                      (2U)
+#define EWM_CTRL_INEN(x)                         (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INEN_SHIFT)) & EWM_CTRL_INEN_MASK)
+#define EWM_CTRL_INTEN_MASK                      (0x8U)
+#define EWM_CTRL_INTEN_SHIFT                     (3U)
+#define EWM_CTRL_INTEN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INTEN_SHIFT)) & EWM_CTRL_INTEN_MASK)
+/*! @} */
+
+/*! @name SERV - Service Register */
+/*! @{ */
+#define EWM_SERV_SERVICE_MASK                    (0xFFU)
+#define EWM_SERV_SERVICE_SHIFT                   (0U)
+#define EWM_SERV_SERVICE(x)                      (((uint8_t)(((uint8_t)(x)) << EWM_SERV_SERVICE_SHIFT)) & EWM_SERV_SERVICE_MASK)
+/*! @} */
+
+/*! @name CMPL - Compare Low Register */
+/*! @{ */
+#define EWM_CMPL_COMPAREL_MASK                   (0xFFU)
+#define EWM_CMPL_COMPAREL_SHIFT                  (0U)
+#define EWM_CMPL_COMPAREL(x)                     (((uint8_t)(((uint8_t)(x)) << EWM_CMPL_COMPAREL_SHIFT)) & EWM_CMPL_COMPAREL_MASK)
+/*! @} */
+
+/*! @name CMPH - Compare High Register */
+/*! @{ */
+#define EWM_CMPH_COMPAREH_MASK                   (0xFFU)
+#define EWM_CMPH_COMPAREH_SHIFT                  (0U)
+#define EWM_CMPH_COMPAREH(x)                     (((uint8_t)(((uint8_t)(x)) << EWM_CMPH_COMPAREH_SHIFT)) & EWM_CMPH_COMPAREH_MASK)
+/*! @} */
+
+/*! @name CLKPRESCALER - Clock Prescaler Register */
+/*! @{ */
+#define EWM_CLKPRESCALER_CLK_DIV_MASK            (0xFFU)
+#define EWM_CLKPRESCALER_CLK_DIV_SHIFT           (0U)
+#define EWM_CLKPRESCALER_CLK_DIV(x)              (((uint8_t)(((uint8_t)(x)) << EWM_CLKPRESCALER_CLK_DIV_SHIFT)) & EWM_CLKPRESCALER_CLK_DIV_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EWM_Register_Masks */
+
+
+/* EWM - Peripheral instance base addresses */
+/** Peripheral EWM base address */
+#define EWM_BASE                                 (0x40022000u)
+/** Peripheral EWM base pointer */
+#define EWM                                      ((EWM_Type *)EWM_BASE)
+/** Array initializer of EWM peripheral base addresses */
+#define EWM_BASE_ADDRS                           { EWM_BASE }
+/** Array initializer of EWM peripheral base pointers */
+#define EWM_BASE_PTRS                            { EWM }
+/** Interrupt vectors for the EWM peripheral type */
+#define EWM_IRQS                                 { EWM_IRQn }
+
+/*!
+ * @}
+ */ /* end of group EWM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FB Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FB_Peripheral_Access_Layer FB Peripheral Access Layer
+ * @{
+ */
+
+/** FB - Register Layout Typedef */
+typedef struct {
+  struct {                                         /* offset: 0x0, array step: 0xC */
+    __IO uint32_t CSAR;                              /**< Chip Select Address Register, array offset: 0x0, array step: 0xC */
+    __IO uint32_t CSMR;                              /**< Chip Select Mask Register, array offset: 0x4, array step: 0xC */
+    __IO uint32_t CSCR;                              /**< Chip Select Control Register, array offset: 0x8, array step: 0xC */
+  } CS[6];
+       uint8_t RESERVED_0[24];
+  __IO uint32_t CSPMCR;                            /**< Chip Select Port Multiplexing Control Register, offset: 0x60 */
+} FB_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FB Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FB_Register_Masks FB Register Masks
+ * @{
+ */
+
+/*! @name CSAR - Chip Select Address Register */
+/*! @{ */
+#define FB_CSAR_BA_MASK                          (0xFFFF0000U)
+#define FB_CSAR_BA_SHIFT                         (16U)
+#define FB_CSAR_BA(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSAR_BA_SHIFT)) & FB_CSAR_BA_MASK)
+/*! @} */
+
+/* The count of FB_CSAR */
+#define FB_CSAR_COUNT                            (6U)
+
+/*! @name CSMR - Chip Select Mask Register */
+/*! @{ */
+#define FB_CSMR_V_MASK                           (0x1U)
+#define FB_CSMR_V_SHIFT                          (0U)
+/*! V - Valid
+ *  0b0..Chip-select is invalid.
+ *  0b1..Chip-select is valid.
+ */
+#define FB_CSMR_V(x)                             (((uint32_t)(((uint32_t)(x)) << FB_CSMR_V_SHIFT)) & FB_CSMR_V_MASK)
+#define FB_CSMR_WP_MASK                          (0x100U)
+#define FB_CSMR_WP_SHIFT                         (8U)
+/*! WP - Write Protect
+ *  0b0..Write accesses are allowed.
+ *  0b1..Write accesses are not allowed. Attempting to write to the range of addresses for which the WP bit is set results in a bus error termination of the internal cycle and no external cycle.
+ */
+#define FB_CSMR_WP(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSMR_WP_SHIFT)) & FB_CSMR_WP_MASK)
+#define FB_CSMR_BAM_MASK                         (0xFFFF0000U)
+#define FB_CSMR_BAM_SHIFT                        (16U)
+/*! BAM - Base Address Mask
+ *  0b0000000000000000..The corresponding address bit in CSAR is used in the chip-select decode.
+ *  0b0000000000000001..The corresponding address bit in CSAR is a don't care in the chip-select decode.
+ */
+#define FB_CSMR_BAM(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSMR_BAM_SHIFT)) & FB_CSMR_BAM_MASK)
+/*! @} */
+
+/* The count of FB_CSMR */
+#define FB_CSMR_COUNT                            (6U)
+
+/*! @name CSCR - Chip Select Control Register */
+/*! @{ */
+#define FB_CSCR_BSTW_MASK                        (0x8U)
+#define FB_CSCR_BSTW_SHIFT                       (3U)
+/*! BSTW - Burst-Write Enable
+ *  0b0..Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst writes. For example, a 32-bit write to an 8-bit port takes four byte writes.
+ *  0b1..Enabled. Enables burst write of data larger than the specified port size, including 32-bit writes to 8- and 16-bit ports, 16-bit writes to 8-bit ports, and line writes to 8-, 16-, and 32-bit ports.
+ */
+#define FB_CSCR_BSTW(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTW_SHIFT)) & FB_CSCR_BSTW_MASK)
+#define FB_CSCR_BSTR_MASK                        (0x10U)
+#define FB_CSCR_BSTR_SHIFT                       (4U)
+/*! BSTR - Burst-Read Enable
+ *  0b0..Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst reads. For example, a 32-bit read from an 8-bit port is broken into four 8-bit reads.
+ *  0b1..Enabled. Enables data burst reads larger than the specified port size, including 32-bit reads from 8- and 16-bit ports, 16-bit reads from 8-bit ports, and line reads from 8-, 16-, and 32-bit ports.
+ */
+#define FB_CSCR_BSTR(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTR_SHIFT)) & FB_CSCR_BSTR_MASK)
+#define FB_CSCR_BEM_MASK                         (0x20U)
+#define FB_CSCR_BEM_SHIFT                        (5U)
+/*! BEM - Byte-Enable Mode
+ *  0b0..FB_BE_B is asserted for data write only.
+ *  0b1..FB_BE_B is asserted for data read and write accesses.
+ */
+#define FB_CSCR_BEM(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BEM_SHIFT)) & FB_CSCR_BEM_MASK)
+#define FB_CSCR_PS_MASK                          (0xC0U)
+#define FB_CSCR_PS_SHIFT                         (6U)
+/*! PS - Port Size
+ *  0b00..32-bit port size. Valid data is sampled and driven on FB_D[31:0].
+ *  0b01..8-bit port size. Valid data is sampled and driven on FB_D[31:24] when BLS is 0b, or FB_D[7:0] when BLS is 1b.
+ *  0b1x..16-bit port size. Valid data is sampled and driven on FB_D[31:16] when BLS is 0b, or FB_D[15:0] when BLS is 1b.
+ */
+#define FB_CSCR_PS(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_PS_SHIFT)) & FB_CSCR_PS_MASK)
+#define FB_CSCR_AA_MASK                          (0x100U)
+#define FB_CSCR_AA_SHIFT                         (8U)
+/*! AA - Auto-Acknowledge Enable
+ *  0b0..Disabled. No internal transfer acknowledge is asserted and the cycle is terminated externally.
+ *  0b1..Enabled. Internal transfer acknowledge is asserted as specified by WS.
+ */
+#define FB_CSCR_AA(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_AA_SHIFT)) & FB_CSCR_AA_MASK)
+#define FB_CSCR_BLS_MASK                         (0x200U)
+#define FB_CSCR_BLS_SHIFT                        (9U)
+/*! BLS - Byte-Lane Shift
+ *  0b0..Not shifted. Data is left-aligned on FB_AD.
+ *  0b1..Shifted. Data is right-aligned on FB_AD.
+ */
+#define FB_CSCR_BLS(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BLS_SHIFT)) & FB_CSCR_BLS_MASK)
+#define FB_CSCR_WS_MASK                          (0xFC00U)
+#define FB_CSCR_WS_SHIFT                         (10U)
+#define FB_CSCR_WS(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WS_SHIFT)) & FB_CSCR_WS_MASK)
+#define FB_CSCR_WRAH_MASK                        (0x30000U)
+#define FB_CSCR_WRAH_SHIFT                       (16U)
+/*! WRAH - Write Address Hold or Deselect
+ *  0b00..1 cycle (default for all but FB_CS0_B)
+ *  0b01..2 cycles
+ *  0b10..3 cycles
+ *  0b11..4 cycles (default for FB_CS0_B)
+ */
+#define FB_CSCR_WRAH(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WRAH_SHIFT)) & FB_CSCR_WRAH_MASK)
+#define FB_CSCR_RDAH_MASK                        (0xC0000U)
+#define FB_CSCR_RDAH_SHIFT                       (18U)
+/*! RDAH - Read Address Hold or Deselect
+ *  0b00..When AA is 1b, 1 cycle. When AA is 0b, 0 cycles.
+ *  0b01..When AA is 1b, 2 cycles. When AA is 0b, 1 cycle.
+ *  0b10..When AA is 1b, 3 cycles. When AA is 0b, 2 cycles.
+ *  0b11..When AA is 1b, 4 cycles. When AA is 0b, 3 cycles.
+ */
+#define FB_CSCR_RDAH(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_RDAH_SHIFT)) & FB_CSCR_RDAH_MASK)
+#define FB_CSCR_ASET_MASK                        (0x300000U)
+#define FB_CSCR_ASET_SHIFT                       (20U)
+/*! ASET - Address Setup
+ *  0b00..Assert FB_CSn_B on the first rising clock edge after the address is asserted (default for all but FB_CS0_B).
+ *  0b01..Assert FB_CSn_B on the second rising clock edge after the address is asserted.
+ *  0b10..Assert FB_CSn_B on the third rising clock edge after the address is asserted.
+ *  0b11..Assert FB_CSn_B on the fourth rising clock edge after the address is asserted (default for FB_CS0_B ).
+ */
+#define FB_CSCR_ASET(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_ASET_SHIFT)) & FB_CSCR_ASET_MASK)
+#define FB_CSCR_EXTS_MASK                        (0x400000U)
+#define FB_CSCR_EXTS_SHIFT                       (22U)
+/*! EXTS - EXTS
+ *  0b0..Disabled. FB_TS_B/FB_ALE asserts for one bus clock cycle.
+ *  0b1..Enabled. FB_TS_B/FB_ALE remains asserted until the first positive clock edge after FB_CSn_B asserts.
+ */
+#define FB_CSCR_EXTS(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_EXTS_SHIFT)) & FB_CSCR_EXTS_MASK)
+#define FB_CSCR_SWSEN_MASK                       (0x800000U)
+#define FB_CSCR_SWSEN_SHIFT                      (23U)
+/*! SWSEN - Secondary Wait State Enable
+ *  0b0..Disabled. A number of wait states (specified by WS) are inserted before an internal transfer acknowledge is generated for all transfers.
+ *  0b1..Enabled. A number of wait states (specified by SWS) are inserted before an internal transfer acknowledge is generated for burst transfer secondary terminations.
+ */
+#define FB_CSCR_SWSEN(x)                         (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWSEN_SHIFT)) & FB_CSCR_SWSEN_MASK)
+#define FB_CSCR_SWS_MASK                         (0xFC000000U)
+#define FB_CSCR_SWS_SHIFT                        (26U)
+#define FB_CSCR_SWS(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWS_SHIFT)) & FB_CSCR_SWS_MASK)
+/*! @} */
+
+/* The count of FB_CSCR */
+#define FB_CSCR_COUNT                            (6U)
+
+/*! @name CSPMCR - Chip Select Port Multiplexing Control Register */
+/*! @{ */
+#define FB_CSPMCR_GROUP5_MASK                    (0xF000U)
+#define FB_CSPMCR_GROUP5_SHIFT                   (12U)
+/*! GROUP5 - FlexBus Signal Group 5 Multiplex control
+ *  0b0000..FB_TA_B
+ *  0b0001..FB_CS3_B. You must also write 1b to CSCR[AA].
+ *  0b0010..FB_BE_7_0_B. You must also write 1b to CSCR[AA].
+ */
+#define FB_CSPMCR_GROUP5(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP5_SHIFT)) & FB_CSPMCR_GROUP5_MASK)
+#define FB_CSPMCR_GROUP4_MASK                    (0xF0000U)
+#define FB_CSPMCR_GROUP4_SHIFT                   (16U)
+/*! GROUP4 - FlexBus Signal Group 4 Multiplex control
+ *  0b0000..FB_TBST_B
+ *  0b0001..FB_CS2_B
+ *  0b0010..FB_BE_15_8_B
+ */
+#define FB_CSPMCR_GROUP4(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP4_SHIFT)) & FB_CSPMCR_GROUP4_MASK)
+#define FB_CSPMCR_GROUP3_MASK                    (0xF00000U)
+#define FB_CSPMCR_GROUP3_SHIFT                   (20U)
+/*! GROUP3 - FlexBus Signal Group 3 Multiplex control
+ *  0b0000..FB_CS5_B
+ *  0b0001..FB_TSIZ1
+ *  0b0010..FB_BE_23_16_B
+ */
+#define FB_CSPMCR_GROUP3(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP3_SHIFT)) & FB_CSPMCR_GROUP3_MASK)
+#define FB_CSPMCR_GROUP2_MASK                    (0xF000000U)
+#define FB_CSPMCR_GROUP2_SHIFT                   (24U)
+/*! GROUP2 - FlexBus Signal Group 2 Multiplex control
+ *  0b0000..FB_CS4_B
+ *  0b0001..FB_TSIZ0
+ *  0b0010..FB_BE_31_24_B
+ */
+#define FB_CSPMCR_GROUP2(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP2_SHIFT)) & FB_CSPMCR_GROUP2_MASK)
+#define FB_CSPMCR_GROUP1_MASK                    (0xF0000000U)
+#define FB_CSPMCR_GROUP1_SHIFT                   (28U)
+/*! GROUP1 - FlexBus Signal Group 1 Multiplex control
+ *  0b0000..FB_ALE
+ *  0b0001..FB_CS1_B
+ *  0b0010..FB_TS_B
+ */
+#define FB_CSPMCR_GROUP1(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP1_SHIFT)) & FB_CSPMCR_GROUP1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group FB_Register_Masks */
+
+
+/* FB - Peripheral instance base addresses */
+/** Peripheral FB base address */
+#define FB_BASE                                  (0x4000C000u)
+/** Peripheral FB base pointer */
+#define FB                                       ((FB_Type *)FB_BASE)
+/** Array initializer of FB peripheral base addresses */
+#define FB_BASE_ADDRS                            { FB_BASE }
+/** Array initializer of FB peripheral base pointers */
+#define FB_BASE_PTRS                             { FB }
+
+/*!
+ * @}
+ */ /* end of group FB_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FLEXIO Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FLEXIO_Peripheral_Access_Layer FLEXIO Peripheral Access Layer
+ * @{
+ */
+
+/** FLEXIO - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CTRL;                              /**< FlexIO Control Register, offset: 0x8 */
+  __I  uint32_t PIN;                               /**< Pin State Register, offset: 0xC */
+  __IO uint32_t SHIFTSTAT;                         /**< Shifter Status Register, offset: 0x10 */
+  __IO uint32_t SHIFTERR;                          /**< Shifter Error Register, offset: 0x14 */
+  __IO uint32_t TIMSTAT;                           /**< Timer Status Register, offset: 0x18 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t SHIFTSIEN;                         /**< Shifter Status Interrupt Enable, offset: 0x20 */
+  __IO uint32_t SHIFTEIEN;                         /**< Shifter Error Interrupt Enable, offset: 0x24 */
+  __IO uint32_t TIMIEN;                            /**< Timer Interrupt Enable Register, offset: 0x28 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t SHIFTSDEN;                         /**< Shifter Status DMA Enable, offset: 0x30 */
+       uint8_t RESERVED_2[12];
+  __IO uint32_t SHIFTSTATE;                        /**< Shifter State Register, offset: 0x40 */
+       uint8_t RESERVED_3[60];
+  __IO uint32_t SHIFTCTL[8];                       /**< Shifter Control N Register, array offset: 0x80, array step: 0x4 */
+       uint8_t RESERVED_4[96];
+  __IO uint32_t SHIFTCFG[8];                       /**< Shifter Configuration N Register, array offset: 0x100, array step: 0x4 */
+       uint8_t RESERVED_5[224];
+  __IO uint32_t SHIFTBUF[8];                       /**< Shifter Buffer N Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_6[96];
+  __IO uint32_t SHIFTBUFBIS[8];                    /**< Shifter Buffer N Bit Swapped Register, array offset: 0x280, array step: 0x4 */
+       uint8_t RESERVED_7[96];
+  __IO uint32_t SHIFTBUFBYS[8];                    /**< Shifter Buffer N Byte Swapped Register, array offset: 0x300, array step: 0x4 */
+       uint8_t RESERVED_8[96];
+  __IO uint32_t SHIFTBUFBBS[8];                    /**< Shifter Buffer N Bit Byte Swapped Register, array offset: 0x380, array step: 0x4 */
+       uint8_t RESERVED_9[96];
+  __IO uint32_t TIMCTL[8];                         /**< Timer Control N Register, array offset: 0x400, array step: 0x4 */
+       uint8_t RESERVED_10[96];
+  __IO uint32_t TIMCFG[8];                         /**< Timer Configuration N Register, array offset: 0x480, array step: 0x4 */
+       uint8_t RESERVED_11[96];
+  __IO uint32_t TIMCMP[8];                         /**< Timer Compare N Register, array offset: 0x500, array step: 0x4 */
+       uint8_t RESERVED_12[352];
+  __IO uint32_t SHIFTBUFNBS[8];                    /**< Shifter Buffer N Nibble Byte Swapped Register, array offset: 0x680, array step: 0x4 */
+       uint8_t RESERVED_13[96];
+  __IO uint32_t SHIFTBUFHWS[8];                    /**< Shifter Buffer N Half Word Swapped Register, array offset: 0x700, array step: 0x4 */
+       uint8_t RESERVED_14[96];
+  __IO uint32_t SHIFTBUFNIS[8];                    /**< Shifter Buffer N Nibble Swapped Register, array offset: 0x780, array step: 0x4 */
+} FLEXIO_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FLEXIO Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FLEXIO_Register_Masks FLEXIO Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define FLEXIO_VERID_FEATURE_MASK                (0xFFFFU)
+#define FLEXIO_VERID_FEATURE_SHIFT               (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented.
+ *  0b0000000000000001..Supports state, logic and parallel modes.
+ */
+#define FLEXIO_VERID_FEATURE(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_FEATURE_SHIFT)) & FLEXIO_VERID_FEATURE_MASK)
+#define FLEXIO_VERID_MINOR_MASK                  (0xFF0000U)
+#define FLEXIO_VERID_MINOR_SHIFT                 (16U)
+#define FLEXIO_VERID_MINOR(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_MINOR_SHIFT)) & FLEXIO_VERID_MINOR_MASK)
+#define FLEXIO_VERID_MAJOR_MASK                  (0xFF000000U)
+#define FLEXIO_VERID_MAJOR_SHIFT                 (24U)
+#define FLEXIO_VERID_MAJOR(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_MAJOR_SHIFT)) & FLEXIO_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define FLEXIO_PARAM_SHIFTER_MASK                (0xFFU)
+#define FLEXIO_PARAM_SHIFTER_SHIFT               (0U)
+#define FLEXIO_PARAM_SHIFTER(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_SHIFTER_SHIFT)) & FLEXIO_PARAM_SHIFTER_MASK)
+#define FLEXIO_PARAM_TIMER_MASK                  (0xFF00U)
+#define FLEXIO_PARAM_TIMER_SHIFT                 (8U)
+#define FLEXIO_PARAM_TIMER(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_TIMER_SHIFT)) & FLEXIO_PARAM_TIMER_MASK)
+#define FLEXIO_PARAM_PIN_MASK                    (0xFF0000U)
+#define FLEXIO_PARAM_PIN_SHIFT                   (16U)
+#define FLEXIO_PARAM_PIN(x)                      (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_PIN_SHIFT)) & FLEXIO_PARAM_PIN_MASK)
+#define FLEXIO_PARAM_TRIGGER_MASK                (0xFF000000U)
+#define FLEXIO_PARAM_TRIGGER_SHIFT               (24U)
+#define FLEXIO_PARAM_TRIGGER(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_TRIGGER_SHIFT)) & FLEXIO_PARAM_TRIGGER_MASK)
+/*! @} */
+
+/*! @name CTRL - FlexIO Control Register */
+/*! @{ */
+#define FLEXIO_CTRL_FLEXEN_MASK                  (0x1U)
+#define FLEXIO_CTRL_FLEXEN_SHIFT                 (0U)
+/*! FLEXEN - FlexIO Enable
+ *  0b0..FlexIO module is disabled.
+ *  0b1..FlexIO module is enabled.
+ */
+#define FLEXIO_CTRL_FLEXEN(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_FLEXEN_SHIFT)) & FLEXIO_CTRL_FLEXEN_MASK)
+#define FLEXIO_CTRL_SWRST_MASK                   (0x2U)
+#define FLEXIO_CTRL_SWRST_SHIFT                  (1U)
+/*! SWRST - Software Reset
+ *  0b0..Software reset is disabled
+ *  0b1..Software reset is enabled, all FlexIO registers except the Control Register are reset.
+ */
+#define FLEXIO_CTRL_SWRST(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_SWRST_SHIFT)) & FLEXIO_CTRL_SWRST_MASK)
+#define FLEXIO_CTRL_FASTACC_MASK                 (0x4U)
+#define FLEXIO_CTRL_FASTACC_SHIFT                (2U)
+/*! FASTACC - Fast Access
+ *  0b0..Configures for normal register accesses to FlexIO
+ *  0b1..Configures for fast register accesses to FlexIO
+ */
+#define FLEXIO_CTRL_FASTACC(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_FASTACC_SHIFT)) & FLEXIO_CTRL_FASTACC_MASK)
+#define FLEXIO_CTRL_DBGE_MASK                    (0x40000000U)
+#define FLEXIO_CTRL_DBGE_SHIFT                   (30U)
+/*! DBGE - Debug Enable
+ *  0b0..FlexIO is disabled in debug modes.
+ *  0b1..FlexIO is enabled in debug modes
+ */
+#define FLEXIO_CTRL_DBGE(x)                      (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_DBGE_SHIFT)) & FLEXIO_CTRL_DBGE_MASK)
+#define FLEXIO_CTRL_DOZEN_MASK                   (0x80000000U)
+#define FLEXIO_CTRL_DOZEN_SHIFT                  (31U)
+/*! DOZEN - Doze Enable
+ *  0b0..FlexIO enabled in Doze modes.
+ *  0b1..FlexIO disabled in Doze modes.
+ */
+#define FLEXIO_CTRL_DOZEN(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_DOZEN_SHIFT)) & FLEXIO_CTRL_DOZEN_MASK)
+/*! @} */
+
+/*! @name PIN - Pin State Register */
+/*! @{ */
+#define FLEXIO_PIN_PDI_MASK                      (0xFFFFFFFFU)
+#define FLEXIO_PIN_PDI_SHIFT                     (0U)
+#define FLEXIO_PIN_PDI(x)                        (((uint32_t)(((uint32_t)(x)) << FLEXIO_PIN_PDI_SHIFT)) & FLEXIO_PIN_PDI_MASK)
+/*! @} */
+
+/*! @name SHIFTSTAT - Shifter Status Register */
+/*! @{ */
+#define FLEXIO_SHIFTSTAT_SSF_MASK                (0xFFU)
+#define FLEXIO_SHIFTSTAT_SSF_SHIFT               (0U)
+#define FLEXIO_SHIFTSTAT_SSF(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSTAT_SSF_SHIFT)) & FLEXIO_SHIFTSTAT_SSF_MASK)
+/*! @} */
+
+/*! @name SHIFTERR - Shifter Error Register */
+/*! @{ */
+#define FLEXIO_SHIFTERR_SEF_MASK                 (0xFFU)
+#define FLEXIO_SHIFTERR_SEF_SHIFT                (0U)
+#define FLEXIO_SHIFTERR_SEF(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTERR_SEF_SHIFT)) & FLEXIO_SHIFTERR_SEF_MASK)
+/*! @} */
+
+/*! @name TIMSTAT - Timer Status Register */
+/*! @{ */
+#define FLEXIO_TIMSTAT_TSF_MASK                  (0xFFU)
+#define FLEXIO_TIMSTAT_TSF_SHIFT                 (0U)
+#define FLEXIO_TIMSTAT_TSF(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMSTAT_TSF_SHIFT)) & FLEXIO_TIMSTAT_TSF_MASK)
+/*! @} */
+
+/*! @name SHIFTSIEN - Shifter Status Interrupt Enable */
+/*! @{ */
+#define FLEXIO_SHIFTSIEN_SSIE_MASK               (0xFFU)
+#define FLEXIO_SHIFTSIEN_SSIE_SHIFT              (0U)
+#define FLEXIO_SHIFTSIEN_SSIE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSIEN_SSIE_SHIFT)) & FLEXIO_SHIFTSIEN_SSIE_MASK)
+/*! @} */
+
+/*! @name SHIFTEIEN - Shifter Error Interrupt Enable */
+/*! @{ */
+#define FLEXIO_SHIFTEIEN_SEIE_MASK               (0xFFU)
+#define FLEXIO_SHIFTEIEN_SEIE_SHIFT              (0U)
+#define FLEXIO_SHIFTEIEN_SEIE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTEIEN_SEIE_SHIFT)) & FLEXIO_SHIFTEIEN_SEIE_MASK)
+/*! @} */
+
+/*! @name TIMIEN - Timer Interrupt Enable Register */
+/*! @{ */
+#define FLEXIO_TIMIEN_TEIE_MASK                  (0xFFU)
+#define FLEXIO_TIMIEN_TEIE_SHIFT                 (0U)
+#define FLEXIO_TIMIEN_TEIE(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMIEN_TEIE_SHIFT)) & FLEXIO_TIMIEN_TEIE_MASK)
+/*! @} */
+
+/*! @name SHIFTSDEN - Shifter Status DMA Enable */
+/*! @{ */
+#define FLEXIO_SHIFTSDEN_SSDE_MASK               (0xFFU)
+#define FLEXIO_SHIFTSDEN_SSDE_SHIFT              (0U)
+#define FLEXIO_SHIFTSDEN_SSDE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSDEN_SSDE_SHIFT)) & FLEXIO_SHIFTSDEN_SSDE_MASK)
+/*! @} */
+
+/*! @name SHIFTSTATE - Shifter State Register */
+/*! @{ */
+#define FLEXIO_SHIFTSTATE_STATE_MASK             (0x7U)
+#define FLEXIO_SHIFTSTATE_STATE_SHIFT            (0U)
+#define FLEXIO_SHIFTSTATE_STATE(x)               (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSTATE_STATE_SHIFT)) & FLEXIO_SHIFTSTATE_STATE_MASK)
+/*! @} */
+
+/*! @name SHIFTCTL - Shifter Control N Register */
+/*! @{ */
+#define FLEXIO_SHIFTCTL_SMOD_MASK                (0x7U)
+#define FLEXIO_SHIFTCTL_SMOD_SHIFT               (0U)
+/*! SMOD - Shifter Mode
+ *  0b000..Disabled.
+ *  0b001..Receive mode. Captures the current Shifter content into the SHIFTBUF on expiration of the Timer.
+ *  0b010..Transmit mode. Load SHIFTBUF contents into the Shifter on expiration of the Timer.
+ *  0b011..Reserved.
+ *  0b100..Match Store mode. Shifter data is compared to SHIFTBUF content on expiration of the Timer.
+ *  0b101..Match Continuous mode. Shifter data is continuously compared to SHIFTBUF contents.
+ *  0b110..State mode. SHIFTBUF contents are used for storing programmable state attributes.
+ *  0b111..Logic mode. SHIFTBUF contents are used for implementing programmable logic look up table.
+ */
+#define FLEXIO_SHIFTCTL_SMOD(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_SMOD_SHIFT)) & FLEXIO_SHIFTCTL_SMOD_MASK)
+#define FLEXIO_SHIFTCTL_PINPOL_MASK              (0x80U)
+#define FLEXIO_SHIFTCTL_PINPOL_SHIFT             (7U)
+/*! PINPOL - Shifter Pin Polarity
+ *  0b0..Pin is active high
+ *  0b1..Pin is active low
+ */
+#define FLEXIO_SHIFTCTL_PINPOL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINPOL_SHIFT)) & FLEXIO_SHIFTCTL_PINPOL_MASK)
+#define FLEXIO_SHIFTCTL_PINSEL_MASK              (0x1F00U)
+#define FLEXIO_SHIFTCTL_PINSEL_SHIFT             (8U)
+#define FLEXIO_SHIFTCTL_PINSEL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINSEL_SHIFT)) & FLEXIO_SHIFTCTL_PINSEL_MASK)
+#define FLEXIO_SHIFTCTL_PINCFG_MASK              (0x30000U)
+#define FLEXIO_SHIFTCTL_PINCFG_SHIFT             (16U)
+/*! PINCFG - Shifter Pin Configuration
+ *  0b00..Shifter pin output disabled
+ *  0b01..Shifter pin open drain or bidirectional output enable
+ *  0b10..Shifter pin bidirectional output data
+ *  0b11..Shifter pin output
+ */
+#define FLEXIO_SHIFTCTL_PINCFG(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINCFG_SHIFT)) & FLEXIO_SHIFTCTL_PINCFG_MASK)
+#define FLEXIO_SHIFTCTL_TIMPOL_MASK              (0x800000U)
+#define FLEXIO_SHIFTCTL_TIMPOL_SHIFT             (23U)
+/*! TIMPOL - Timer Polarity
+ *  0b0..Shift on posedge of Shift clock
+ *  0b1..Shift on negedge of Shift clock
+ */
+#define FLEXIO_SHIFTCTL_TIMPOL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_TIMPOL_SHIFT)) & FLEXIO_SHIFTCTL_TIMPOL_MASK)
+#define FLEXIO_SHIFTCTL_TIMSEL_MASK              (0x7000000U)
+#define FLEXIO_SHIFTCTL_TIMSEL_SHIFT             (24U)
+#define FLEXIO_SHIFTCTL_TIMSEL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_TIMSEL_SHIFT)) & FLEXIO_SHIFTCTL_TIMSEL_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTCTL */
+#define FLEXIO_SHIFTCTL_COUNT                    (8U)
+
+/*! @name SHIFTCFG - Shifter Configuration N Register */
+/*! @{ */
+#define FLEXIO_SHIFTCFG_SSTART_MASK              (0x3U)
+#define FLEXIO_SHIFTCFG_SSTART_SHIFT             (0U)
+/*! SSTART - Shifter Start bit
+ *  0b00..Start bit disabled for transmitter/receiver/match store, transmitter loads data on enable
+ *  0b01..Start bit disabled for transmitter/receiver/match store, transmitter loads data on first shift
+ *  0b10..Transmitter outputs start bit value 0 before loading data on first shift, receiver/match store sets error flag if start bit is not 0
+ *  0b11..Transmitter outputs start bit value 1 before loading data on first shift, receiver/match store sets error flag if start bit is not 1
+ */
+#define FLEXIO_SHIFTCFG_SSTART(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_SSTART_SHIFT)) & FLEXIO_SHIFTCFG_SSTART_MASK)
+#define FLEXIO_SHIFTCFG_SSTOP_MASK               (0x30U)
+#define FLEXIO_SHIFTCFG_SSTOP_SHIFT              (4U)
+/*! SSTOP - Shifter Stop bit
+ *  0b00..Stop bit disabled for transmitter/receiver/match store
+ *  0b01..Reserved for transmitter/receiver/match store
+ *  0b10..Transmitter outputs stop bit value 0 on store, receiver/match store sets error flag if stop bit is not 0
+ *  0b11..Transmitter outputs stop bit value 1 on store, receiver/match store sets error flag if stop bit is not 1
+ */
+#define FLEXIO_SHIFTCFG_SSTOP(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_SSTOP_SHIFT)) & FLEXIO_SHIFTCFG_SSTOP_MASK)
+#define FLEXIO_SHIFTCFG_INSRC_MASK               (0x100U)
+#define FLEXIO_SHIFTCFG_INSRC_SHIFT              (8U)
+/*! INSRC - Input Source
+ *  0b0..Pin
+ *  0b1..Shifter N+1 Output
+ */
+#define FLEXIO_SHIFTCFG_INSRC(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_INSRC_SHIFT)) & FLEXIO_SHIFTCFG_INSRC_MASK)
+#define FLEXIO_SHIFTCFG_PWIDTH_MASK              (0x1F0000U)
+#define FLEXIO_SHIFTCFG_PWIDTH_SHIFT             (16U)
+#define FLEXIO_SHIFTCFG_PWIDTH(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_PWIDTH_SHIFT)) & FLEXIO_SHIFTCFG_PWIDTH_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTCFG */
+#define FLEXIO_SHIFTCFG_COUNT                    (8U)
+
+/*! @name SHIFTBUF - Shifter Buffer N Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUF_SHIFTBUF_MASK            (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUF_SHIFTBUF_SHIFT           (0U)
+#define FLEXIO_SHIFTBUF_SHIFTBUF(x)              (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUF_SHIFTBUF_SHIFT)) & FLEXIO_SHIFTBUF_SHIFTBUF_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUF */
+#define FLEXIO_SHIFTBUF_COUNT                    (8U)
+
+/*! @name SHIFTBUFBIS - Shifter Buffer N Bit Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_SHIFT)) & FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBIS */
+#define FLEXIO_SHIFTBUFBIS_COUNT                 (8U)
+
+/*! @name SHIFTBUFBYS - Shifter Buffer N Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_SHIFT)) & FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBYS */
+#define FLEXIO_SHIFTBUFBYS_COUNT                 (8U)
+
+/*! @name SHIFTBUFBBS - Shifter Buffer N Bit Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_SHIFT)) & FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBBS */
+#define FLEXIO_SHIFTBUFBBS_COUNT                 (8U)
+
+/*! @name TIMCTL - Timer Control N Register */
+/*! @{ */
+#define FLEXIO_TIMCTL_TIMOD_MASK                 (0x3U)
+#define FLEXIO_TIMCTL_TIMOD_SHIFT                (0U)
+/*! TIMOD - Timer Mode
+ *  0b00..Timer Disabled.
+ *  0b01..Dual 8-bit counters baud mode.
+ *  0b10..Dual 8-bit counters PWM high mode.
+ *  0b11..Single 16-bit counter mode.
+ */
+#define FLEXIO_TIMCTL_TIMOD(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TIMOD_SHIFT)) & FLEXIO_TIMCTL_TIMOD_MASK)
+#define FLEXIO_TIMCTL_PINPOL_MASK                (0x80U)
+#define FLEXIO_TIMCTL_PINPOL_SHIFT               (7U)
+/*! PINPOL - Timer Pin Polarity
+ *  0b0..Pin is active high
+ *  0b1..Pin is active low
+ */
+#define FLEXIO_TIMCTL_PINPOL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINPOL_SHIFT)) & FLEXIO_TIMCTL_PINPOL_MASK)
+#define FLEXIO_TIMCTL_PINSEL_MASK                (0x1F00U)
+#define FLEXIO_TIMCTL_PINSEL_SHIFT               (8U)
+#define FLEXIO_TIMCTL_PINSEL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINSEL_SHIFT)) & FLEXIO_TIMCTL_PINSEL_MASK)
+#define FLEXIO_TIMCTL_PINCFG_MASK                (0x30000U)
+#define FLEXIO_TIMCTL_PINCFG_SHIFT               (16U)
+/*! PINCFG - Timer Pin Configuration
+ *  0b00..Timer pin output disabled
+ *  0b01..Timer pin open drain or bidirectional output enable
+ *  0b10..Timer pin bidirectional output data
+ *  0b11..Timer pin output
+ */
+#define FLEXIO_TIMCTL_PINCFG(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINCFG_SHIFT)) & FLEXIO_TIMCTL_PINCFG_MASK)
+#define FLEXIO_TIMCTL_TRGSRC_MASK                (0x400000U)
+#define FLEXIO_TIMCTL_TRGSRC_SHIFT               (22U)
+/*! TRGSRC - Trigger Source
+ *  0b0..External trigger selected
+ *  0b1..Internal trigger selected
+ */
+#define FLEXIO_TIMCTL_TRGSRC(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGSRC_SHIFT)) & FLEXIO_TIMCTL_TRGSRC_MASK)
+#define FLEXIO_TIMCTL_TRGPOL_MASK                (0x800000U)
+#define FLEXIO_TIMCTL_TRGPOL_SHIFT               (23U)
+/*! TRGPOL - Trigger Polarity
+ *  0b0..Trigger active high
+ *  0b1..Trigger active low
+ */
+#define FLEXIO_TIMCTL_TRGPOL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGPOL_SHIFT)) & FLEXIO_TIMCTL_TRGPOL_MASK)
+#define FLEXIO_TIMCTL_TRGSEL_MASK                (0x3F000000U)
+#define FLEXIO_TIMCTL_TRGSEL_SHIFT               (24U)
+#define FLEXIO_TIMCTL_TRGSEL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGSEL_SHIFT)) & FLEXIO_TIMCTL_TRGSEL_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCTL */
+#define FLEXIO_TIMCTL_COUNT                      (8U)
+
+/*! @name TIMCFG - Timer Configuration N Register */
+/*! @{ */
+#define FLEXIO_TIMCFG_TSTART_MASK                (0x2U)
+#define FLEXIO_TIMCFG_TSTART_SHIFT               (1U)
+/*! TSTART - Timer Start Bit
+ *  0b0..Start bit disabled
+ *  0b1..Start bit enabled
+ */
+#define FLEXIO_TIMCFG_TSTART(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TSTART_SHIFT)) & FLEXIO_TIMCFG_TSTART_MASK)
+#define FLEXIO_TIMCFG_TSTOP_MASK                 (0x30U)
+#define FLEXIO_TIMCFG_TSTOP_SHIFT                (4U)
+/*! TSTOP - Timer Stop Bit
+ *  0b00..Stop bit disabled
+ *  0b01..Stop bit is enabled on timer compare
+ *  0b10..Stop bit is enabled on timer disable
+ *  0b11..Stop bit is enabled on timer compare and timer disable
+ */
+#define FLEXIO_TIMCFG_TSTOP(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TSTOP_SHIFT)) & FLEXIO_TIMCFG_TSTOP_MASK)
+#define FLEXIO_TIMCFG_TIMENA_MASK                (0x700U)
+#define FLEXIO_TIMCFG_TIMENA_SHIFT               (8U)
+/*! TIMENA - Timer Enable
+ *  0b000..Timer always enabled
+ *  0b001..Timer enabled on Timer N-1 enable
+ *  0b010..Timer enabled on Trigger high
+ *  0b011..Timer enabled on Trigger high and Pin high
+ *  0b100..Timer enabled on Pin rising edge
+ *  0b101..Timer enabled on Pin rising edge and Trigger high
+ *  0b110..Timer enabled on Trigger rising edge
+ *  0b111..Timer enabled on Trigger rising or falling edge
+ */
+#define FLEXIO_TIMCFG_TIMENA(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMENA_SHIFT)) & FLEXIO_TIMCFG_TIMENA_MASK)
+#define FLEXIO_TIMCFG_TIMDIS_MASK                (0x7000U)
+#define FLEXIO_TIMCFG_TIMDIS_SHIFT               (12U)
+/*! TIMDIS - Timer Disable
+ *  0b000..Timer never disabled
+ *  0b001..Timer disabled on Timer N-1 disable
+ *  0b010..Timer disabled on Timer compare (upper 8-bits match and decrement)
+ *  0b011..Timer disabled on Timer compare (upper 8-bits match and decrement) and Trigger Low
+ *  0b100..Timer disabled on Pin rising or falling edge
+ *  0b101..Timer disabled on Pin rising or falling edge provided Trigger is high
+ *  0b110..Timer disabled on Trigger falling edge
+ *  0b111..Reserved
+ */
+#define FLEXIO_TIMCFG_TIMDIS(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMDIS_SHIFT)) & FLEXIO_TIMCFG_TIMDIS_MASK)
+#define FLEXIO_TIMCFG_TIMRST_MASK                (0x70000U)
+#define FLEXIO_TIMCFG_TIMRST_SHIFT               (16U)
+/*! TIMRST - Timer Reset
+ *  0b000..Timer never reset
+ *  0b001..Reserved
+ *  0b010..Timer reset on Timer Pin equal to Timer Output
+ *  0b011..Timer reset on Timer Trigger equal to Timer Output
+ *  0b100..Timer reset on Timer Pin rising edge
+ *  0b101..Reserved
+ *  0b110..Timer reset on Trigger rising edge
+ *  0b111..Timer reset on Trigger rising or falling edge
+ */
+#define FLEXIO_TIMCFG_TIMRST(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMRST_SHIFT)) & FLEXIO_TIMCFG_TIMRST_MASK)
+#define FLEXIO_TIMCFG_TIMDEC_MASK                (0x300000U)
+#define FLEXIO_TIMCFG_TIMDEC_SHIFT               (20U)
+/*! TIMDEC - Timer Decrement
+ *  0b00..Decrement counter on FlexIO clock, Shift clock equals Timer output.
+ *  0b01..Decrement counter on Trigger input (both edges), Shift clock equals Timer output.
+ *  0b10..Decrement counter on Pin input (both edges), Shift clock equals Pin input.
+ *  0b11..Decrement counter on Trigger input (both edges), Shift clock equals Trigger input.
+ */
+#define FLEXIO_TIMCFG_TIMDEC(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMDEC_SHIFT)) & FLEXIO_TIMCFG_TIMDEC_MASK)
+#define FLEXIO_TIMCFG_TIMOUT_MASK                (0x3000000U)
+#define FLEXIO_TIMCFG_TIMOUT_SHIFT               (24U)
+/*! TIMOUT - Timer Output
+ *  0b00..Timer output is logic one when enabled and is not affected by timer reset
+ *  0b01..Timer output is logic zero when enabled and is not affected by timer reset
+ *  0b10..Timer output is logic one when enabled and on timer reset
+ *  0b11..Timer output is logic zero when enabled and on timer reset
+ */
+#define FLEXIO_TIMCFG_TIMOUT(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMOUT_SHIFT)) & FLEXIO_TIMCFG_TIMOUT_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCFG */
+#define FLEXIO_TIMCFG_COUNT                      (8U)
+
+/*! @name TIMCMP - Timer Compare N Register */
+/*! @{ */
+#define FLEXIO_TIMCMP_CMP_MASK                   (0xFFFFU)
+#define FLEXIO_TIMCMP_CMP_SHIFT                  (0U)
+#define FLEXIO_TIMCMP_CMP(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCMP_CMP_SHIFT)) & FLEXIO_TIMCMP_CMP_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCMP */
+#define FLEXIO_TIMCMP_COUNT                      (8U)
+
+/*! @name SHIFTBUFNBS - Shifter Buffer N Nibble Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_SHIFT)) & FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFNBS */
+#define FLEXIO_SHIFTBUFNBS_COUNT                 (8U)
+
+/*! @name SHIFTBUFHWS - Shifter Buffer N Half Word Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_SHIFT)) & FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFHWS */
+#define FLEXIO_SHIFTBUFHWS_COUNT                 (8U)
+
+/*! @name SHIFTBUFNIS - Shifter Buffer N Nibble Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_SHIFT)) & FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFNIS */
+#define FLEXIO_SHIFTBUFNIS_COUNT                 (8U)
+
+
+/*!
+ * @}
+ */ /* end of group FLEXIO_Register_Masks */
+
+
+/* FLEXIO - Peripheral instance base addresses */
+/** Peripheral FLEXIO0 base address */
+#define FLEXIO0_BASE                             (0x40039000u)
+/** Peripheral FLEXIO0 base pointer */
+#define FLEXIO0                                  ((FLEXIO_Type *)FLEXIO0_BASE)
+/** Array initializer of FLEXIO peripheral base addresses */
+#define FLEXIO_BASE_ADDRS                        { FLEXIO0_BASE }
+/** Array initializer of FLEXIO peripheral base pointers */
+#define FLEXIO_BASE_PTRS                         { FLEXIO0 }
+/** Interrupt vectors for the FLEXIO peripheral type */
+#define FLEXIO_IRQS                              { FLEXIO0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group FLEXIO_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FTFE Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FTFE_Peripheral_Access_Layer FTFE Peripheral Access Layer
+ * @{
+ */
+
+/** FTFE - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t FSTAT;                              /**< Flash Status Register, offset: 0x0 */
+  __IO uint8_t FCNFG;                              /**< Flash Configuration Register, offset: 0x1 */
+  __I  uint8_t FSEC;                               /**< Flash Security Register, offset: 0x2 */
+       uint8_t RESERVED_0[1];
+  __IO uint8_t FCCOB3;                             /**< Flash Common Command Object Registers, offset: 0x4 */
+  __IO uint8_t FCCOB2;                             /**< Flash Common Command Object Registers, offset: 0x5 */
+  __IO uint8_t FCCOB1;                             /**< Flash Common Command Object Registers, offset: 0x6 */
+  __IO uint8_t FCCOB0;                             /**< Flash Common Command Object Registers, offset: 0x7 */
+  __IO uint8_t FCCOB7;                             /**< Flash Common Command Object Registers, offset: 0x8 */
+  __IO uint8_t FCCOB6;                             /**< Flash Common Command Object Registers, offset: 0x9 */
+  __IO uint8_t FCCOB5;                             /**< Flash Common Command Object Registers, offset: 0xA */
+  __IO uint8_t FCCOB4;                             /**< Flash Common Command Object Registers, offset: 0xB */
+  __IO uint8_t FCCOBB;                             /**< Flash Common Command Object Registers, offset: 0xC */
+  __IO uint8_t FCCOBA;                             /**< Flash Common Command Object Registers, offset: 0xD */
+  __IO uint8_t FCCOB9;                             /**< Flash Common Command Object Registers, offset: 0xE */
+  __IO uint8_t FCCOB8;                             /**< Flash Common Command Object Registers, offset: 0xF */
+  __I  uint8_t FOPT3;                              /**< Flash Option Registers, offset: 0x10 */
+  __I  uint8_t FOPT2;                              /**< Flash Option Registers, offset: 0x11 */
+  __I  uint8_t FOPT1;                              /**< Flash Option Registers, offset: 0x12 */
+  __I  uint8_t FOPT0;                              /**< Flash Option Registers, offset: 0x13 */
+       uint8_t RESERVED_1[4];
+  __IO uint8_t FPROTH3;                            /**< Primary Program Flash Protection Registers, offset: 0x18 */
+  __IO uint8_t FPROTH2;                            /**< Primary Program Flash Protection Registers, offset: 0x19 */
+  __IO uint8_t FPROTH1;                            /**< Primary Program Flash Protection Registers, offset: 0x1A */
+  __IO uint8_t FPROTH0;                            /**< Primary Program Flash Protection Registers, offset: 0x1B */
+  __IO uint8_t FPROTL3;                            /**< Primary Program Flash Protection Registers, offset: 0x1C */
+  __IO uint8_t FPROTL2;                            /**< Primary Program Flash Protection Registers, offset: 0x1D */
+  __IO uint8_t FPROTL1;                            /**< Primary Program Flash Protection Registers, offset: 0x1E */
+  __IO uint8_t FPROTL0;                            /**< Primary Program Flash Protection Registers, offset: 0x1F */
+       uint8_t RESERVED_2[4];
+  __IO uint8_t FPROTSL;                            /**< Secondary Program Flash Protection Registers, offset: 0x24 */
+  __IO uint8_t FPROTSH;                            /**< Secondary Program Flash Protection Registers, offset: 0x25 */
+       uint8_t RESERVED_3[6];
+  __I  uint8_t FACSS;                              /**< Primary Flash Access Segment Size Register, offset: 0x2C */
+  __I  uint8_t FACSN;                              /**< Primary Flash Access Segment Number Register, offset: 0x2D */
+  __I  uint8_t FACSSS;                             /**< Secondary Flash Access Segment Size Register, offset: 0x2E */
+  __I  uint8_t FACSNS;                             /**< Secondary Flash Access Segment Number Register, offset: 0x2F */
+  __I  uint8_t XACCH3;                             /**< Primary Execute-only Access Registers, offset: 0x30 */
+  __I  uint8_t XACCH2;                             /**< Primary Execute-only Access Registers, offset: 0x31 */
+  __I  uint8_t XACCH1;                             /**< Primary Execute-only Access Registers, offset: 0x32 */
+  __I  uint8_t XACCH0;                             /**< Primary Execute-only Access Registers, offset: 0x33 */
+  __I  uint8_t XACCL3;                             /**< Primary Execute-only Access Registers, offset: 0x34 */
+  __I  uint8_t XACCL2;                             /**< Primary Execute-only Access Registers, offset: 0x35 */
+  __I  uint8_t XACCL1;                             /**< Primary Execute-only Access Registers, offset: 0x36 */
+  __I  uint8_t XACCL0;                             /**< Primary Execute-only Access Registers, offset: 0x37 */
+  __I  uint8_t SACCH3;                             /**< Primary Supervisor-only Access Registers, offset: 0x38 */
+  __I  uint8_t SACCH2;                             /**< Primary Supervisor-only Access Registers, offset: 0x39 */
+  __I  uint8_t SACCH1;                             /**< Primary Supervisor-only Access Registers, offset: 0x3A */
+  __I  uint8_t SACCH0;                             /**< Primary Supervisor-only Access Registers, offset: 0x3B */
+  __I  uint8_t SACCL3;                             /**< Primary Supervisor-only Access Registers, offset: 0x3C */
+  __I  uint8_t SACCL2;                             /**< Primary Supervisor-only Access Registers, offset: 0x3D */
+  __I  uint8_t SACCL1;                             /**< Primary Supervisor-only Access Registers, offset: 0x3E */
+  __I  uint8_t SACCL0;                             /**< Primary Supervisor-only Access Registers, offset: 0x3F */
+       uint8_t RESERVED_4[4];
+  __I  uint8_t XACCSL;                             /**< Secondary Execute-only Access Registers, offset: 0x44 */
+  __I  uint8_t XACCSH;                             /**< Secondary Execute-only Access Registers, offset: 0x45 */
+       uint8_t RESERVED_5[6];
+  __I  uint8_t SACCSL;                             /**< Secondary Supervisor-only Access Registers, offset: 0x4C */
+  __I  uint8_t SACCSH;                             /**< Secondary Supervisor-only Access Registers, offset: 0x4D */
+       uint8_t RESERVED_6[4];
+  __I  uint8_t FSTDBYCTL;                          /**< Flash Standby Control Register, offset: 0x52 */
+  __IO uint8_t FSTDBY;                             /**< Flash Standby Register, offset: 0x53 */
+} FTFE_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FTFE Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FTFE_Register_Masks FTFE Register Masks
+ * @{
+ */
+
+/*! @name FSTAT - Flash Status Register */
+/*! @{ */
+#define FTFE_FSTAT_MGSTAT0_MASK                  (0x1U)
+#define FTFE_FSTAT_MGSTAT0_SHIFT                 (0U)
+#define FTFE_FSTAT_MGSTAT0(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_MGSTAT0_SHIFT)) & FTFE_FSTAT_MGSTAT0_MASK)
+#define FTFE_FSTAT_FPVIOL_MASK                   (0x10U)
+#define FTFE_FSTAT_FPVIOL_SHIFT                  (4U)
+/*! FPVIOL - Flash Protection Violation Flag
+ *  0b0..No protection violation detected
+ *  0b1..Protection violation detected
+ */
+#define FTFE_FSTAT_FPVIOL(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_FPVIOL_SHIFT)) & FTFE_FSTAT_FPVIOL_MASK)
+#define FTFE_FSTAT_ACCERR_MASK                   (0x20U)
+#define FTFE_FSTAT_ACCERR_SHIFT                  (5U)
+/*! ACCERR - Flash Access Error Flag
+ *  0b0..No access error detected
+ *  0b1..Access error detected
+ */
+#define FTFE_FSTAT_ACCERR(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_ACCERR_SHIFT)) & FTFE_FSTAT_ACCERR_MASK)
+#define FTFE_FSTAT_RDCOLERR_MASK                 (0x40U)
+#define FTFE_FSTAT_RDCOLERR_SHIFT                (6U)
+/*! RDCOLERR - Flash Read Collision Error Flag
+ *  0b0..No collision error detected
+ *  0b1..Collision error detected
+ */
+#define FTFE_FSTAT_RDCOLERR(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_RDCOLERR_SHIFT)) & FTFE_FSTAT_RDCOLERR_MASK)
+#define FTFE_FSTAT_CCIF_MASK                     (0x80U)
+#define FTFE_FSTAT_CCIF_SHIFT                    (7U)
+/*! CCIF - Command Complete Interrupt Flag
+ *  0b0..Flash command in progress
+ *  0b1..Flash command has completed
+ */
+#define FTFE_FSTAT_CCIF(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_CCIF_SHIFT)) & FTFE_FSTAT_CCIF_MASK)
+/*! @} */
+
+/*! @name FCNFG - Flash Configuration Register */
+/*! @{ */
+#define FTFE_FCNFG_RAMRDY_MASK                   (0x2U)
+#define FTFE_FCNFG_RAMRDY_SHIFT                  (1U)
+/*! RAMRDY - RAM Ready
+ *  0b0..Programming acceleration RAM is not available
+ *  0b1..Programming acceleration RAM is available
+ */
+#define FTFE_FCNFG_RAMRDY(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RAMRDY_SHIFT)) & FTFE_FCNFG_RAMRDY_MASK)
+#define FTFE_FCNFG_CRCRDY_MASK                   (0x4U)
+#define FTFE_FCNFG_CRCRDY_SHIFT                  (2U)
+/*! CRCRDY - CRC Ready
+ *  0b0..Programming acceleration RAM is not available for CRC operations
+ *  0b1..Programming acceleration RAM is available for CRC operations
+ */
+#define FTFE_FCNFG_CRCRDY(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_CRCRDY_SHIFT)) & FTFE_FCNFG_CRCRDY_MASK)
+#define FTFE_FCNFG_SWAP_MASK                     (0x8U)
+#define FTFE_FCNFG_SWAP_SHIFT                    (3U)
+/*! SWAP - Swap
+ *  0b0..Program flash 0 block is located at relative address 0x0000
+ *  0b1..Program flash 1 block is located at relative address 0x0000
+ */
+#define FTFE_FCNFG_SWAP(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_SWAP_SHIFT)) & FTFE_FCNFG_SWAP_MASK)
+#define FTFE_FCNFG_ERSSUSP_MASK                  (0x10U)
+#define FTFE_FCNFG_ERSSUSP_SHIFT                 (4U)
+/*! ERSSUSP - Erase Suspend
+ *  0b0..No suspend requested
+ *  0b1..Suspend the current Erase Flash Sector command execution
+ */
+#define FTFE_FCNFG_ERSSUSP(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSSUSP_SHIFT)) & FTFE_FCNFG_ERSSUSP_MASK)
+#define FTFE_FCNFG_ERSAREQ_MASK                  (0x20U)
+#define FTFE_FCNFG_ERSAREQ_SHIFT                 (5U)
+/*! ERSAREQ - Erase All Request
+ *  0b0..No request or request complete
+ *  0b1..Request to: (1) run the Erase All Blocks command, (2) verify the erased state, (3) program the security byte in the Flash Configuration Field to the unsecure state, and (4) release MCU security by setting the FSEC[SEC] field to the unsecure state.
+ */
+#define FTFE_FCNFG_ERSAREQ(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSAREQ_SHIFT)) & FTFE_FCNFG_ERSAREQ_MASK)
+#define FTFE_FCNFG_RDCOLLIE_MASK                 (0x40U)
+#define FTFE_FCNFG_RDCOLLIE_SHIFT                (6U)
+/*! RDCOLLIE - Read Collision Error Interrupt Enable
+ *  0b0..Read collision error interrupt disabled
+ *  0b1..Read collision error interrupt enabled. An interrupt request is generated whenever a flash read collision error is detected (see the description of FSTAT[RDCOLERR]).
+ */
+#define FTFE_FCNFG_RDCOLLIE(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RDCOLLIE_SHIFT)) & FTFE_FCNFG_RDCOLLIE_MASK)
+#define FTFE_FCNFG_CCIE_MASK                     (0x80U)
+#define FTFE_FCNFG_CCIE_SHIFT                    (7U)
+/*! CCIE - Command Complete Interrupt Enable
+ *  0b0..Command complete interrupt disabled
+ *  0b1..Command complete interrupt enabled. An interrupt request is generated whenever the FSTAT[CCIF] flag is set.
+ */
+#define FTFE_FCNFG_CCIE(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_CCIE_SHIFT)) & FTFE_FCNFG_CCIE_MASK)
+/*! @} */
+
+/*! @name FSEC - Flash Security Register */
+/*! @{ */
+#define FTFE_FSEC_SEC_MASK                       (0x3U)
+#define FTFE_FSEC_SEC_SHIFT                      (0U)
+/*! SEC - Flash Security
+ *  0b00..MCU security status is secure
+ *  0b01..MCU security status is secure
+ *  0b10..MCU security status is unsecure (The standard shipping condition of the flash module is unsecure.)
+ *  0b11..MCU security status is secure
+ */
+#define FTFE_FSEC_SEC(x)                         (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_SEC_SHIFT)) & FTFE_FSEC_SEC_MASK)
+#define FTFE_FSEC_FSLACC_MASK                    (0xCU)
+#define FTFE_FSEC_FSLACC_SHIFT                   (2U)
+/*! FSLACC - Factory Security Level Access Code
+ *  0b00..Factory access granted
+ *  0b01..Factory access denied
+ *  0b10..Factory access denied
+ *  0b11..Factory access granted
+ */
+#define FTFE_FSEC_FSLACC(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_FSLACC_SHIFT)) & FTFE_FSEC_FSLACC_MASK)
+#define FTFE_FSEC_MEEN_MASK                      (0x30U)
+#define FTFE_FSEC_MEEN_SHIFT                     (4U)
+/*! MEEN - Mass Erase Enable Bits
+ *  0b00..Mass erase is enabled
+ *  0b01..Mass erase is enabled
+ *  0b10..Mass erase is disabled
+ *  0b11..Mass erase is enabled
+ */
+#define FTFE_FSEC_MEEN(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_MEEN_SHIFT)) & FTFE_FSEC_MEEN_MASK)
+#define FTFE_FSEC_KEYEN_MASK                     (0xC0U)
+#define FTFE_FSEC_KEYEN_SHIFT                    (6U)
+/*! KEYEN - Backdoor Key Security Enable
+ *  0b00..Backdoor key access disabled
+ *  0b01..Backdoor key access disabled (preferred KEYEN state to disable backdoor key access)
+ *  0b10..Backdoor key access enabled
+ *  0b11..Backdoor key access disabled
+ */
+#define FTFE_FSEC_KEYEN(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_KEYEN_SHIFT)) & FTFE_FSEC_KEYEN_MASK)
+/*! @} */
+
+/*! @name FCCOB3 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB3_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB3_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB3_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB3_CCOBn_SHIFT)) & FTFE_FCCOB3_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB2 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB2_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB2_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB2_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB2_CCOBn_SHIFT)) & FTFE_FCCOB2_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB1 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB1_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB1_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB1_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB1_CCOBn_SHIFT)) & FTFE_FCCOB1_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB0 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB0_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB0_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB0_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB0_CCOBn_SHIFT)) & FTFE_FCCOB0_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB7 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB7_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB7_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB7_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB7_CCOBn_SHIFT)) & FTFE_FCCOB7_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB6 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB6_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB6_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB6_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB6_CCOBn_SHIFT)) & FTFE_FCCOB6_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB5 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB5_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB5_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB5_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB5_CCOBn_SHIFT)) & FTFE_FCCOB5_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB4 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB4_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB4_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB4_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB4_CCOBn_SHIFT)) & FTFE_FCCOB4_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOBB - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOBB_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOBB_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOBB_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBB_CCOBn_SHIFT)) & FTFE_FCCOBB_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOBA - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOBA_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOBA_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOBA_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBA_CCOBn_SHIFT)) & FTFE_FCCOBA_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB9 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB9_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB9_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB9_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB9_CCOBn_SHIFT)) & FTFE_FCCOB9_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB8 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB8_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB8_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB8_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB8_CCOBn_SHIFT)) & FTFE_FCCOB8_CCOBn_MASK)
+/*! @} */
+
+/*! @name FOPT3 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT3_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT3_OPT_SHIFT                     (0U)
+#define FTFE_FOPT3_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT3_OPT_SHIFT)) & FTFE_FOPT3_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT2 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT2_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT2_OPT_SHIFT                     (0U)
+#define FTFE_FOPT2_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT2_OPT_SHIFT)) & FTFE_FOPT2_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT1 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT1_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT1_OPT_SHIFT                     (0U)
+#define FTFE_FOPT1_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT1_OPT_SHIFT)) & FTFE_FOPT1_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT0 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT0_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT0_OPT_SHIFT                     (0U)
+#define FTFE_FOPT0_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT0_OPT_SHIFT)) & FTFE_FOPT0_OPT_MASK)
+/*! @} */
+
+/*! @name FPROTH3 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH3_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH3_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH3_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH3_PROT_SHIFT)) & FTFE_FPROTH3_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH2 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH2_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH2_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH2_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH2_PROT_SHIFT)) & FTFE_FPROTH2_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH1 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH1_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH1_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH1_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH1_PROT_SHIFT)) & FTFE_FPROTH1_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH0 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH0_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH0_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH0_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH0_PROT_SHIFT)) & FTFE_FPROTH0_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL3 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL3_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL3_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL3_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL3_PROT_SHIFT)) & FTFE_FPROTL3_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL2 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL2_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL2_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL2_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL2_PROT_SHIFT)) & FTFE_FPROTL2_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL1 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL1_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL1_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL1_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL1_PROT_SHIFT)) & FTFE_FPROTL1_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL0 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL0_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL0_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL0_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL0_PROT_SHIFT)) & FTFE_FPROTL0_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTSL - Secondary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTSL_PROTS_MASK                  (0xFFU)
+#define FTFE_FPROTSL_PROTS_SHIFT                 (0U)
+#define FTFE_FPROTSL_PROTS(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTSL_PROTS_SHIFT)) & FTFE_FPROTSL_PROTS_MASK)
+/*! @} */
+
+/*! @name FPROTSH - Secondary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTSH_PROTS_MASK                  (0xFFU)
+#define FTFE_FPROTSH_PROTS_SHIFT                 (0U)
+#define FTFE_FPROTSH_PROTS(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTSH_PROTS_SHIFT)) & FTFE_FPROTSH_PROTS_MASK)
+/*! @} */
+
+/*! @name FACSS - Primary Flash Access Segment Size Register */
+/*! @{ */
+#define FTFE_FACSS_SGSIZE_MASK                   (0xFFU)
+#define FTFE_FACSS_SGSIZE_SHIFT                  (0U)
+#define FTFE_FACSS_SGSIZE(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FACSS_SGSIZE_SHIFT)) & FTFE_FACSS_SGSIZE_MASK)
+/*! @} */
+
+/*! @name FACSN - Primary Flash Access Segment Number Register */
+/*! @{ */
+#define FTFE_FACSN_NUMSG_MASK                    (0xFFU)
+#define FTFE_FACSN_NUMSG_SHIFT                   (0U)
+/*! NUMSG - Number of Segments Indicator
+ *  0b00110000..Primary Program flash memory is divided into 48 segments (768 Kbytes, 1.5 Mbytes)
+ *  0b01000000..Primary Program flash memory is divided into 64 segments (512 Kbytes, 1 Mbyte, 2 Mbytes)
+ */
+#define FTFE_FACSN_NUMSG(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_FACSN_NUMSG_SHIFT)) & FTFE_FACSN_NUMSG_MASK)
+/*! @} */
+
+/*! @name FACSSS - Secondary Flash Access Segment Size Register */
+/*! @{ */
+#define FTFE_FACSSS_SGSIZE_S_MASK                (0xFFU)
+#define FTFE_FACSSS_SGSIZE_S_SHIFT               (0U)
+#define FTFE_FACSSS_SGSIZE_S(x)                  (((uint8_t)(((uint8_t)(x)) << FTFE_FACSSS_SGSIZE_S_SHIFT)) & FTFE_FACSSS_SGSIZE_S_MASK)
+/*! @} */
+
+/*! @name FACSNS - Secondary Flash Access Segment Number Register */
+/*! @{ */
+#define FTFE_FACSNS_NUMSG_S_MASK                 (0xFFU)
+#define FTFE_FACSNS_NUMSG_S_SHIFT                (0U)
+/*! NUMSG_S - Number of Segments Indicator
+ *  0b00010000..Secondary Program flash memory is divided into 16 segments
+ */
+#define FTFE_FACSNS_NUMSG_S(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FACSNS_NUMSG_S_SHIFT)) & FTFE_FACSNS_NUMSG_S_MASK)
+/*! @} */
+
+/*! @name XACCH3 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH3_XA_MASK                      (0xFFU)
+#define FTFE_XACCH3_XA_SHIFT                     (0U)
+#define FTFE_XACCH3_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH3_XA_SHIFT)) & FTFE_XACCH3_XA_MASK)
+/*! @} */
+
+/*! @name XACCH2 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH2_XA_MASK                      (0xFFU)
+#define FTFE_XACCH2_XA_SHIFT                     (0U)
+#define FTFE_XACCH2_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH2_XA_SHIFT)) & FTFE_XACCH2_XA_MASK)
+/*! @} */
+
+/*! @name XACCH1 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH1_XA_MASK                      (0xFFU)
+#define FTFE_XACCH1_XA_SHIFT                     (0U)
+#define FTFE_XACCH1_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH1_XA_SHIFT)) & FTFE_XACCH1_XA_MASK)
+/*! @} */
+
+/*! @name XACCH0 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH0_XA_MASK                      (0xFFU)
+#define FTFE_XACCH0_XA_SHIFT                     (0U)
+#define FTFE_XACCH0_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH0_XA_SHIFT)) & FTFE_XACCH0_XA_MASK)
+/*! @} */
+
+/*! @name XACCL3 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL3_XA_MASK                      (0xFFU)
+#define FTFE_XACCL3_XA_SHIFT                     (0U)
+#define FTFE_XACCL3_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL3_XA_SHIFT)) & FTFE_XACCL3_XA_MASK)
+/*! @} */
+
+/*! @name XACCL2 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL2_XA_MASK                      (0xFFU)
+#define FTFE_XACCL2_XA_SHIFT                     (0U)
+#define FTFE_XACCL2_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL2_XA_SHIFT)) & FTFE_XACCL2_XA_MASK)
+/*! @} */
+
+/*! @name XACCL1 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL1_XA_MASK                      (0xFFU)
+#define FTFE_XACCL1_XA_SHIFT                     (0U)
+#define FTFE_XACCL1_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL1_XA_SHIFT)) & FTFE_XACCL1_XA_MASK)
+/*! @} */
+
+/*! @name XACCL0 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL0_XA_MASK                      (0xFFU)
+#define FTFE_XACCL0_XA_SHIFT                     (0U)
+#define FTFE_XACCL0_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL0_XA_SHIFT)) & FTFE_XACCL0_XA_MASK)
+/*! @} */
+
+/*! @name SACCH3 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH3_SA_MASK                      (0xFFU)
+#define FTFE_SACCH3_SA_SHIFT                     (0U)
+#define FTFE_SACCH3_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH3_SA_SHIFT)) & FTFE_SACCH3_SA_MASK)
+/*! @} */
+
+/*! @name SACCH2 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH2_SA_MASK                      (0xFFU)
+#define FTFE_SACCH2_SA_SHIFT                     (0U)
+#define FTFE_SACCH2_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH2_SA_SHIFT)) & FTFE_SACCH2_SA_MASK)
+/*! @} */
+
+/*! @name SACCH1 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH1_SA_MASK                      (0xFFU)
+#define FTFE_SACCH1_SA_SHIFT                     (0U)
+#define FTFE_SACCH1_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH1_SA_SHIFT)) & FTFE_SACCH1_SA_MASK)
+/*! @} */
+
+/*! @name SACCH0 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH0_SA_MASK                      (0xFFU)
+#define FTFE_SACCH0_SA_SHIFT                     (0U)
+#define FTFE_SACCH0_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH0_SA_SHIFT)) & FTFE_SACCH0_SA_MASK)
+/*! @} */
+
+/*! @name SACCL3 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL3_SA_MASK                      (0xFFU)
+#define FTFE_SACCL3_SA_SHIFT                     (0U)
+#define FTFE_SACCL3_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL3_SA_SHIFT)) & FTFE_SACCL3_SA_MASK)
+/*! @} */
+
+/*! @name SACCL2 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL2_SA_MASK                      (0xFFU)
+#define FTFE_SACCL2_SA_SHIFT                     (0U)
+#define FTFE_SACCL2_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL2_SA_SHIFT)) & FTFE_SACCL2_SA_MASK)
+/*! @} */
+
+/*! @name SACCL1 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL1_SA_MASK                      (0xFFU)
+#define FTFE_SACCL1_SA_SHIFT                     (0U)
+#define FTFE_SACCL1_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL1_SA_SHIFT)) & FTFE_SACCL1_SA_MASK)
+/*! @} */
+
+/*! @name SACCL0 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL0_SA_MASK                      (0xFFU)
+#define FTFE_SACCL0_SA_SHIFT                     (0U)
+#define FTFE_SACCL0_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL0_SA_SHIFT)) & FTFE_SACCL0_SA_MASK)
+/*! @} */
+
+/*! @name XACCSL - Secondary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCSL_XA_S_MASK                    (0xFFU)
+#define FTFE_XACCSL_XA_S_SHIFT                   (0U)
+#define FTFE_XACCSL_XA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_XACCSL_XA_S_SHIFT)) & FTFE_XACCSL_XA_S_MASK)
+/*! @} */
+
+/*! @name XACCSH - Secondary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCSH_XA_S_MASK                    (0xFFU)
+#define FTFE_XACCSH_XA_S_SHIFT                   (0U)
+#define FTFE_XACCSH_XA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_XACCSH_XA_S_SHIFT)) & FTFE_XACCSH_XA_S_MASK)
+/*! @} */
+
+/*! @name SACCSL - Secondary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCSL_SA_S_MASK                    (0xFFU)
+#define FTFE_SACCSL_SA_S_SHIFT                   (0U)
+#define FTFE_SACCSL_SA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_SACCSL_SA_S_SHIFT)) & FTFE_SACCSL_SA_S_MASK)
+/*! @} */
+
+/*! @name SACCSH - Secondary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCSH_SA_S_MASK                    (0xFFU)
+#define FTFE_SACCSH_SA_S_SHIFT                   (0U)
+#define FTFE_SACCSH_SA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_SACCSH_SA_S_SHIFT)) & FTFE_SACCSH_SA_S_MASK)
+/*! @} */
+
+/*! @name FSTDBYCTL - Flash Standby Control Register */
+/*! @{ */
+#define FTFE_FSTDBYCTL_STDBYDIS_MASK             (0x1U)
+#define FTFE_FSTDBYCTL_STDBYDIS_SHIFT            (0U)
+/*! STDBYDIS - Standy Mode Disable
+ *  0b0..Standby mode enabled for flash blocks selected by STDBYx
+ *  0b1..Standby mode disabled (STDBYx ignored)
+ */
+#define FTFE_FSTDBYCTL_STDBYDIS(x)               (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBYCTL_STDBYDIS_SHIFT)) & FTFE_FSTDBYCTL_STDBYDIS_MASK)
+/*! @} */
+
+/*! @name FSTDBY - Flash Standby Register */
+/*! @{ */
+#define FTFE_FSTDBY_STDBY0_MASK                  (0x1U)
+#define FTFE_FSTDBY_STDBY0_SHIFT                 (0U)
+/*! STDBY0 - Standy Mode for Flash Block 0
+ *  0b0..Standby mode not enabled for flash block 0
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 0 (when SWAP=0/1, flash block 1/0 is the inactive block)
+ */
+#define FTFE_FSTDBY_STDBY0(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY0_SHIFT)) & FTFE_FSTDBY_STDBY0_MASK)
+#define FTFE_FSTDBY_STDBY1_MASK                  (0x2U)
+#define FTFE_FSTDBY_STDBY1_SHIFT                 (1U)
+/*! STDBY1 - Standy Mode for Flash Block 1
+ *  0b0..Standby mode not enabled for flash block 1
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 1 (when SWAP=0/1, flash block 1/0 is the inactive block)
+ */
+#define FTFE_FSTDBY_STDBY1(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY1_SHIFT)) & FTFE_FSTDBY_STDBY1_MASK)
+#define FTFE_FSTDBY_STDBY2_MASK                  (0x4U)
+#define FTFE_FSTDBY_STDBY2_SHIFT                 (2U)
+/*! STDBY2 - Standy Mode for Flash Block 2
+ *  0b0..Standby mode not enabled for flash block 2
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 2
+ */
+#define FTFE_FSTDBY_STDBY2(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY2_SHIFT)) & FTFE_FSTDBY_STDBY2_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group FTFE_Register_Masks */
+
+
+/* FTFE - Peripheral instance base addresses */
+/** Peripheral FTFE base address */
+#define FTFE_BASE                                (0x40023000u)
+/** Peripheral FTFE base pointer */
+#define FTFE                                     ((FTFE_Type *)FTFE_BASE)
+/** Array initializer of FTFE peripheral base addresses */
+#define FTFE_BASE_ADDRS                          { FTFE_BASE }
+/** Array initializer of FTFE peripheral base pointers */
+#define FTFE_BASE_PTRS                           { FTFE }
+/** Interrupt vectors for the FTFE peripheral type */
+#define FTFE_COMMAND_COMPLETE_IRQS               { FTFE_Command_Complete_IRQn }
+#define FTFE_READ_COLLISION_IRQS                 { FTFE_Read_Collision_IRQn }
+
+/*!
+ * @}
+ */ /* end of group FTFE_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- GPIO Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GPIO_Peripheral_Access_Layer GPIO Peripheral Access Layer
+ * @{
+ */
+
+/** GPIO - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PDOR;                              /**< Port Data Output Register, offset: 0x0 */
+  __O  uint32_t PSOR;                              /**< Port Set Output Register, offset: 0x4 */
+  __O  uint32_t PCOR;                              /**< Port Clear Output Register, offset: 0x8 */
+  __O  uint32_t PTOR;                              /**< Port Toggle Output Register, offset: 0xC */
+  __I  uint32_t PDIR;                              /**< Port Data Input Register, offset: 0x10 */
+  __IO uint32_t PDDR;                              /**< Port Data Direction Register, offset: 0x14 */
+} GPIO_Type;
+
+/* ----------------------------------------------------------------------------
+   -- GPIO Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GPIO_Register_Masks GPIO Register Masks
+ * @{
+ */
+
+/*! @name PDOR - Port Data Output Register */
+/*! @{ */
+#define GPIO_PDOR_PDO_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDOR_PDO_SHIFT                      (0U)
+#define GPIO_PDOR_PDO(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDOR_PDO_SHIFT)) & GPIO_PDOR_PDO_MASK)
+/*! @} */
+
+/*! @name PSOR - Port Set Output Register */
+/*! @{ */
+#define GPIO_PSOR_PTSO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PSOR_PTSO_SHIFT                     (0U)
+#define GPIO_PSOR_PTSO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PSOR_PTSO_SHIFT)) & GPIO_PSOR_PTSO_MASK)
+/*! @} */
+
+/*! @name PCOR - Port Clear Output Register */
+/*! @{ */
+#define GPIO_PCOR_PTCO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PCOR_PTCO_SHIFT                     (0U)
+#define GPIO_PCOR_PTCO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PCOR_PTCO_SHIFT)) & GPIO_PCOR_PTCO_MASK)
+/*! @} */
+
+/*! @name PTOR - Port Toggle Output Register */
+/*! @{ */
+#define GPIO_PTOR_PTTO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PTOR_PTTO_SHIFT                     (0U)
+#define GPIO_PTOR_PTTO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PTOR_PTTO_SHIFT)) & GPIO_PTOR_PTTO_MASK)
+/*! @} */
+
+/*! @name PDIR - Port Data Input Register */
+/*! @{ */
+#define GPIO_PDIR_PDI_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDIR_PDI_SHIFT                      (0U)
+#define GPIO_PDIR_PDI(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDIR_PDI_SHIFT)) & GPIO_PDIR_PDI_MASK)
+/*! @} */
+
+/*! @name PDDR - Port Data Direction Register */
+/*! @{ */
+#define GPIO_PDDR_PDD_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDDR_PDD_SHIFT                      (0U)
+#define GPIO_PDDR_PDD(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDDR_PDD_SHIFT)) & GPIO_PDDR_PDD_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group GPIO_Register_Masks */
+
+
+/* GPIO - Peripheral instance base addresses */
+/** Peripheral GPIOA base address */
+#define GPIOA_BASE                               (0x48020000u)
+/** Peripheral GPIOA base pointer */
+#define GPIOA                                    ((GPIO_Type *)GPIOA_BASE)
+/** Peripheral GPIOB base address */
+#define GPIOB_BASE                               (0x48020040u)
+/** Peripheral GPIOB base pointer */
+#define GPIOB                                    ((GPIO_Type *)GPIOB_BASE)
+/** Peripheral GPIOC base address */
+#define GPIOC_BASE                               (0x48020080u)
+/** Peripheral GPIOC base pointer */
+#define GPIOC                                    ((GPIO_Type *)GPIOC_BASE)
+/** Peripheral GPIOD base address */
+#define GPIOD_BASE                               (0x480200C0u)
+/** Peripheral GPIOD base pointer */
+#define GPIOD                                    ((GPIO_Type *)GPIOD_BASE)
+/** Peripheral GPIOE base address */
+#define GPIOE_BASE                               (0x4100F000u)
+/** Peripheral GPIOE base pointer */
+#define GPIOE                                    ((GPIO_Type *)GPIOE_BASE)
+/** Array initializer of GPIO peripheral base addresses */
+#define GPIO_BASE_ADDRS                          { GPIOA_BASE, GPIOB_BASE, GPIOC_BASE, GPIOD_BASE, GPIOE_BASE }
+/** Array initializer of GPIO peripheral base pointers */
+#define GPIO_BASE_PTRS                           { GPIOA, GPIOB, GPIOC, GPIOD, GPIOE }
+
+/*!
+ * @}
+ */ /* end of group GPIO_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- I2S Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup I2S_Peripheral_Access_Layer I2S Peripheral Access Layer
+ * @{
+ */
+
+/** I2S - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t TCSR;                              /**< SAI Transmit Control Register, offset: 0x8 */
+  __IO uint32_t TCR1;                              /**< SAI Transmit Configuration 1 Register, offset: 0xC */
+  __IO uint32_t TCR2;                              /**< SAI Transmit Configuration 2 Register, offset: 0x10 */
+  __IO uint32_t TCR3;                              /**< SAI Transmit Configuration 3 Register, offset: 0x14 */
+  __IO uint32_t TCR4;                              /**< SAI Transmit Configuration 4 Register, offset: 0x18 */
+  __IO uint32_t TCR5;                              /**< SAI Transmit Configuration 5 Register, offset: 0x1C */
+  __O  uint32_t TDR[2];                            /**< SAI Transmit Data Register, array offset: 0x20, array step: 0x4 */
+       uint8_t RESERVED_0[24];
+  __I  uint32_t TFR[2];                            /**< SAI Transmit FIFO Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_1[24];
+  __IO uint32_t TMR;                               /**< SAI Transmit Mask Register, offset: 0x60 */
+       uint8_t RESERVED_2[36];
+  __IO uint32_t RCSR;                              /**< SAI Receive Control Register, offset: 0x88 */
+  __IO uint32_t RCR1;                              /**< SAI Receive Configuration 1 Register, offset: 0x8C */
+  __IO uint32_t RCR2;                              /**< SAI Receive Configuration 2 Register, offset: 0x90 */
+  __IO uint32_t RCR3;                              /**< SAI Receive Configuration 3 Register, offset: 0x94 */
+  __IO uint32_t RCR4;                              /**< SAI Receive Configuration 4 Register, offset: 0x98 */
+  __IO uint32_t RCR5;                              /**< SAI Receive Configuration 5 Register, offset: 0x9C */
+  __I  uint32_t RDR[2];                            /**< SAI Receive Data Register, array offset: 0xA0, array step: 0x4 */
+       uint8_t RESERVED_3[24];
+  __I  uint32_t RFR[2];                            /**< SAI Receive FIFO Register, array offset: 0xC0, array step: 0x4 */
+       uint8_t RESERVED_4[24];
+  __IO uint32_t RMR;                               /**< SAI Receive Mask Register, offset: 0xE0 */
+} I2S_Type;
+
+/* ----------------------------------------------------------------------------
+   -- I2S Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup I2S_Register_Masks I2S Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define I2S_VERID_FEATURE_MASK                   (0xFFFFU)
+#define I2S_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard feature set.
+ */
+#define I2S_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << I2S_VERID_FEATURE_SHIFT)) & I2S_VERID_FEATURE_MASK)
+#define I2S_VERID_MINOR_MASK                     (0xFF0000U)
+#define I2S_VERID_MINOR_SHIFT                    (16U)
+#define I2S_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_VERID_MINOR_SHIFT)) & I2S_VERID_MINOR_MASK)
+#define I2S_VERID_MAJOR_MASK                     (0xFF000000U)
+#define I2S_VERID_MAJOR_SHIFT                    (24U)
+#define I2S_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_VERID_MAJOR_SHIFT)) & I2S_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define I2S_PARAM_DATALINE_MASK                  (0xFU)
+#define I2S_PARAM_DATALINE_SHIFT                 (0U)
+#define I2S_PARAM_DATALINE(x)                    (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_DATALINE_SHIFT)) & I2S_PARAM_DATALINE_MASK)
+#define I2S_PARAM_FIFO_MASK                      (0xF00U)
+#define I2S_PARAM_FIFO_SHIFT                     (8U)
+#define I2S_PARAM_FIFO(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_FIFO_SHIFT)) & I2S_PARAM_FIFO_MASK)
+#define I2S_PARAM_FRAME_MASK                     (0xF0000U)
+#define I2S_PARAM_FRAME_SHIFT                    (16U)
+#define I2S_PARAM_FRAME(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_FRAME_SHIFT)) & I2S_PARAM_FRAME_MASK)
+/*! @} */
+
+/*! @name TCSR - SAI Transmit Control Register */
+/*! @{ */
+#define I2S_TCSR_FRDE_MASK                       (0x1U)
+#define I2S_TCSR_FRDE_SHIFT                      (0U)
+/*! FRDE - FIFO Request DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_TCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRDE_SHIFT)) & I2S_TCSR_FRDE_MASK)
+#define I2S_TCSR_FWDE_MASK                       (0x2U)
+#define I2S_TCSR_FWDE_SHIFT                      (1U)
+/*! FWDE - FIFO Warning DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_TCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWDE_SHIFT)) & I2S_TCSR_FWDE_MASK)
+#define I2S_TCSR_FRIE_MASK                       (0x100U)
+#define I2S_TCSR_FRIE_SHIFT                      (8U)
+/*! FRIE - FIFO Request Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRIE_SHIFT)) & I2S_TCSR_FRIE_MASK)
+#define I2S_TCSR_FWIE_MASK                       (0x200U)
+#define I2S_TCSR_FWIE_SHIFT                      (9U)
+/*! FWIE - FIFO Warning Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWIE_SHIFT)) & I2S_TCSR_FWIE_MASK)
+#define I2S_TCSR_FEIE_MASK                       (0x400U)
+#define I2S_TCSR_FEIE_SHIFT                      (10U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEIE_SHIFT)) & I2S_TCSR_FEIE_MASK)
+#define I2S_TCSR_SEIE_MASK                       (0x800U)
+#define I2S_TCSR_SEIE_SHIFT                      (11U)
+/*! SEIE - Sync Error Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_TCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEIE_SHIFT)) & I2S_TCSR_SEIE_MASK)
+#define I2S_TCSR_WSIE_MASK                       (0x1000U)
+#define I2S_TCSR_WSIE_SHIFT                      (12U)
+/*! WSIE - Word Start Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_TCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSIE_SHIFT)) & I2S_TCSR_WSIE_MASK)
+#define I2S_TCSR_FRF_MASK                        (0x10000U)
+#define I2S_TCSR_FRF_SHIFT                       (16U)
+/*! FRF - FIFO Request Flag
+ *  0b0..Transmit FIFO watermark has not been reached.
+ *  0b1..Transmit FIFO watermark has been reached.
+ */
+#define I2S_TCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRF_SHIFT)) & I2S_TCSR_FRF_MASK)
+#define I2S_TCSR_FWF_MASK                        (0x20000U)
+#define I2S_TCSR_FWF_SHIFT                       (17U)
+/*! FWF - FIFO Warning Flag
+ *  0b0..No enabled transmit FIFO is empty.
+ *  0b1..Enabled transmit FIFO is empty.
+ */
+#define I2S_TCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWF_SHIFT)) & I2S_TCSR_FWF_MASK)
+#define I2S_TCSR_FEF_MASK                        (0x40000U)
+#define I2S_TCSR_FEF_SHIFT                       (18U)
+/*! FEF - FIFO Error Flag
+ *  0b0..Transmit underrun not detected.
+ *  0b1..Transmit underrun detected.
+ */
+#define I2S_TCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEF_SHIFT)) & I2S_TCSR_FEF_MASK)
+#define I2S_TCSR_SEF_MASK                        (0x80000U)
+#define I2S_TCSR_SEF_SHIFT                       (19U)
+/*! SEF - Sync Error Flag
+ *  0b0..Sync error not detected.
+ *  0b1..Frame sync error detected.
+ */
+#define I2S_TCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEF_SHIFT)) & I2S_TCSR_SEF_MASK)
+#define I2S_TCSR_WSF_MASK                        (0x100000U)
+#define I2S_TCSR_WSF_SHIFT                       (20U)
+/*! WSF - Word Start Flag
+ *  0b0..Start of word not detected.
+ *  0b1..Start of word detected.
+ */
+#define I2S_TCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSF_SHIFT)) & I2S_TCSR_WSF_MASK)
+#define I2S_TCSR_SR_MASK                         (0x1000000U)
+#define I2S_TCSR_SR_SHIFT                        (24U)
+/*! SR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Software reset.
+ */
+#define I2S_TCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SR_SHIFT)) & I2S_TCSR_SR_MASK)
+#define I2S_TCSR_FR_MASK                         (0x2000000U)
+#define I2S_TCSR_FR_SHIFT                        (25U)
+/*! FR - FIFO Reset
+ *  0b0..No effect.
+ *  0b1..FIFO reset.
+ */
+#define I2S_TCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FR_SHIFT)) & I2S_TCSR_FR_MASK)
+#define I2S_TCSR_BCE_MASK                        (0x10000000U)
+#define I2S_TCSR_BCE_SHIFT                       (28U)
+/*! BCE - Bit Clock Enable
+ *  0b0..Transmit bit clock is disabled.
+ *  0b1..Transmit bit clock is enabled.
+ */
+#define I2S_TCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_BCE_SHIFT)) & I2S_TCSR_BCE_MASK)
+#define I2S_TCSR_DBGE_MASK                       (0x20000000U)
+#define I2S_TCSR_DBGE_SHIFT                      (29U)
+/*! DBGE - Debug Enable
+ *  0b0..Transmitter is disabled in Debug mode, after completing the current frame.
+ *  0b1..Transmitter is enabled in Debug mode.
+ */
+#define I2S_TCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_DBGE_SHIFT)) & I2S_TCSR_DBGE_MASK)
+#define I2S_TCSR_STOPE_MASK                      (0x40000000U)
+#define I2S_TCSR_STOPE_SHIFT                     (30U)
+/*! STOPE - Stop Enable
+ *  0b0..Transmitter disabled in Stop mode.
+ *  0b1..Transmitter enabled in Stop mode.
+ */
+#define I2S_TCSR_STOPE(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_STOPE_SHIFT)) & I2S_TCSR_STOPE_MASK)
+#define I2S_TCSR_TE_MASK                         (0x80000000U)
+#define I2S_TCSR_TE_SHIFT                        (31U)
+/*! TE - Transmitter Enable
+ *  0b0..Transmitter is disabled.
+ *  0b1..Transmitter is enabled, or transmitter has been disabled and has not yet reached end of frame.
+ */
+#define I2S_TCSR_TE(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_TE_SHIFT)) & I2S_TCSR_TE_MASK)
+/*! @} */
+
+/*! @name TCR1 - SAI Transmit Configuration 1 Register */
+/*! @{ */
+#define I2S_TCR1_TFW_MASK                        (0x7U)
+#define I2S_TCR1_TFW_SHIFT                       (0U)
+#define I2S_TCR1_TFW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR1_TFW_SHIFT)) & I2S_TCR1_TFW_MASK)
+/*! @} */
+
+/*! @name TCR2 - SAI Transmit Configuration 2 Register */
+/*! @{ */
+#define I2S_TCR2_DIV_MASK                        (0xFFU)
+#define I2S_TCR2_DIV_SHIFT                       (0U)
+#define I2S_TCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_DIV_SHIFT)) & I2S_TCR2_DIV_MASK)
+#define I2S_TCR2_BCD_MASK                        (0x1000000U)
+#define I2S_TCR2_BCD_SHIFT                       (24U)
+/*! BCD - Bit Clock Direction
+ *  0b0..Bit clock is generated externally in Slave mode.
+ *  0b1..Bit clock is generated internally in Master mode.
+ */
+#define I2S_TCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCD_SHIFT)) & I2S_TCR2_BCD_MASK)
+#define I2S_TCR2_BCP_MASK                        (0x2000000U)
+#define I2S_TCR2_BCP_SHIFT                       (25U)
+/*! BCP - Bit Clock Polarity
+ *  0b0..Bit clock is active high with drive outputs on rising edge and sample inputs on falling edge.
+ *  0b1..Bit clock is active low with drive outputs on falling edge and sample inputs on rising edge.
+ */
+#define I2S_TCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCP_SHIFT)) & I2S_TCR2_BCP_MASK)
+#define I2S_TCR2_MSEL_MASK                       (0xC000000U)
+#define I2S_TCR2_MSEL_SHIFT                      (26U)
+/*! MSEL - MCLK Select
+ *  0b00..Bus Clock selected.
+ *  0b01..Master Clock (MCLK) 1 option selected.
+ *  0b10..Master Clock (MCLK) 2 option selected.
+ *  0b11..Master Clock (MCLK) 3 option selected.
+ */
+#define I2S_TCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_MSEL_SHIFT)) & I2S_TCR2_MSEL_MASK)
+#define I2S_TCR2_BCI_MASK                        (0x10000000U)
+#define I2S_TCR2_BCI_SHIFT                       (28U)
+/*! BCI - Bit Clock Input
+ *  0b0..No effect.
+ *  0b1..Internal logic is clocked as if bit clock was externally generated.
+ */
+#define I2S_TCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCI_SHIFT)) & I2S_TCR2_BCI_MASK)
+#define I2S_TCR2_BCS_MASK                        (0x20000000U)
+#define I2S_TCR2_BCS_SHIFT                       (29U)
+/*! BCS - Bit Clock Swap
+ *  0b0..Use the normal bit clock source.
+ *  0b1..Swap the bit clock source.
+ */
+#define I2S_TCR2_BCS(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCS_SHIFT)) & I2S_TCR2_BCS_MASK)
+#define I2S_TCR2_SYNC_MASK                       (0xC0000000U)
+#define I2S_TCR2_SYNC_SHIFT                      (30U)
+/*! SYNC - Synchronous Mode
+ *  0b00..Asynchronous mode.
+ *  0b01..Synchronous with receiver.
+ *  0b10..Synchronous with another SAI transmitter.
+ *  0b11..Synchronous with another SAI receiver.
+ */
+#define I2S_TCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_SYNC_SHIFT)) & I2S_TCR2_SYNC_MASK)
+/*! @} */
+
+/*! @name TCR3 - SAI Transmit Configuration 3 Register */
+/*! @{ */
+#define I2S_TCR3_WDFL_MASK                       (0x1FU)
+#define I2S_TCR3_WDFL_SHIFT                      (0U)
+#define I2S_TCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_WDFL_SHIFT)) & I2S_TCR3_WDFL_MASK)
+#define I2S_TCR3_TCE_MASK                        (0x30000U)
+#define I2S_TCR3_TCE_SHIFT                       (16U)
+#define I2S_TCR3_TCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_TCE_SHIFT)) & I2S_TCR3_TCE_MASK)
+#define I2S_TCR3_CFR_MASK                        (0x3000000U)
+#define I2S_TCR3_CFR_SHIFT                       (24U)
+#define I2S_TCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_CFR_SHIFT)) & I2S_TCR3_CFR_MASK)
+/*! @} */
+
+/*! @name TCR4 - SAI Transmit Configuration 4 Register */
+/*! @{ */
+#define I2S_TCR4_FSD_MASK                        (0x1U)
+#define I2S_TCR4_FSD_SHIFT                       (0U)
+/*! FSD - Frame Sync Direction
+ *  0b0..Frame sync is generated externally in Slave mode.
+ *  0b1..Frame sync is generated internally in Master mode.
+ */
+#define I2S_TCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSD_SHIFT)) & I2S_TCR4_FSD_MASK)
+#define I2S_TCR4_FSP_MASK                        (0x2U)
+#define I2S_TCR4_FSP_SHIFT                       (1U)
+/*! FSP - Frame Sync Polarity
+ *  0b0..Frame sync is active high.
+ *  0b1..Frame sync is active low.
+ */
+#define I2S_TCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSP_SHIFT)) & I2S_TCR4_FSP_MASK)
+#define I2S_TCR4_ONDEM_MASK                      (0x4U)
+#define I2S_TCR4_ONDEM_SHIFT                     (2U)
+/*! ONDEM - On Demand Mode
+ *  0b0..Internal frame sync is generated continuously.
+ *  0b1..Internal frame sync is generated when the FIFO warning flag is clear.
+ */
+#define I2S_TCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_ONDEM_SHIFT)) & I2S_TCR4_ONDEM_MASK)
+#define I2S_TCR4_FSE_MASK                        (0x8U)
+#define I2S_TCR4_FSE_SHIFT                       (3U)
+/*! FSE - Frame Sync Early
+ *  0b0..Frame sync asserts with the first bit of the frame.
+ *  0b1..Frame sync asserts one bit before the first bit of the frame.
+ */
+#define I2S_TCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSE_SHIFT)) & I2S_TCR4_FSE_MASK)
+#define I2S_TCR4_MF_MASK                         (0x10U)
+#define I2S_TCR4_MF_SHIFT                        (4U)
+/*! MF - MSB First
+ *  0b0..LSB is transmitted first.
+ *  0b1..MSB is transmitted first.
+ */
+#define I2S_TCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_MF_SHIFT)) & I2S_TCR4_MF_MASK)
+#define I2S_TCR4_CHMOD_MASK                      (0x20U)
+#define I2S_TCR4_CHMOD_SHIFT                     (5U)
+/*! CHMOD - Channel Mode
+ *  0b0..TDM mode, transmit data pins are tri-stated when slots are masked or channels are disabled.
+ *  0b1..Output mode, transmit data pins are never tri-stated and will output zero when slots are masked or channels are disabled.
+ */
+#define I2S_TCR4_CHMOD(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_CHMOD_SHIFT)) & I2S_TCR4_CHMOD_MASK)
+#define I2S_TCR4_SYWD_MASK                       (0x1F00U)
+#define I2S_TCR4_SYWD_SHIFT                      (8U)
+#define I2S_TCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_SYWD_SHIFT)) & I2S_TCR4_SYWD_MASK)
+#define I2S_TCR4_FRSZ_MASK                       (0x1F0000U)
+#define I2S_TCR4_FRSZ_SHIFT                      (16U)
+#define I2S_TCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FRSZ_SHIFT)) & I2S_TCR4_FRSZ_MASK)
+#define I2S_TCR4_FPACK_MASK                      (0x3000000U)
+#define I2S_TCR4_FPACK_SHIFT                     (24U)
+/*! FPACK - FIFO Packing Mode
+ *  0b00..FIFO packing is disabled
+ *  0b01..Reserved
+ *  0b10..8-bit FIFO packing is enabled
+ *  0b11..16-bit FIFO packing is enabled
+ */
+#define I2S_TCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FPACK_SHIFT)) & I2S_TCR4_FPACK_MASK)
+#define I2S_TCR4_FCOMB_MASK                      (0xC000000U)
+#define I2S_TCR4_FCOMB_SHIFT                     (26U)
+/*! FCOMB - FIFO Combine Mode
+ *  0b00..FIFO combine mode disabled.
+ *  0b01..FIFO combine mode enabled on FIFO reads (from transmit shift registers).
+ *  0b10..FIFO combine mode enabled on FIFO writes (by software).
+ *  0b11..FIFO combine mode enabled on FIFO reads (from transmit shift registers) and writes (by software).
+ */
+#define I2S_TCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FCOMB_SHIFT)) & I2S_TCR4_FCOMB_MASK)
+#define I2S_TCR4_FCONT_MASK                      (0x10000000U)
+#define I2S_TCR4_FCONT_SHIFT                     (28U)
+/*! FCONT - FIFO Continue on Error
+ *  0b0..On FIFO error, the SAI will continue from the start of the next frame after the FIFO error flag has been cleared.
+ *  0b1..On FIFO error, the SAI will continue from the same word that caused the FIFO error to set after the FIFO warning flag has been cleared.
+ */
+#define I2S_TCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FCONT_SHIFT)) & I2S_TCR4_FCONT_MASK)
+/*! @} */
+
+/*! @name TCR5 - SAI Transmit Configuration 5 Register */
+/*! @{ */
+#define I2S_TCR5_FBT_MASK                        (0x1F00U)
+#define I2S_TCR5_FBT_SHIFT                       (8U)
+#define I2S_TCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_FBT_SHIFT)) & I2S_TCR5_FBT_MASK)
+#define I2S_TCR5_W0W_MASK                        (0x1F0000U)
+#define I2S_TCR5_W0W_SHIFT                       (16U)
+#define I2S_TCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_W0W_SHIFT)) & I2S_TCR5_W0W_MASK)
+#define I2S_TCR5_WNW_MASK                        (0x1F000000U)
+#define I2S_TCR5_WNW_SHIFT                       (24U)
+#define I2S_TCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_WNW_SHIFT)) & I2S_TCR5_WNW_MASK)
+/*! @} */
+
+/*! @name TDR - SAI Transmit Data Register */
+/*! @{ */
+#define I2S_TDR_TDR_MASK                         (0xFFFFFFFFU)
+#define I2S_TDR_TDR_SHIFT                        (0U)
+#define I2S_TDR_TDR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TDR_TDR_SHIFT)) & I2S_TDR_TDR_MASK)
+/*! @} */
+
+/* The count of I2S_TDR */
+#define I2S_TDR_COUNT                            (2U)
+
+/*! @name TFR - SAI Transmit FIFO Register */
+/*! @{ */
+#define I2S_TFR_RFP_MASK                         (0xFU)
+#define I2S_TFR_RFP_SHIFT                        (0U)
+#define I2S_TFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_RFP_SHIFT)) & I2S_TFR_RFP_MASK)
+#define I2S_TFR_WFP_MASK                         (0xF0000U)
+#define I2S_TFR_WFP_SHIFT                        (16U)
+#define I2S_TFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_WFP_SHIFT)) & I2S_TFR_WFP_MASK)
+#define I2S_TFR_WCP_MASK                         (0x80000000U)
+#define I2S_TFR_WCP_SHIFT                        (31U)
+/*! WCP - Write Channel Pointer
+ *  0b0..No effect.
+ *  0b1..FIFO combine is enabled for FIFO writes and this FIFO will be written on the next FIFO write.
+ */
+#define I2S_TFR_WCP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_WCP_SHIFT)) & I2S_TFR_WCP_MASK)
+/*! @} */
+
+/* The count of I2S_TFR */
+#define I2S_TFR_COUNT                            (2U)
+
+/*! @name TMR - SAI Transmit Mask Register */
+/*! @{ */
+#define I2S_TMR_TWM_MASK                         (0xFFFFFFFFU)
+#define I2S_TMR_TWM_SHIFT                        (0U)
+/*! TWM - Transmit Word Mask
+ *  0b00000000000000000000000000000000..Word N is enabled.
+ *  0b00000000000000000000000000000001..Word N is masked. The transmit data pins are tri-stated or drive zero when masked.
+ */
+#define I2S_TMR_TWM(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TMR_TWM_SHIFT)) & I2S_TMR_TWM_MASK)
+/*! @} */
+
+/*! @name RCSR - SAI Receive Control Register */
+/*! @{ */
+#define I2S_RCSR_FRDE_MASK                       (0x1U)
+#define I2S_RCSR_FRDE_SHIFT                      (0U)
+/*! FRDE - FIFO Request DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_RCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRDE_SHIFT)) & I2S_RCSR_FRDE_MASK)
+#define I2S_RCSR_FWDE_MASK                       (0x2U)
+#define I2S_RCSR_FWDE_SHIFT                      (1U)
+/*! FWDE - FIFO Warning DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_RCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWDE_SHIFT)) & I2S_RCSR_FWDE_MASK)
+#define I2S_RCSR_FRIE_MASK                       (0x100U)
+#define I2S_RCSR_FRIE_SHIFT                      (8U)
+/*! FRIE - FIFO Request Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRIE_SHIFT)) & I2S_RCSR_FRIE_MASK)
+#define I2S_RCSR_FWIE_MASK                       (0x200U)
+#define I2S_RCSR_FWIE_SHIFT                      (9U)
+/*! FWIE - FIFO Warning Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWIE_SHIFT)) & I2S_RCSR_FWIE_MASK)
+#define I2S_RCSR_FEIE_MASK                       (0x400U)
+#define I2S_RCSR_FEIE_SHIFT                      (10U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEIE_SHIFT)) & I2S_RCSR_FEIE_MASK)
+#define I2S_RCSR_SEIE_MASK                       (0x800U)
+#define I2S_RCSR_SEIE_SHIFT                      (11U)
+/*! SEIE - Sync Error Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_RCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEIE_SHIFT)) & I2S_RCSR_SEIE_MASK)
+#define I2S_RCSR_WSIE_MASK                       (0x1000U)
+#define I2S_RCSR_WSIE_SHIFT                      (12U)
+/*! WSIE - Word Start Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_RCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSIE_SHIFT)) & I2S_RCSR_WSIE_MASK)
+#define I2S_RCSR_FRF_MASK                        (0x10000U)
+#define I2S_RCSR_FRF_SHIFT                       (16U)
+/*! FRF - FIFO Request Flag
+ *  0b0..Receive FIFO watermark not reached.
+ *  0b1..Receive FIFO watermark has been reached.
+ */
+#define I2S_RCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRF_SHIFT)) & I2S_RCSR_FRF_MASK)
+#define I2S_RCSR_FWF_MASK                        (0x20000U)
+#define I2S_RCSR_FWF_SHIFT                       (17U)
+/*! FWF - FIFO Warning Flag
+ *  0b0..No enabled receive FIFO is full.
+ *  0b1..Enabled receive FIFO is full.
+ */
+#define I2S_RCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWF_SHIFT)) & I2S_RCSR_FWF_MASK)
+#define I2S_RCSR_FEF_MASK                        (0x40000U)
+#define I2S_RCSR_FEF_SHIFT                       (18U)
+/*! FEF - FIFO Error Flag
+ *  0b0..Receive overflow not detected.
+ *  0b1..Receive overflow detected.
+ */
+#define I2S_RCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEF_SHIFT)) & I2S_RCSR_FEF_MASK)
+#define I2S_RCSR_SEF_MASK                        (0x80000U)
+#define I2S_RCSR_SEF_SHIFT                       (19U)
+/*! SEF - Sync Error Flag
+ *  0b0..Sync error not detected.
+ *  0b1..Frame sync error detected.
+ */
+#define I2S_RCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEF_SHIFT)) & I2S_RCSR_SEF_MASK)
+#define I2S_RCSR_WSF_MASK                        (0x100000U)
+#define I2S_RCSR_WSF_SHIFT                       (20U)
+/*! WSF - Word Start Flag
+ *  0b0..Start of word not detected.
+ *  0b1..Start of word detected.
+ */
+#define I2S_RCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSF_SHIFT)) & I2S_RCSR_WSF_MASK)
+#define I2S_RCSR_SR_MASK                         (0x1000000U)
+#define I2S_RCSR_SR_SHIFT                        (24U)
+/*! SR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Software reset.
+ */
+#define I2S_RCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SR_SHIFT)) & I2S_RCSR_SR_MASK)
+#define I2S_RCSR_FR_MASK                         (0x2000000U)
+#define I2S_RCSR_FR_SHIFT                        (25U)
+/*! FR - FIFO Reset
+ *  0b0..No effect.
+ *  0b1..FIFO reset.
+ */
+#define I2S_RCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FR_SHIFT)) & I2S_RCSR_FR_MASK)
+#define I2S_RCSR_BCE_MASK                        (0x10000000U)
+#define I2S_RCSR_BCE_SHIFT                       (28U)
+/*! BCE - Bit Clock Enable
+ *  0b0..Receive bit clock is disabled.
+ *  0b1..Receive bit clock is enabled.
+ */
+#define I2S_RCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_BCE_SHIFT)) & I2S_RCSR_BCE_MASK)
+#define I2S_RCSR_DBGE_MASK                       (0x20000000U)
+#define I2S_RCSR_DBGE_SHIFT                      (29U)
+/*! DBGE - Debug Enable
+ *  0b0..Receiver is disabled in Debug mode, after completing the current frame.
+ *  0b1..Receiver is enabled in Debug mode.
+ */
+#define I2S_RCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_DBGE_SHIFT)) & I2S_RCSR_DBGE_MASK)
+#define I2S_RCSR_STOPE_MASK                      (0x40000000U)
+#define I2S_RCSR_STOPE_SHIFT                     (30U)
+/*! STOPE - Stop Enable
+ *  0b0..Receiver disabled in Stop mode.
+ *  0b1..Receiver enabled in Stop mode.
+ */
+#define I2S_RCSR_STOPE(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_STOPE_SHIFT)) & I2S_RCSR_STOPE_MASK)
+#define I2S_RCSR_RE_MASK                         (0x80000000U)
+#define I2S_RCSR_RE_SHIFT                        (31U)
+/*! RE - Receiver Enable
+ *  0b0..Receiver is disabled.
+ *  0b1..Receiver is enabled, or receiver has been disabled and has not yet reached end of frame.
+ */
+#define I2S_RCSR_RE(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_RE_SHIFT)) & I2S_RCSR_RE_MASK)
+/*! @} */
+
+/*! @name RCR1 - SAI Receive Configuration 1 Register */
+/*! @{ */
+#define I2S_RCR1_RFW_MASK                        (0x7U)
+#define I2S_RCR1_RFW_SHIFT                       (0U)
+#define I2S_RCR1_RFW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR1_RFW_SHIFT)) & I2S_RCR1_RFW_MASK)
+/*! @} */
+
+/*! @name RCR2 - SAI Receive Configuration 2 Register */
+/*! @{ */
+#define I2S_RCR2_DIV_MASK                        (0xFFU)
+#define I2S_RCR2_DIV_SHIFT                       (0U)
+#define I2S_RCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_DIV_SHIFT)) & I2S_RCR2_DIV_MASK)
+#define I2S_RCR2_BCD_MASK                        (0x1000000U)
+#define I2S_RCR2_BCD_SHIFT                       (24U)
+/*! BCD - Bit Clock Direction
+ *  0b0..Bit clock is generated externally in Slave mode.
+ *  0b1..Bit clock is generated internally in Master mode.
+ */
+#define I2S_RCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCD_SHIFT)) & I2S_RCR2_BCD_MASK)
+#define I2S_RCR2_BCP_MASK                        (0x2000000U)
+#define I2S_RCR2_BCP_SHIFT                       (25U)
+/*! BCP - Bit Clock Polarity
+ *  0b0..Bit Clock is active high with drive outputs on rising edge and sample inputs on falling edge.
+ *  0b1..Bit Clock is active low with drive outputs on falling edge and sample inputs on rising edge.
+ */
+#define I2S_RCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCP_SHIFT)) & I2S_RCR2_BCP_MASK)
+#define I2S_RCR2_MSEL_MASK                       (0xC000000U)
+#define I2S_RCR2_MSEL_SHIFT                      (26U)
+/*! MSEL - MCLK Select
+ *  0b00..Bus Clock selected.
+ *  0b01..Master Clock (MCLK) 1 option selected.
+ *  0b10..Master Clock (MCLK) 2 option selected.
+ *  0b11..Master Clock (MCLK) 3 option selected.
+ */
+#define I2S_RCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_MSEL_SHIFT)) & I2S_RCR2_MSEL_MASK)
+#define I2S_RCR2_BCI_MASK                        (0x10000000U)
+#define I2S_RCR2_BCI_SHIFT                       (28U)
+/*! BCI - Bit Clock Input
+ *  0b0..No effect.
+ *  0b1..Internal logic is clocked as if bit clock was externally generated.
+ */
+#define I2S_RCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCI_SHIFT)) & I2S_RCR2_BCI_MASK)
+#define I2S_RCR2_BCS_MASK                        (0x20000000U)
+#define I2S_RCR2_BCS_SHIFT                       (29U)
+/*! BCS - Bit Clock Swap
+ *  0b0..Use the normal bit clock source.
+ *  0b1..Swap the bit clock source.
+ */
+#define I2S_RCR2_BCS(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCS_SHIFT)) & I2S_RCR2_BCS_MASK)
+#define I2S_RCR2_SYNC_MASK                       (0xC0000000U)
+#define I2S_RCR2_SYNC_SHIFT                      (30U)
+/*! SYNC - Synchronous Mode
+ *  0b00..Asynchronous mode.
+ *  0b01..Synchronous with transmitter.
+ *  0b10..Synchronous with another SAI receiver.
+ *  0b11..Synchronous with another SAI transmitter.
+ */
+#define I2S_RCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_SYNC_SHIFT)) & I2S_RCR2_SYNC_MASK)
+/*! @} */
+
+/*! @name RCR3 - SAI Receive Configuration 3 Register */
+/*! @{ */
+#define I2S_RCR3_WDFL_MASK                       (0x1FU)
+#define I2S_RCR3_WDFL_SHIFT                      (0U)
+#define I2S_RCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_WDFL_SHIFT)) & I2S_RCR3_WDFL_MASK)
+#define I2S_RCR3_RCE_MASK                        (0x30000U)
+#define I2S_RCR3_RCE_SHIFT                       (16U)
+#define I2S_RCR3_RCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_RCE_SHIFT)) & I2S_RCR3_RCE_MASK)
+#define I2S_RCR3_CFR_MASK                        (0x3000000U)
+#define I2S_RCR3_CFR_SHIFT                       (24U)
+#define I2S_RCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_CFR_SHIFT)) & I2S_RCR3_CFR_MASK)
+/*! @} */
+
+/*! @name RCR4 - SAI Receive Configuration 4 Register */
+/*! @{ */
+#define I2S_RCR4_FSD_MASK                        (0x1U)
+#define I2S_RCR4_FSD_SHIFT                       (0U)
+/*! FSD - Frame Sync Direction
+ *  0b0..Frame Sync is generated externally in Slave mode.
+ *  0b1..Frame Sync is generated internally in Master mode.
+ */
+#define I2S_RCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSD_SHIFT)) & I2S_RCR4_FSD_MASK)
+#define I2S_RCR4_FSP_MASK                        (0x2U)
+#define I2S_RCR4_FSP_SHIFT                       (1U)
+/*! FSP - Frame Sync Polarity
+ *  0b0..Frame sync is active high.
+ *  0b1..Frame sync is active low.
+ */
+#define I2S_RCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSP_SHIFT)) & I2S_RCR4_FSP_MASK)
+#define I2S_RCR4_ONDEM_MASK                      (0x4U)
+#define I2S_RCR4_ONDEM_SHIFT                     (2U)
+/*! ONDEM - On Demand Mode
+ *  0b0..Internal frame sync is generated continuously.
+ *  0b1..Internal frame sync is generated when the FIFO warning flag is clear.
+ */
+#define I2S_RCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_ONDEM_SHIFT)) & I2S_RCR4_ONDEM_MASK)
+#define I2S_RCR4_FSE_MASK                        (0x8U)
+#define I2S_RCR4_FSE_SHIFT                       (3U)
+/*! FSE - Frame Sync Early
+ *  0b0..Frame sync asserts with the first bit of the frame.
+ *  0b1..Frame sync asserts one bit before the first bit of the frame.
+ */
+#define I2S_RCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSE_SHIFT)) & I2S_RCR4_FSE_MASK)
+#define I2S_RCR4_MF_MASK                         (0x10U)
+#define I2S_RCR4_MF_SHIFT                        (4U)
+/*! MF - MSB First
+ *  0b0..LSB is received first.
+ *  0b1..MSB is received first.
+ */
+#define I2S_RCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_MF_SHIFT)) & I2S_RCR4_MF_MASK)
+#define I2S_RCR4_SYWD_MASK                       (0x1F00U)
+#define I2S_RCR4_SYWD_SHIFT                      (8U)
+#define I2S_RCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_SYWD_SHIFT)) & I2S_RCR4_SYWD_MASK)
+#define I2S_RCR4_FRSZ_MASK                       (0x1F0000U)
+#define I2S_RCR4_FRSZ_SHIFT                      (16U)
+#define I2S_RCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FRSZ_SHIFT)) & I2S_RCR4_FRSZ_MASK)
+#define I2S_RCR4_FPACK_MASK                      (0x3000000U)
+#define I2S_RCR4_FPACK_SHIFT                     (24U)
+/*! FPACK - FIFO Packing Mode
+ *  0b00..FIFO packing is disabled
+ *  0b01..Reserved.
+ *  0b10..8-bit FIFO packing is enabled
+ *  0b11..16-bit FIFO packing is enabled
+ */
+#define I2S_RCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FPACK_SHIFT)) & I2S_RCR4_FPACK_MASK)
+#define I2S_RCR4_FCOMB_MASK                      (0xC000000U)
+#define I2S_RCR4_FCOMB_SHIFT                     (26U)
+/*! FCOMB - FIFO Combine Mode
+ *  0b00..FIFO combine mode disabled.
+ *  0b01..FIFO combine mode enabled on FIFO writes (from receive shift registers).
+ *  0b10..FIFO combine mode enabled on FIFO reads (by software).
+ *  0b11..FIFO combine mode enabled on FIFO writes (from receive shift registers) and reads (by software).
+ */
+#define I2S_RCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FCOMB_SHIFT)) & I2S_RCR4_FCOMB_MASK)
+#define I2S_RCR4_FCONT_MASK                      (0x10000000U)
+#define I2S_RCR4_FCONT_SHIFT                     (28U)
+/*! FCONT - FIFO Continue on Error
+ *  0b0..On FIFO error, the SAI will continue from the start of the next frame after the FIFO error flag has been cleared.
+ *  0b1..On FIFO error, the SAI will continue from the same word that caused the FIFO error to set after the FIFO warning flag has been cleared.
+ */
+#define I2S_RCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FCONT_SHIFT)) & I2S_RCR4_FCONT_MASK)
+/*! @} */
+
+/*! @name RCR5 - SAI Receive Configuration 5 Register */
+/*! @{ */
+#define I2S_RCR5_FBT_MASK                        (0x1F00U)
+#define I2S_RCR5_FBT_SHIFT                       (8U)
+#define I2S_RCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_FBT_SHIFT)) & I2S_RCR5_FBT_MASK)
+#define I2S_RCR5_W0W_MASK                        (0x1F0000U)
+#define I2S_RCR5_W0W_SHIFT                       (16U)
+#define I2S_RCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_W0W_SHIFT)) & I2S_RCR5_W0W_MASK)
+#define I2S_RCR5_WNW_MASK                        (0x1F000000U)
+#define I2S_RCR5_WNW_SHIFT                       (24U)
+#define I2S_RCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_WNW_SHIFT)) & I2S_RCR5_WNW_MASK)
+/*! @} */
+
+/*! @name RDR - SAI Receive Data Register */
+/*! @{ */
+#define I2S_RDR_RDR_MASK                         (0xFFFFFFFFU)
+#define I2S_RDR_RDR_SHIFT                        (0U)
+#define I2S_RDR_RDR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RDR_RDR_SHIFT)) & I2S_RDR_RDR_MASK)
+/*! @} */
+
+/* The count of I2S_RDR */
+#define I2S_RDR_COUNT                            (2U)
+
+/*! @name RFR - SAI Receive FIFO Register */
+/*! @{ */
+#define I2S_RFR_RFP_MASK                         (0xFU)
+#define I2S_RFR_RFP_SHIFT                        (0U)
+#define I2S_RFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_RFP_SHIFT)) & I2S_RFR_RFP_MASK)
+#define I2S_RFR_RCP_MASK                         (0x8000U)
+#define I2S_RFR_RCP_SHIFT                        (15U)
+/*! RCP - Receive Channel Pointer
+ *  0b0..No effect.
+ *  0b1..FIFO combine is enabled for FIFO reads and this FIFO will be read on the next FIFO read.
+ */
+#define I2S_RFR_RCP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_RCP_SHIFT)) & I2S_RFR_RCP_MASK)
+#define I2S_RFR_WFP_MASK                         (0xF0000U)
+#define I2S_RFR_WFP_SHIFT                        (16U)
+#define I2S_RFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_WFP_SHIFT)) & I2S_RFR_WFP_MASK)
+/*! @} */
+
+/* The count of I2S_RFR */
+#define I2S_RFR_COUNT                            (2U)
+
+/*! @name RMR - SAI Receive Mask Register */
+/*! @{ */
+#define I2S_RMR_RWM_MASK                         (0xFFFFFFFFU)
+#define I2S_RMR_RWM_SHIFT                        (0U)
+/*! RWM - Receive Word Mask
+ *  0b00000000000000000000000000000000..Word N is enabled.
+ *  0b00000000000000000000000000000001..Word N is masked.
+ */
+#define I2S_RMR_RWM(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RMR_RWM_SHIFT)) & I2S_RMR_RWM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group I2S_Register_Masks */
+
+
+/* I2S - Peripheral instance base addresses */
+/** Peripheral I2S0 base address */
+#define I2S0_BASE                                (0x4003D000u)
+/** Peripheral I2S0 base pointer */
+#define I2S0                                     ((I2S_Type *)I2S0_BASE)
+/** Array initializer of I2S peripheral base addresses */
+#define I2S_BASE_ADDRS                           { I2S0_BASE }
+/** Array initializer of I2S peripheral base pointers */
+#define I2S_BASE_PTRS                            { I2S0 }
+/** Interrupt vectors for the I2S peripheral type */
+#define I2S_RX_IRQS                              { I2S0_IRQn }
+#define I2S_TX_IRQS                              { I2S0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group I2S_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- INTMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup INTMUX_Peripheral_Access_Layer INTMUX Peripheral Access Layer
+ * @{
+ */
+
+/** INTMUX - Register Layout Typedef */
+typedef struct {
+  struct {                                         /* offset: 0x0, array step: 0x40 */
+    __IO uint32_t CHn_CSR;                           /**< Channel n Control Status Register, array offset: 0x0, array step: 0x40 */
+    __I  uint32_t CHn_VEC;                           /**< Channel n Vector Number Register, array offset: 0x4, array step: 0x40 */
+         uint8_t RESERVED_0[8];
+    __IO uint32_t CHn_IER_31_0;                      /**< Channel n Interrupt Enable Register, array offset: 0x10, array step: 0x40 */
+         uint8_t RESERVED_1[12];
+    __I  uint32_t CHn_IPR_31_0;                      /**< Channel n Interrupt Pending Register, array offset: 0x20, array step: 0x40 */
+         uint8_t RESERVED_2[28];
+  } CHANNEL[8];
+} INTMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- INTMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup INTMUX_Register_Masks INTMUX Register Masks
+ * @{
+ */
+
+/*! @name CHn_CSR - Channel n Control Status Register */
+/*! @{ */
+#define INTMUX_CHn_CSR_RST_MASK                  (0x1U)
+#define INTMUX_CHn_CSR_RST_SHIFT                 (0U)
+/*! RST - Software Reset
+ *  0b0..No operation.
+ *  0b1..Perform a software reset on this channel.
+ */
+#define INTMUX_CHn_CSR_RST(x)                    (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_RST_SHIFT)) & INTMUX_CHn_CSR_RST_MASK)
+#define INTMUX_CHn_CSR_AND_MASK                  (0x2U)
+#define INTMUX_CHn_CSR_AND_SHIFT                 (1U)
+/*! AND - Logic AND
+ *  0b0..Logic OR all enabled interrupt inputs.
+ *  0b1..Logic AND all enabled interrupt inputs.
+ */
+#define INTMUX_CHn_CSR_AND(x)                    (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_AND_SHIFT)) & INTMUX_CHn_CSR_AND_MASK)
+#define INTMUX_CHn_CSR_IRQN_MASK                 (0x30U)
+#define INTMUX_CHn_CSR_IRQN_SHIFT                (4U)
+/*! IRQN - Channel Input Number
+ *  0b00..32 interrupt inputs
+ *  0b01..Reserved
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define INTMUX_CHn_CSR_IRQN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_IRQN_SHIFT)) & INTMUX_CHn_CSR_IRQN_MASK)
+#define INTMUX_CHn_CSR_CHIN_MASK                 (0xF00U)
+#define INTMUX_CHn_CSR_CHIN_SHIFT                (8U)
+#define INTMUX_CHn_CSR_CHIN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_CHIN_SHIFT)) & INTMUX_CHn_CSR_CHIN_MASK)
+#define INTMUX_CHn_CSR_IRQP_MASK                 (0x80000000U)
+#define INTMUX_CHn_CSR_IRQP_SHIFT                (31U)
+/*! IRQP - Channel Interrupt Request Pending
+ *  0b0..No interrupt is pending.
+ *  0b1..The interrupt output of this channel is pending.
+ */
+#define INTMUX_CHn_CSR_IRQP(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_IRQP_SHIFT)) & INTMUX_CHn_CSR_IRQP_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_CSR */
+#define INTMUX_CHn_CSR_COUNT                     (8U)
+
+/*! @name CHn_VEC - Channel n Vector Number Register */
+/*! @{ */
+#define INTMUX_CHn_VEC_VECN_MASK                 (0x3FFCU)
+#define INTMUX_CHn_VEC_VECN_SHIFT                (2U)
+#define INTMUX_CHn_VEC_VECN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_VEC_VECN_SHIFT)) & INTMUX_CHn_VEC_VECN_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_VEC */
+#define INTMUX_CHn_VEC_COUNT                     (8U)
+
+/*! @name CHn_IER_31_0 - Channel n Interrupt Enable Register */
+/*! @{ */
+#define INTMUX_CHn_IER_31_0_INTE_MASK            (0xFFFFFFFFU)
+#define INTMUX_CHn_IER_31_0_INTE_SHIFT           (0U)
+#define INTMUX_CHn_IER_31_0_INTE(x)              (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_IER_31_0_INTE_SHIFT)) & INTMUX_CHn_IER_31_0_INTE_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_IER_31_0 */
+#define INTMUX_CHn_IER_31_0_COUNT                (8U)
+
+/*! @name CHn_IPR_31_0 - Channel n Interrupt Pending Register */
+/*! @{ */
+#define INTMUX_CHn_IPR_31_0_INTP_MASK            (0xFFFFFFFFU)
+#define INTMUX_CHn_IPR_31_0_INTP_SHIFT           (0U)
+#define INTMUX_CHn_IPR_31_0_INTP(x)              (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_IPR_31_0_INTP_SHIFT)) & INTMUX_CHn_IPR_31_0_INTP_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_IPR_31_0 */
+#define INTMUX_CHn_IPR_31_0_COUNT                (8U)
+
+
+/*!
+ * @}
+ */ /* end of group INTMUX_Register_Masks */
+
+
+/* INTMUX - Peripheral instance base addresses */
+/** Peripheral INTMUX0 base address */
+#define INTMUX0_BASE                             (0x4004F000u)
+/** Peripheral INTMUX0 base pointer */
+#define INTMUX0                                  ((INTMUX_Type *)INTMUX0_BASE)
+/** Array initializer of INTMUX peripheral base addresses */
+#define INTMUX_BASE_ADDRS                        { INTMUX0_BASE }
+/** Array initializer of INTMUX peripheral base pointers */
+#define INTMUX_BASE_PTRS                         { INTMUX0 }
+/** Interrupt vectors for the INTMUX peripheral type */
+#define INTMUX_IRQS                              { { INTMUX0_0_IRQn, INTMUX0_1_IRQn, INTMUX0_2_IRQn, INTMUX0_3_IRQn, INTMUX0_4_IRQn, INTMUX0_5_IRQn, INTMUX0_6_IRQn, INTMUX0_7_IRQn },  }
+
+/*!
+ * @}
+ */ /* end of group INTMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LLWU Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LLWU_Peripheral_Access_Layer LLWU Peripheral Access Layer
+ * @{
+ */
+
+/** LLWU - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t PE1;                               /**< Pin Enable 1 register, offset: 0x8 */
+  __IO uint32_t PE2;                               /**< Pin Enable 2 register, offset: 0xC */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t ME;                                /**< Module Interrupt Enable register, offset: 0x18 */
+  __IO uint32_t DE;                                /**< Module DMA/Trigger Enable register, offset: 0x1C */
+  __IO uint32_t PF;                                /**< Pin Flag register, offset: 0x20 */
+       uint8_t RESERVED_1[12];
+  __IO uint32_t FILT;                              /**< Pin Filter register, offset: 0x30 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t PDC1;                              /**< Pin DMA/Trigger Configuration 1 register, offset: 0x38 */
+  __IO uint32_t PDC2;                              /**< Pin DMA/Trigger Configuration 2 register, offset: 0x3C */
+       uint8_t RESERVED_3[8];
+  __IO uint32_t FDC;                               /**< Pin Filter DMA/Trigger Configuration register, offset: 0x48 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t PMC;                               /**< Pin Mode Configuration register, offset: 0x50 */
+       uint8_t RESERVED_5[4];
+  __IO uint32_t FMC;                               /**< Pin Filter Mode Configuration register, offset: 0x58 */
+} LLWU_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LLWU Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LLWU_Register_Masks LLWU Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LLWU_VERID_FEATURE_MASK                  (0xFFFFU)
+#define LLWU_VERID_FEATURE_SHIFT                 (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented
+ *  0b0000000000000001..Support for DMA/Trigger generation from wakeup pins and filters enabled. Support for external pin/filter detection during all power modes enabled.
+ */
+#define LLWU_VERID_FEATURE(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_FEATURE_SHIFT)) & LLWU_VERID_FEATURE_MASK)
+#define LLWU_VERID_MINOR_MASK                    (0xFF0000U)
+#define LLWU_VERID_MINOR_SHIFT                   (16U)
+#define LLWU_VERID_MINOR(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_MINOR_SHIFT)) & LLWU_VERID_MINOR_MASK)
+#define LLWU_VERID_MAJOR_MASK                    (0xFF000000U)
+#define LLWU_VERID_MAJOR_SHIFT                   (24U)
+#define LLWU_VERID_MAJOR(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_MAJOR_SHIFT)) & LLWU_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LLWU_PARAM_FILTERS_MASK                  (0xFFU)
+#define LLWU_PARAM_FILTERS_SHIFT                 (0U)
+#define LLWU_PARAM_FILTERS(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_FILTERS_SHIFT)) & LLWU_PARAM_FILTERS_MASK)
+#define LLWU_PARAM_DMAS_MASK                     (0xFF00U)
+#define LLWU_PARAM_DMAS_SHIFT                    (8U)
+#define LLWU_PARAM_DMAS(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_DMAS_SHIFT)) & LLWU_PARAM_DMAS_MASK)
+#define LLWU_PARAM_MODULES_MASK                  (0xFF0000U)
+#define LLWU_PARAM_MODULES_SHIFT                 (16U)
+#define LLWU_PARAM_MODULES(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_MODULES_SHIFT)) & LLWU_PARAM_MODULES_MASK)
+#define LLWU_PARAM_PINS_MASK                     (0xFF000000U)
+#define LLWU_PARAM_PINS_SHIFT                    (24U)
+#define LLWU_PARAM_PINS(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_PINS_SHIFT)) & LLWU_PARAM_PINS_MASK)
+/*! @} */
+
+/*! @name PE1 - Pin Enable 1 register */
+/*! @{ */
+#define LLWU_PE1_WUPE0_MASK                      (0x3U)
+#define LLWU_PE1_WUPE0_SHIFT                     (0U)
+/*! WUPE0 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE0(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE0_SHIFT)) & LLWU_PE1_WUPE0_MASK)
+#define LLWU_PE1_WUPE1_MASK                      (0xCU)
+#define LLWU_PE1_WUPE1_SHIFT                     (2U)
+/*! WUPE1 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE1(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE1_SHIFT)) & LLWU_PE1_WUPE1_MASK)
+#define LLWU_PE1_WUPE2_MASK                      (0x30U)
+#define LLWU_PE1_WUPE2_SHIFT                     (4U)
+/*! WUPE2 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE2(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE2_SHIFT)) & LLWU_PE1_WUPE2_MASK)
+#define LLWU_PE1_WUPE3_MASK                      (0xC0U)
+#define LLWU_PE1_WUPE3_SHIFT                     (6U)
+/*! WUPE3 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE3(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE3_SHIFT)) & LLWU_PE1_WUPE3_MASK)
+#define LLWU_PE1_WUPE4_MASK                      (0x300U)
+#define LLWU_PE1_WUPE4_SHIFT                     (8U)
+/*! WUPE4 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE4(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE4_SHIFT)) & LLWU_PE1_WUPE4_MASK)
+#define LLWU_PE1_WUPE5_MASK                      (0xC00U)
+#define LLWU_PE1_WUPE5_SHIFT                     (10U)
+/*! WUPE5 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE5(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE5_SHIFT)) & LLWU_PE1_WUPE5_MASK)
+#define LLWU_PE1_WUPE6_MASK                      (0x3000U)
+#define LLWU_PE1_WUPE6_SHIFT                     (12U)
+/*! WUPE6 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE6(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE6_SHIFT)) & LLWU_PE1_WUPE6_MASK)
+#define LLWU_PE1_WUPE7_MASK                      (0xC000U)
+#define LLWU_PE1_WUPE7_SHIFT                     (14U)
+/*! WUPE7 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE7(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE7_SHIFT)) & LLWU_PE1_WUPE7_MASK)
+#define LLWU_PE1_WUPE8_MASK                      (0x30000U)
+#define LLWU_PE1_WUPE8_SHIFT                     (16U)
+/*! WUPE8 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE8(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE8_SHIFT)) & LLWU_PE1_WUPE8_MASK)
+#define LLWU_PE1_WUPE9_MASK                      (0xC0000U)
+#define LLWU_PE1_WUPE9_SHIFT                     (18U)
+/*! WUPE9 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE9(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE9_SHIFT)) & LLWU_PE1_WUPE9_MASK)
+#define LLWU_PE1_WUPE10_MASK                     (0x300000U)
+#define LLWU_PE1_WUPE10_SHIFT                    (20U)
+/*! WUPE10 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE10(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE10_SHIFT)) & LLWU_PE1_WUPE10_MASK)
+#define LLWU_PE1_WUPE11_MASK                     (0xC00000U)
+#define LLWU_PE1_WUPE11_SHIFT                    (22U)
+/*! WUPE11 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE11(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE11_SHIFT)) & LLWU_PE1_WUPE11_MASK)
+#define LLWU_PE1_WUPE12_MASK                     (0x3000000U)
+#define LLWU_PE1_WUPE12_SHIFT                    (24U)
+/*! WUPE12 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE12(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE12_SHIFT)) & LLWU_PE1_WUPE12_MASK)
+#define LLWU_PE1_WUPE13_MASK                     (0xC000000U)
+#define LLWU_PE1_WUPE13_SHIFT                    (26U)
+/*! WUPE13 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE13(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE13_SHIFT)) & LLWU_PE1_WUPE13_MASK)
+#define LLWU_PE1_WUPE14_MASK                     (0x30000000U)
+#define LLWU_PE1_WUPE14_SHIFT                    (28U)
+/*! WUPE14 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE14(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE14_SHIFT)) & LLWU_PE1_WUPE14_MASK)
+#define LLWU_PE1_WUPE15_MASK                     (0xC0000000U)
+#define LLWU_PE1_WUPE15_SHIFT                    (30U)
+/*! WUPE15 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE15(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE15_SHIFT)) & LLWU_PE1_WUPE15_MASK)
+/*! @} */
+
+/*! @name PE2 - Pin Enable 2 register */
+/*! @{ */
+#define LLWU_PE2_WUPE16_MASK                     (0x3U)
+#define LLWU_PE2_WUPE16_SHIFT                    (0U)
+/*! WUPE16 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE16(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE16_SHIFT)) & LLWU_PE2_WUPE16_MASK)
+#define LLWU_PE2_WUPE17_MASK                     (0xCU)
+#define LLWU_PE2_WUPE17_SHIFT                    (2U)
+/*! WUPE17 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE17(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE17_SHIFT)) & LLWU_PE2_WUPE17_MASK)
+#define LLWU_PE2_WUPE18_MASK                     (0x30U)
+#define LLWU_PE2_WUPE18_SHIFT                    (4U)
+/*! WUPE18 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE18(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE18_SHIFT)) & LLWU_PE2_WUPE18_MASK)
+#define LLWU_PE2_WUPE19_MASK                     (0xC0U)
+#define LLWU_PE2_WUPE19_SHIFT                    (6U)
+/*! WUPE19 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE19(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE19_SHIFT)) & LLWU_PE2_WUPE19_MASK)
+#define LLWU_PE2_WUPE20_MASK                     (0x300U)
+#define LLWU_PE2_WUPE20_SHIFT                    (8U)
+/*! WUPE20 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE20(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE20_SHIFT)) & LLWU_PE2_WUPE20_MASK)
+#define LLWU_PE2_WUPE21_MASK                     (0xC00U)
+#define LLWU_PE2_WUPE21_SHIFT                    (10U)
+/*! WUPE21 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE21(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE21_SHIFT)) & LLWU_PE2_WUPE21_MASK)
+#define LLWU_PE2_WUPE22_MASK                     (0x3000U)
+#define LLWU_PE2_WUPE22_SHIFT                    (12U)
+/*! WUPE22 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE22(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE22_SHIFT)) & LLWU_PE2_WUPE22_MASK)
+#define LLWU_PE2_WUPE23_MASK                     (0xC000U)
+#define LLWU_PE2_WUPE23_SHIFT                    (14U)
+/*! WUPE23 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE23(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE23_SHIFT)) & LLWU_PE2_WUPE23_MASK)
+#define LLWU_PE2_WUPE24_MASK                     (0x30000U)
+#define LLWU_PE2_WUPE24_SHIFT                    (16U)
+/*! WUPE24 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE24(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE24_SHIFT)) & LLWU_PE2_WUPE24_MASK)
+#define LLWU_PE2_WUPE25_MASK                     (0xC0000U)
+#define LLWU_PE2_WUPE25_SHIFT                    (18U)
+/*! WUPE25 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE25(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE25_SHIFT)) & LLWU_PE2_WUPE25_MASK)
+#define LLWU_PE2_WUPE26_MASK                     (0x300000U)
+#define LLWU_PE2_WUPE26_SHIFT                    (20U)
+/*! WUPE26 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE26(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE26_SHIFT)) & LLWU_PE2_WUPE26_MASK)
+#define LLWU_PE2_Reserved27_MASK                 (0xC00000U)
+#define LLWU_PE2_Reserved27_SHIFT                (22U)
+/*! Reserved27 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_Reserved27(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_Reserved27_SHIFT)) & LLWU_PE2_Reserved27_MASK)
+#define LLWU_PE2_Reserved28_MASK                 (0x3000000U)
+#define LLWU_PE2_Reserved28_SHIFT                (24U)
+/*! Reserved28 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_Reserved28(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_Reserved28_SHIFT)) & LLWU_PE2_Reserved28_MASK)
+#define LLWU_PE2_WUPE29_MASK                     (0xC000000U)
+#define LLWU_PE2_WUPE29_SHIFT                    (26U)
+/*! WUPE29 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE29(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE29_SHIFT)) & LLWU_PE2_WUPE29_MASK)
+#define LLWU_PE2_WUPE30_MASK                     (0x30000000U)
+#define LLWU_PE2_WUPE30_SHIFT                    (28U)
+/*! WUPE30 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE30(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE30_SHIFT)) & LLWU_PE2_WUPE30_MASK)
+#define LLWU_PE2_WUPE31_MASK                     (0xC0000000U)
+#define LLWU_PE2_WUPE31_SHIFT                    (30U)
+/*! WUPE31 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE31(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE31_SHIFT)) & LLWU_PE2_WUPE31_MASK)
+/*! @} */
+
+/*! @name ME - Module Interrupt Enable register */
+/*! @{ */
+#define LLWU_ME_WUME0_MASK                       (0x1U)
+#define LLWU_ME_WUME0_SHIFT                      (0U)
+/*! WUME0 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME0(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME0_SHIFT)) & LLWU_ME_WUME0_MASK)
+#define LLWU_ME_WUME1_MASK                       (0x2U)
+#define LLWU_ME_WUME1_SHIFT                      (1U)
+/*! WUME1 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME1(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME1_SHIFT)) & LLWU_ME_WUME1_MASK)
+#define LLWU_ME_WUME2_MASK                       (0x4U)
+#define LLWU_ME_WUME2_SHIFT                      (2U)
+/*! WUME2 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME2(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME2_SHIFT)) & LLWU_ME_WUME2_MASK)
+#define LLWU_ME_Reserved3_MASK                   (0x8U)
+#define LLWU_ME_Reserved3_SHIFT                  (3U)
+/*! Reserved3 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_Reserved3(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_ME_Reserved3_SHIFT)) & LLWU_ME_Reserved3_MASK)
+#define LLWU_ME_WUME3_MASK                       (0x8U)
+#define LLWU_ME_WUME3_SHIFT                      (3U)
+/*! WUME3 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME3(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME3_SHIFT)) & LLWU_ME_WUME3_MASK)
+#define LLWU_ME_Reserved4_MASK                   (0x10U)
+#define LLWU_ME_Reserved4_SHIFT                  (4U)
+/*! Reserved4 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_Reserved4(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_ME_Reserved4_SHIFT)) & LLWU_ME_Reserved4_MASK)
+#define LLWU_ME_WUME5_MASK                       (0x20U)
+#define LLWU_ME_WUME5_SHIFT                      (5U)
+/*! WUME5 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME5(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME5_SHIFT)) & LLWU_ME_WUME5_MASK)
+#define LLWU_ME_WUME6_MASK                       (0x40U)
+#define LLWU_ME_WUME6_SHIFT                      (6U)
+/*! WUME6 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME6(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME6_SHIFT)) & LLWU_ME_WUME6_MASK)
+#define LLWU_ME_WUME7_MASK                       (0x80U)
+#define LLWU_ME_WUME7_SHIFT                      (7U)
+/*! WUME7 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME7(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME7_SHIFT)) & LLWU_ME_WUME7_MASK)
+/*! @} */
+
+/*! @name DE - Module DMA/Trigger Enable register */
+/*! @{ */
+#define LLWU_DE_WUDE0_MASK                       (0x1U)
+#define LLWU_DE_WUDE0_SHIFT                      (0U)
+/*! WUDE0 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE0(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE0_SHIFT)) & LLWU_DE_WUDE0_MASK)
+#define LLWU_DE_WUDE1_MASK                       (0x2U)
+#define LLWU_DE_WUDE1_SHIFT                      (1U)
+/*! WUDE1 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE1(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE1_SHIFT)) & LLWU_DE_WUDE1_MASK)
+#define LLWU_DE_WUDE2_MASK                       (0x4U)
+#define LLWU_DE_WUDE2_SHIFT                      (2U)
+/*! WUDE2 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE2(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE2_SHIFT)) & LLWU_DE_WUDE2_MASK)
+#define LLWU_DE_Reserved3_MASK                   (0x8U)
+#define LLWU_DE_Reserved3_SHIFT                  (3U)
+/*! Reserved3 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_Reserved3(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_DE_Reserved3_SHIFT)) & LLWU_DE_Reserved3_MASK)
+#define LLWU_DE_WUDE4_MASK                       (0x10U)
+#define LLWU_DE_WUDE4_SHIFT                      (4U)
+/*! WUDE4 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE4(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE4_SHIFT)) & LLWU_DE_WUDE4_MASK)
+#define LLWU_DE_WUDE5_MASK                       (0x20U)
+#define LLWU_DE_WUDE5_SHIFT                      (5U)
+/*! WUDE5 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE5(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE5_SHIFT)) & LLWU_DE_WUDE5_MASK)
+#define LLWU_DE_WUDE6_MASK                       (0x40U)
+#define LLWU_DE_WUDE6_SHIFT                      (6U)
+/*! WUDE6 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE6(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE6_SHIFT)) & LLWU_DE_WUDE6_MASK)
+#define LLWU_DE_Reserved7_MASK                   (0x80U)
+#define LLWU_DE_Reserved7_SHIFT                  (7U)
+/*! Reserved7 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_Reserved7(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_DE_Reserved7_SHIFT)) & LLWU_DE_Reserved7_MASK)
+/*! @} */
+
+/*! @name PF - Pin Flag register */
+/*! @{ */
+#define LLWU_PF_WUF0_MASK                        (0x1U)
+#define LLWU_PF_WUF0_SHIFT                       (0U)
+/*! WUF0 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF0(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF0_SHIFT)) & LLWU_PF_WUF0_MASK)
+#define LLWU_PF_WUF1_MASK                        (0x2U)
+#define LLWU_PF_WUF1_SHIFT                       (1U)
+/*! WUF1 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF1(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF1_SHIFT)) & LLWU_PF_WUF1_MASK)
+#define LLWU_PF_WUF2_MASK                        (0x4U)
+#define LLWU_PF_WUF2_SHIFT                       (2U)
+/*! WUF2 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF2(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF2_SHIFT)) & LLWU_PF_WUF2_MASK)
+#define LLWU_PF_WUF3_MASK                        (0x8U)
+#define LLWU_PF_WUF3_SHIFT                       (3U)
+/*! WUF3 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF3(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF3_SHIFT)) & LLWU_PF_WUF3_MASK)
+#define LLWU_PF_WUF4_MASK                        (0x10U)
+#define LLWU_PF_WUF4_SHIFT                       (4U)
+/*! WUF4 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF4(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF4_SHIFT)) & LLWU_PF_WUF4_MASK)
+#define LLWU_PF_WUF5_MASK                        (0x20U)
+#define LLWU_PF_WUF5_SHIFT                       (5U)
+/*! WUF5 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF5(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF5_SHIFT)) & LLWU_PF_WUF5_MASK)
+#define LLWU_PF_WUF6_MASK                        (0x40U)
+#define LLWU_PF_WUF6_SHIFT                       (6U)
+/*! WUF6 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF6(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF6_SHIFT)) & LLWU_PF_WUF6_MASK)
+#define LLWU_PF_WUF7_MASK                        (0x80U)
+#define LLWU_PF_WUF7_SHIFT                       (7U)
+/*! WUF7 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF7(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF7_SHIFT)) & LLWU_PF_WUF7_MASK)
+#define LLWU_PF_WUF8_MASK                        (0x100U)
+#define LLWU_PF_WUF8_SHIFT                       (8U)
+/*! WUF8 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF8(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF8_SHIFT)) & LLWU_PF_WUF8_MASK)
+#define LLWU_PF_WUF9_MASK                        (0x200U)
+#define LLWU_PF_WUF9_SHIFT                       (9U)
+/*! WUF9 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF9(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF9_SHIFT)) & LLWU_PF_WUF9_MASK)
+#define LLWU_PF_WUF10_MASK                       (0x400U)
+#define LLWU_PF_WUF10_SHIFT                      (10U)
+/*! WUF10 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF10(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF10_SHIFT)) & LLWU_PF_WUF10_MASK)
+#define LLWU_PF_WUF11_MASK                       (0x800U)
+#define LLWU_PF_WUF11_SHIFT                      (11U)
+/*! WUF11 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF11(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF11_SHIFT)) & LLWU_PF_WUF11_MASK)
+#define LLWU_PF_WUF12_MASK                       (0x1000U)
+#define LLWU_PF_WUF12_SHIFT                      (12U)
+/*! WUF12 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF12(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF12_SHIFT)) & LLWU_PF_WUF12_MASK)
+#define LLWU_PF_WUF13_MASK                       (0x2000U)
+#define LLWU_PF_WUF13_SHIFT                      (13U)
+/*! WUF13 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF13(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF13_SHIFT)) & LLWU_PF_WUF13_MASK)
+#define LLWU_PF_WUF14_MASK                       (0x4000U)
+#define LLWU_PF_WUF14_SHIFT                      (14U)
+/*! WUF14 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF14(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF14_SHIFT)) & LLWU_PF_WUF14_MASK)
+#define LLWU_PF_WUF15_MASK                       (0x8000U)
+#define LLWU_PF_WUF15_SHIFT                      (15U)
+/*! WUF15 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF15(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF15_SHIFT)) & LLWU_PF_WUF15_MASK)
+#define LLWU_PF_WUF16_MASK                       (0x10000U)
+#define LLWU_PF_WUF16_SHIFT                      (16U)
+/*! WUF16 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF16(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF16_SHIFT)) & LLWU_PF_WUF16_MASK)
+#define LLWU_PF_WUF17_MASK                       (0x20000U)
+#define LLWU_PF_WUF17_SHIFT                      (17U)
+/*! WUF17 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF17(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF17_SHIFT)) & LLWU_PF_WUF17_MASK)
+#define LLWU_PF_WUF18_MASK                       (0x40000U)
+#define LLWU_PF_WUF18_SHIFT                      (18U)
+/*! WUF18 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF18(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF18_SHIFT)) & LLWU_PF_WUF18_MASK)
+#define LLWU_PF_WUF19_MASK                       (0x80000U)
+#define LLWU_PF_WUF19_SHIFT                      (19U)
+/*! WUF19 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF19(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF19_SHIFT)) & LLWU_PF_WUF19_MASK)
+#define LLWU_PF_WUF20_MASK                       (0x100000U)
+#define LLWU_PF_WUF20_SHIFT                      (20U)
+/*! WUF20 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF20(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF20_SHIFT)) & LLWU_PF_WUF20_MASK)
+#define LLWU_PF_WUF21_MASK                       (0x200000U)
+#define LLWU_PF_WUF21_SHIFT                      (21U)
+/*! WUF21 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF21(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF21_SHIFT)) & LLWU_PF_WUF21_MASK)
+#define LLWU_PF_WUF22_MASK                       (0x400000U)
+#define LLWU_PF_WUF22_SHIFT                      (22U)
+/*! WUF22 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF22(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF22_SHIFT)) & LLWU_PF_WUF22_MASK)
+#define LLWU_PF_WUF23_MASK                       (0x800000U)
+#define LLWU_PF_WUF23_SHIFT                      (23U)
+/*! WUF23 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF23(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF23_SHIFT)) & LLWU_PF_WUF23_MASK)
+#define LLWU_PF_WUF24_MASK                       (0x1000000U)
+#define LLWU_PF_WUF24_SHIFT                      (24U)
+/*! WUF24 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF24(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF24_SHIFT)) & LLWU_PF_WUF24_MASK)
+#define LLWU_PF_WUF25_MASK                       (0x2000000U)
+#define LLWU_PF_WUF25_SHIFT                      (25U)
+/*! WUF25 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF25(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF25_SHIFT)) & LLWU_PF_WUF25_MASK)
+#define LLWU_PF_WUF26_MASK                       (0x4000000U)
+#define LLWU_PF_WUF26_SHIFT                      (26U)
+/*! WUF26 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF26(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF26_SHIFT)) & LLWU_PF_WUF26_MASK)
+#define LLWU_PF_Reserved27_MASK                  (0x8000000U)
+#define LLWU_PF_Reserved27_SHIFT                 (27U)
+/*! Reserved27 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_Reserved27(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PF_Reserved27_SHIFT)) & LLWU_PF_Reserved27_MASK)
+#define LLWU_PF_Reserved28_MASK                  (0x10000000U)
+#define LLWU_PF_Reserved28_SHIFT                 (28U)
+/*! Reserved28 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_Reserved28(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PF_Reserved28_SHIFT)) & LLWU_PF_Reserved28_MASK)
+#define LLWU_PF_WUF29_MASK                       (0x20000000U)
+#define LLWU_PF_WUF29_SHIFT                      (29U)
+/*! WUF29 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF29(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF29_SHIFT)) & LLWU_PF_WUF29_MASK)
+#define LLWU_PF_WUF30_MASK                       (0x40000000U)
+#define LLWU_PF_WUF30_SHIFT                      (30U)
+/*! WUF30 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF30(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF30_SHIFT)) & LLWU_PF_WUF30_MASK)
+#define LLWU_PF_WUF31_MASK                       (0x80000000U)
+#define LLWU_PF_WUF31_SHIFT                      (31U)
+/*! WUF31 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF31(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF31_SHIFT)) & LLWU_PF_WUF31_MASK)
+/*! @} */
+
+/*! @name FILT - Pin Filter register */
+/*! @{ */
+#define LLWU_FILT_FILTSEL1_MASK                  (0x1FU)
+#define LLWU_FILT_FILTSEL1_SHIFT                 (0U)
+/*! FILTSEL1 - Filter 1 Pin Select
+ *  0b00000..Select LLWU_P0 for filter
+ *  0b11111..Select LLWU_P31 for filter
+ */
+#define LLWU_FILT_FILTSEL1(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTSEL1_SHIFT)) & LLWU_FILT_FILTSEL1_MASK)
+#define LLWU_FILT_FILTE1_MASK                    (0x60U)
+#define LLWU_FILT_FILTE1_SHIFT                   (5U)
+/*! FILTE1 - Filter 1 Enable
+ *  0b00..Filter disabled
+ *  0b01..Filter posedge detect enabled when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..Filter negedge detect enabled when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..Filter any edge detect enabled when configured as interrupt/DMA request
+ */
+#define LLWU_FILT_FILTE1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTE1_SHIFT)) & LLWU_FILT_FILTE1_MASK)
+#define LLWU_FILT_FILTF1_MASK                    (0x80U)
+#define LLWU_FILT_FILTF1_SHIFT                   (7U)
+/*! FILTF1 - Filter 1 Flag
+ *  0b0..Pin Filter 1 was not a wakeup source
+ *  0b1..Pin Filter 1 was a wakeup source
+ */
+#define LLWU_FILT_FILTF1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTF1_SHIFT)) & LLWU_FILT_FILTF1_MASK)
+#define LLWU_FILT_FILTSEL2_MASK                  (0x1F00U)
+#define LLWU_FILT_FILTSEL2_SHIFT                 (8U)
+/*! FILTSEL2 - Filter 2 Pin Select
+ *  0b00000..Select LLWU_P0 for filter
+ *  0b11111..Select LLWU_P31 for filter
+ */
+#define LLWU_FILT_FILTSEL2(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTSEL2_SHIFT)) & LLWU_FILT_FILTSEL2_MASK)
+#define LLWU_FILT_FILTE2_MASK                    (0x6000U)
+#define LLWU_FILT_FILTE2_SHIFT                   (13U)
+/*! FILTE2 - Filter 2 Enable
+ *  0b00..Filter disabled
+ *  0b01..Filter posedge detect enabled when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..Filter negedge detect enabled when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..Filter any edge detect enabled when configured as interrupt/DMA request
+ */
+#define LLWU_FILT_FILTE2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTE2_SHIFT)) & LLWU_FILT_FILTE2_MASK)
+#define LLWU_FILT_FILTF2_MASK                    (0x8000U)
+#define LLWU_FILT_FILTF2_SHIFT                   (15U)
+/*! FILTF2 - Filter 2 Flag
+ *  0b0..Pin Filter 2 was not a wakeup source
+ *  0b1..Pin Filter 2 was a wakeup source
+ */
+#define LLWU_FILT_FILTF2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTF2_SHIFT)) & LLWU_FILT_FILTF2_MASK)
+/*! @} */
+
+/*! @name PDC1 - Pin DMA/Trigger Configuration 1 register */
+/*! @{ */
+#define LLWU_PDC1_WUPDC0_MASK                    (0x3U)
+#define LLWU_PDC1_WUPDC0_SHIFT                   (0U)
+/*! WUPDC0 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC0(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC0_SHIFT)) & LLWU_PDC1_WUPDC0_MASK)
+#define LLWU_PDC1_WUPDC1_MASK                    (0xCU)
+#define LLWU_PDC1_WUPDC1_SHIFT                   (2U)
+/*! WUPDC1 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC1_SHIFT)) & LLWU_PDC1_WUPDC1_MASK)
+#define LLWU_PDC1_WUPDC2_MASK                    (0x30U)
+#define LLWU_PDC1_WUPDC2_SHIFT                   (4U)
+/*! WUPDC2 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC2_SHIFT)) & LLWU_PDC1_WUPDC2_MASK)
+#define LLWU_PDC1_WUPDC3_MASK                    (0xC0U)
+#define LLWU_PDC1_WUPDC3_SHIFT                   (6U)
+/*! WUPDC3 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC3(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC3_SHIFT)) & LLWU_PDC1_WUPDC3_MASK)
+#define LLWU_PDC1_WUPDC4_MASK                    (0x300U)
+#define LLWU_PDC1_WUPDC4_SHIFT                   (8U)
+/*! WUPDC4 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC4(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC4_SHIFT)) & LLWU_PDC1_WUPDC4_MASK)
+#define LLWU_PDC1_WUPDC5_MASK                    (0xC00U)
+#define LLWU_PDC1_WUPDC5_SHIFT                   (10U)
+/*! WUPDC5 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC5(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC5_SHIFT)) & LLWU_PDC1_WUPDC5_MASK)
+#define LLWU_PDC1_WUPDC6_MASK                    (0x3000U)
+#define LLWU_PDC1_WUPDC6_SHIFT                   (12U)
+/*! WUPDC6 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC6(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC6_SHIFT)) & LLWU_PDC1_WUPDC6_MASK)
+#define LLWU_PDC1_WUPDC7_MASK                    (0xC000U)
+#define LLWU_PDC1_WUPDC7_SHIFT                   (14U)
+/*! WUPDC7 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC7(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC7_SHIFT)) & LLWU_PDC1_WUPDC7_MASK)
+#define LLWU_PDC1_WUPDC8_MASK                    (0x30000U)
+#define LLWU_PDC1_WUPDC8_SHIFT                   (16U)
+/*! WUPDC8 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC8(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC8_SHIFT)) & LLWU_PDC1_WUPDC8_MASK)
+#define LLWU_PDC1_WUPDC9_MASK                    (0xC0000U)
+#define LLWU_PDC1_WUPDC9_SHIFT                   (18U)
+/*! WUPDC9 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC9(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC9_SHIFT)) & LLWU_PDC1_WUPDC9_MASK)
+#define LLWU_PDC1_WUPDC10_MASK                   (0x300000U)
+#define LLWU_PDC1_WUPDC10_SHIFT                  (20U)
+/*! WUPDC10 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC10(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC10_SHIFT)) & LLWU_PDC1_WUPDC10_MASK)
+#define LLWU_PDC1_WUPDC11_MASK                   (0xC00000U)
+#define LLWU_PDC1_WUPDC11_SHIFT                  (22U)
+/*! WUPDC11 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC11(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC11_SHIFT)) & LLWU_PDC1_WUPDC11_MASK)
+#define LLWU_PDC1_WUPDC12_MASK                   (0x3000000U)
+#define LLWU_PDC1_WUPDC12_SHIFT                  (24U)
+/*! WUPDC12 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC12(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC12_SHIFT)) & LLWU_PDC1_WUPDC12_MASK)
+#define LLWU_PDC1_WUPDC13_MASK                   (0xC000000U)
+#define LLWU_PDC1_WUPDC13_SHIFT                  (26U)
+/*! WUPDC13 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC13(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC13_SHIFT)) & LLWU_PDC1_WUPDC13_MASK)
+#define LLWU_PDC1_WUPDC14_MASK                   (0x30000000U)
+#define LLWU_PDC1_WUPDC14_SHIFT                  (28U)
+/*! WUPDC14 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC14(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC14_SHIFT)) & LLWU_PDC1_WUPDC14_MASK)
+#define LLWU_PDC1_WUPDC15_MASK                   (0xC0000000U)
+#define LLWU_PDC1_WUPDC15_SHIFT                  (30U)
+/*! WUPDC15 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC15(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC15_SHIFT)) & LLWU_PDC1_WUPDC15_MASK)
+/*! @} */
+
+/*! @name PDC2 - Pin DMA/Trigger Configuration 2 register */
+/*! @{ */
+#define LLWU_PDC2_WUPDC16_MASK                   (0x3U)
+#define LLWU_PDC2_WUPDC16_SHIFT                  (0U)
+/*! WUPDC16 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC16(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC16_SHIFT)) & LLWU_PDC2_WUPDC16_MASK)
+#define LLWU_PDC2_WUPDC17_MASK                   (0xCU)
+#define LLWU_PDC2_WUPDC17_SHIFT                  (2U)
+/*! WUPDC17 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC17(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC17_SHIFT)) & LLWU_PDC2_WUPDC17_MASK)
+#define LLWU_PDC2_WUPDC18_MASK                   (0x30U)
+#define LLWU_PDC2_WUPDC18_SHIFT                  (4U)
+/*! WUPDC18 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC18(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC18_SHIFT)) & LLWU_PDC2_WUPDC18_MASK)
+#define LLWU_PDC2_WUPDC19_MASK                   (0xC0U)
+#define LLWU_PDC2_WUPDC19_SHIFT                  (6U)
+/*! WUPDC19 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC19(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC19_SHIFT)) & LLWU_PDC2_WUPDC19_MASK)
+#define LLWU_PDC2_WUPDC20_MASK                   (0x300U)
+#define LLWU_PDC2_WUPDC20_SHIFT                  (8U)
+/*! WUPDC20 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC20(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC20_SHIFT)) & LLWU_PDC2_WUPDC20_MASK)
+#define LLWU_PDC2_WUPDC21_MASK                   (0xC00U)
+#define LLWU_PDC2_WUPDC21_SHIFT                  (10U)
+/*! WUPDC21 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC21(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC21_SHIFT)) & LLWU_PDC2_WUPDC21_MASK)
+#define LLWU_PDC2_WUPDC22_MASK                   (0x3000U)
+#define LLWU_PDC2_WUPDC22_SHIFT                  (12U)
+/*! WUPDC22 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC22(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC22_SHIFT)) & LLWU_PDC2_WUPDC22_MASK)
+#define LLWU_PDC2_WUPDC23_MASK                   (0xC000U)
+#define LLWU_PDC2_WUPDC23_SHIFT                  (14U)
+/*! WUPDC23 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC23(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC23_SHIFT)) & LLWU_PDC2_WUPDC23_MASK)
+#define LLWU_PDC2_WUPDC24_MASK                   (0x30000U)
+#define LLWU_PDC2_WUPDC24_SHIFT                  (16U)
+/*! WUPDC24 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC24(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC24_SHIFT)) & LLWU_PDC2_WUPDC24_MASK)
+#define LLWU_PDC2_WUPDC25_MASK                   (0xC0000U)
+#define LLWU_PDC2_WUPDC25_SHIFT                  (18U)
+/*! WUPDC25 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC25(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC25_SHIFT)) & LLWU_PDC2_WUPDC25_MASK)
+#define LLWU_PDC2_WUPDC26_MASK                   (0x300000U)
+#define LLWU_PDC2_WUPDC26_SHIFT                  (20U)
+/*! WUPDC26 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC26(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC26_SHIFT)) & LLWU_PDC2_WUPDC26_MASK)
+#define LLWU_PDC2_Reserved27_MASK                (0xC00000U)
+#define LLWU_PDC2_Reserved27_SHIFT               (22U)
+/*! Reserved27 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_Reserved27(x)                  (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_Reserved27_SHIFT)) & LLWU_PDC2_Reserved27_MASK)
+#define LLWU_PDC2_Reserved28_MASK                (0x3000000U)
+#define LLWU_PDC2_Reserved28_SHIFT               (24U)
+/*! Reserved28 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_Reserved28(x)                  (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_Reserved28_SHIFT)) & LLWU_PDC2_Reserved28_MASK)
+#define LLWU_PDC2_WUPDC29_MASK                   (0xC000000U)
+#define LLWU_PDC2_WUPDC29_SHIFT                  (26U)
+/*! WUPDC29 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC29(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC29_SHIFT)) & LLWU_PDC2_WUPDC29_MASK)
+#define LLWU_PDC2_WUPDC30_MASK                   (0x30000000U)
+#define LLWU_PDC2_WUPDC30_SHIFT                  (28U)
+/*! WUPDC30 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC30(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC30_SHIFT)) & LLWU_PDC2_WUPDC30_MASK)
+#define LLWU_PDC2_WUPDC31_MASK                   (0xC0000000U)
+#define LLWU_PDC2_WUPDC31_SHIFT                  (30U)
+/*! WUPDC31 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC31(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC31_SHIFT)) & LLWU_PDC2_WUPDC31_MASK)
+/*! @} */
+
+/*! @name FDC - Pin Filter DMA/Trigger Configuration register */
+/*! @{ */
+#define LLWU_FDC_FILTC1_MASK                     (0x3U)
+#define LLWU_FDC_FILTC1_SHIFT                    (0U)
+/*! FILTC1 - Filter configuration for FILT1
+ *  0b00..Filter output configured as interrupt
+ *  0b01..Filter output configured as DMA request
+ *  0b10..Filter output configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_FDC_FILTC1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FDC_FILTC1_SHIFT)) & LLWU_FDC_FILTC1_MASK)
+#define LLWU_FDC_FILTC2_MASK                     (0xCU)
+#define LLWU_FDC_FILTC2_SHIFT                    (2U)
+/*! FILTC2 - Filter configuration for FILT2
+ *  0b00..Filter output configured as interrupt
+ *  0b01..Filter output configured as DMA request
+ *  0b10..Filter output configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_FDC_FILTC2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FDC_FILTC2_SHIFT)) & LLWU_FDC_FILTC2_MASK)
+/*! @} */
+
+/*! @name PMC - Pin Mode Configuration register */
+/*! @{ */
+#define LLWU_PMC_WUPMC0_MASK                     (0x1U)
+#define LLWU_PMC_WUPMC0_SHIFT                    (0U)
+/*! WUPMC0 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC0(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC0_SHIFT)) & LLWU_PMC_WUPMC0_MASK)
+#define LLWU_PMC_WUPMC1_MASK                     (0x2U)
+#define LLWU_PMC_WUPMC1_SHIFT                    (1U)
+/*! WUPMC1 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC1_SHIFT)) & LLWU_PMC_WUPMC1_MASK)
+#define LLWU_PMC_WUPMC2_MASK                     (0x4U)
+#define LLWU_PMC_WUPMC2_SHIFT                    (2U)
+/*! WUPMC2 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC2_SHIFT)) & LLWU_PMC_WUPMC2_MASK)
+#define LLWU_PMC_WUPMC3_MASK                     (0x8U)
+#define LLWU_PMC_WUPMC3_SHIFT                    (3U)
+/*! WUPMC3 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC3(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC3_SHIFT)) & LLWU_PMC_WUPMC3_MASK)
+#define LLWU_PMC_WUPMC4_MASK                     (0x10U)
+#define LLWU_PMC_WUPMC4_SHIFT                    (4U)
+/*! WUPMC4 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC4(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC4_SHIFT)) & LLWU_PMC_WUPMC4_MASK)
+#define LLWU_PMC_WUPMC5_MASK                     (0x20U)
+#define LLWU_PMC_WUPMC5_SHIFT                    (5U)
+/*! WUPMC5 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC5(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC5_SHIFT)) & LLWU_PMC_WUPMC5_MASK)
+#define LLWU_PMC_WUPMC6_MASK                     (0x40U)
+#define LLWU_PMC_WUPMC6_SHIFT                    (6U)
+/*! WUPMC6 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC6(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC6_SHIFT)) & LLWU_PMC_WUPMC6_MASK)
+#define LLWU_PMC_WUPMC7_MASK                     (0x80U)
+#define LLWU_PMC_WUPMC7_SHIFT                    (7U)
+/*! WUPMC7 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC7(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC7_SHIFT)) & LLWU_PMC_WUPMC7_MASK)
+#define LLWU_PMC_WUPMC8_MASK                     (0x100U)
+#define LLWU_PMC_WUPMC8_SHIFT                    (8U)
+/*! WUPMC8 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC8(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC8_SHIFT)) & LLWU_PMC_WUPMC8_MASK)
+#define LLWU_PMC_WUPMC9_MASK                     (0x200U)
+#define LLWU_PMC_WUPMC9_SHIFT                    (9U)
+/*! WUPMC9 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC9(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC9_SHIFT)) & LLWU_PMC_WUPMC9_MASK)
+#define LLWU_PMC_WUPMC10_MASK                    (0x400U)
+#define LLWU_PMC_WUPMC10_SHIFT                   (10U)
+/*! WUPMC10 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC10(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC10_SHIFT)) & LLWU_PMC_WUPMC10_MASK)
+#define LLWU_PMC_WUPMC11_MASK                    (0x800U)
+#define LLWU_PMC_WUPMC11_SHIFT                   (11U)
+/*! WUPMC11 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC11(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC11_SHIFT)) & LLWU_PMC_WUPMC11_MASK)
+#define LLWU_PMC_WUPMC12_MASK                    (0x1000U)
+#define LLWU_PMC_WUPMC12_SHIFT                   (12U)
+/*! WUPMC12 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC12(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC12_SHIFT)) & LLWU_PMC_WUPMC12_MASK)
+#define LLWU_PMC_WUPMC13_MASK                    (0x2000U)
+#define LLWU_PMC_WUPMC13_SHIFT                   (13U)
+/*! WUPMC13 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC13(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC13_SHIFT)) & LLWU_PMC_WUPMC13_MASK)
+#define LLWU_PMC_WUPMC14_MASK                    (0x4000U)
+#define LLWU_PMC_WUPMC14_SHIFT                   (14U)
+/*! WUPMC14 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC14(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC14_SHIFT)) & LLWU_PMC_WUPMC14_MASK)
+#define LLWU_PMC_WUPMC15_MASK                    (0x8000U)
+#define LLWU_PMC_WUPMC15_SHIFT                   (15U)
+/*! WUPMC15 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC15(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC15_SHIFT)) & LLWU_PMC_WUPMC15_MASK)
+#define LLWU_PMC_WUPMC16_MASK                    (0x10000U)
+#define LLWU_PMC_WUPMC16_SHIFT                   (16U)
+/*! WUPMC16 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC16(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC16_SHIFT)) & LLWU_PMC_WUPMC16_MASK)
+#define LLWU_PMC_WUPMC17_MASK                    (0x20000U)
+#define LLWU_PMC_WUPMC17_SHIFT                   (17U)
+/*! WUPMC17 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC17(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC17_SHIFT)) & LLWU_PMC_WUPMC17_MASK)
+#define LLWU_PMC_WUPMC18_MASK                    (0x40000U)
+#define LLWU_PMC_WUPMC18_SHIFT                   (18U)
+/*! WUPMC18 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC18(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC18_SHIFT)) & LLWU_PMC_WUPMC18_MASK)
+#define LLWU_PMC_WUPMC19_MASK                    (0x80000U)
+#define LLWU_PMC_WUPMC19_SHIFT                   (19U)
+/*! WUPMC19 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC19(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC19_SHIFT)) & LLWU_PMC_WUPMC19_MASK)
+#define LLWU_PMC_WUPMC20_MASK                    (0x100000U)
+#define LLWU_PMC_WUPMC20_SHIFT                   (20U)
+/*! WUPMC20 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC20(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC20_SHIFT)) & LLWU_PMC_WUPMC20_MASK)
+#define LLWU_PMC_WUPMC21_MASK                    (0x200000U)
+#define LLWU_PMC_WUPMC21_SHIFT                   (21U)
+/*! WUPMC21 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC21(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC21_SHIFT)) & LLWU_PMC_WUPMC21_MASK)
+#define LLWU_PMC_WUPMC22_MASK                    (0x400000U)
+#define LLWU_PMC_WUPMC22_SHIFT                   (22U)
+/*! WUPMC22 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC22(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC22_SHIFT)) & LLWU_PMC_WUPMC22_MASK)
+#define LLWU_PMC_WUPMC23_MASK                    (0x800000U)
+#define LLWU_PMC_WUPMC23_SHIFT                   (23U)
+/*! WUPMC23 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC23(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC23_SHIFT)) & LLWU_PMC_WUPMC23_MASK)
+#define LLWU_PMC_WUPMC24_MASK                    (0x1000000U)
+#define LLWU_PMC_WUPMC24_SHIFT                   (24U)
+/*! WUPMC24 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC24(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC24_SHIFT)) & LLWU_PMC_WUPMC24_MASK)
+#define LLWU_PMC_WUPMC25_MASK                    (0x2000000U)
+#define LLWU_PMC_WUPMC25_SHIFT                   (25U)
+/*! WUPMC25 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC25(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC25_SHIFT)) & LLWU_PMC_WUPMC25_MASK)
+#define LLWU_PMC_WUPMC26_MASK                    (0x4000000U)
+#define LLWU_PMC_WUPMC26_SHIFT                   (26U)
+/*! WUPMC26 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC26(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC26_SHIFT)) & LLWU_PMC_WUPMC26_MASK)
+#define LLWU_PMC_Reserved27_MASK                 (0x8000000U)
+#define LLWU_PMC_Reserved27_SHIFT                (27U)
+/*! Reserved27 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_Reserved27(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_Reserved27_SHIFT)) & LLWU_PMC_Reserved27_MASK)
+#define LLWU_PMC_Reserved28_MASK                 (0x10000000U)
+#define LLWU_PMC_Reserved28_SHIFT                (28U)
+/*! Reserved28 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_Reserved28(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_Reserved28_SHIFT)) & LLWU_PMC_Reserved28_MASK)
+#define LLWU_PMC_WUPMC29_MASK                    (0x20000000U)
+#define LLWU_PMC_WUPMC29_SHIFT                   (29U)
+/*! WUPMC29 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC29(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC29_SHIFT)) & LLWU_PMC_WUPMC29_MASK)
+#define LLWU_PMC_WUPMC30_MASK                    (0x40000000U)
+#define LLWU_PMC_WUPMC30_SHIFT                   (30U)
+/*! WUPMC30 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC30(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC30_SHIFT)) & LLWU_PMC_WUPMC30_MASK)
+#define LLWU_PMC_WUPMC31_MASK                    (0x80000000U)
+#define LLWU_PMC_WUPMC31_SHIFT                   (31U)
+/*! WUPMC31 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC31(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC31_SHIFT)) & LLWU_PMC_WUPMC31_MASK)
+/*! @} */
+
+/*! @name FMC - Pin Filter Mode Configuration register */
+/*! @{ */
+#define LLWU_FMC_FILTM1_MASK                     (0x1U)
+#define LLWU_FMC_FILTM1_SHIFT                    (0U)
+/*! FILTM1 - Filter Mode for FILT1
+ *  0b0..External input pin filter detection active only during LLS/VLLS mode
+ *  0b1..External input pin filter detection active during all power modes
+ */
+#define LLWU_FMC_FILTM1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FMC_FILTM1_SHIFT)) & LLWU_FMC_FILTM1_MASK)
+#define LLWU_FMC_FILTM2_MASK                     (0x2U)
+#define LLWU_FMC_FILTM2_SHIFT                    (1U)
+/*! FILTM2 - Filter Mode for FILT2
+ *  0b0..External input pin filter detection active only during LLS/VLLS mode
+ *  0b1..External input pin filter detection active during all power modes
+ */
+#define LLWU_FMC_FILTM2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FMC_FILTM2_SHIFT)) & LLWU_FMC_FILTM2_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LLWU_Register_Masks */
+
+
+/* LLWU - Peripheral instance base addresses */
+/** Peripheral LLWU0 base address */
+#define LLWU0_BASE                               (0x40024000u)
+/** Peripheral LLWU0 base pointer */
+#define LLWU0                                    ((LLWU_Type *)LLWU0_BASE)
+/** Peripheral LLWU1 base address */
+#define LLWU1_BASE                               (0x41023000u)
+/** Peripheral LLWU1 base pointer */
+#define LLWU1                                    ((LLWU_Type *)LLWU1_BASE)
+/** Array initializer of LLWU peripheral base addresses */
+#define LLWU_BASE_ADDRS                          { LLWU0_BASE, LLWU1_BASE }
+/** Array initializer of LLWU peripheral base pointers */
+#define LLWU_BASE_PTRS                           { LLWU0, LLWU1 }
+/** Interrupt vectors for the LLWU peripheral type */
+#define LLWU_IRQS                                { LLWU0_IRQn, NotAvail_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LLWU_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPCMP Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPCMP_Peripheral_Access_Layer LPCMP Peripheral Access Layer
+ * @{
+ */
+
+/** LPCMP - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CCR0;                              /**< Comparator Control Register 0, offset: 0x8 */
+  __IO uint32_t CCR1;                              /**< Comparator Control Register 1, offset: 0xC */
+  __IO uint32_t CCR2;                              /**< Comparator Control Register 2, offset: 0x10 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t DCR;                               /**< DAC Control Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< Interrupt Enable Register, offset: 0x1C */
+  __IO uint32_t CSR;                               /**< Comparator Status Register, offset: 0x20 */
+} LPCMP_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPCMP Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPCMP_Register_Masks LPCMP Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPCMP_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPCMP_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000001..Round robin feature
+ */
+#define LPCMP_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_FEATURE_SHIFT)) & LPCMP_VERID_FEATURE_MASK)
+#define LPCMP_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPCMP_VERID_MINOR_SHIFT                  (16U)
+#define LPCMP_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_MINOR_SHIFT)) & LPCMP_VERID_MINOR_MASK)
+#define LPCMP_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPCMP_VERID_MAJOR_SHIFT                  (24U)
+#define LPCMP_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_MAJOR_SHIFT)) & LPCMP_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPCMP_PARAM_DAC_RES_MASK                 (0xFU)
+#define LPCMP_PARAM_DAC_RES_SHIFT                (0U)
+/*! DAC_RES - DAC resolution
+ *  0b0000..4 bit DAC
+ *  0b0001..6 bit DAC
+ *  0b0010..8 bit DAC
+ *  0b0011..10 bit DAC
+ *  0b0100..12 bit DAC
+ *  0b0101..14 bit DAC
+ *  0b0110..16 bit DAC
+ */
+#define LPCMP_PARAM_DAC_RES(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_PARAM_DAC_RES_SHIFT)) & LPCMP_PARAM_DAC_RES_MASK)
+/*! @} */
+
+/*! @name CCR0 - Comparator Control Register 0 */
+/*! @{ */
+#define LPCMP_CCR0_CMP_EN_MASK                   (0x1U)
+#define LPCMP_CCR0_CMP_EN_SHIFT                  (0U)
+/*! CMP_EN - Comparator Module Enable
+ *  0b0..Analog Comparator is disabled.
+ *  0b1..Analog Comparator is enabled.
+ */
+#define LPCMP_CCR0_CMP_EN(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR0_CMP_EN_SHIFT)) & LPCMP_CCR0_CMP_EN_MASK)
+#define LPCMP_CCR0_CMP_STOP_EN_MASK              (0x2U)
+#define LPCMP_CCR0_CMP_STOP_EN_SHIFT             (1U)
+/*! CMP_STOP_EN - Comparator Module STOP Mode Enable
+ *  0b0..Comparator is disabled in STOP modes regardless of CMP_EN.
+ *  0b1..Comparator is enabled in STOP mode if CMP_EN is active
+ */
+#define LPCMP_CCR0_CMP_STOP_EN(x)                (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR0_CMP_STOP_EN_SHIFT)) & LPCMP_CCR0_CMP_STOP_EN_MASK)
+/*! @} */
+
+/*! @name CCR1 - Comparator Control Register 1 */
+/*! @{ */
+#define LPCMP_CCR1_WINDOW_EN_MASK                (0x1U)
+#define LPCMP_CCR1_WINDOW_EN_SHIFT               (0U)
+/*! WINDOW_EN - Windowing Enable
+ *  0b0..Windowing mode is not selected.
+ *  0b1..Windowing mode is selected.
+ */
+#define LPCMP_CCR1_WINDOW_EN(x)                  (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_WINDOW_EN_SHIFT)) & LPCMP_CCR1_WINDOW_EN_MASK)
+#define LPCMP_CCR1_SAMPLE_EN_MASK                (0x2U)
+#define LPCMP_CCR1_SAMPLE_EN_SHIFT               (1U)
+/*! SAMPLE_EN - Sample Enable
+ *  0b0..Sampling mode is not selected.
+ *  0b1..Sampling mode is selected.
+ */
+#define LPCMP_CCR1_SAMPLE_EN(x)                  (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_SAMPLE_EN_SHIFT)) & LPCMP_CCR1_SAMPLE_EN_MASK)
+#define LPCMP_CCR1_DMA_EN_MASK                   (0x4U)
+#define LPCMP_CCR1_DMA_EN_SHIFT                  (2U)
+/*! DMA_EN - DMA Enable
+ *  0b0..DMA is disabled.
+ *  0b1..DMA is enabled.
+ */
+#define LPCMP_CCR1_DMA_EN(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_DMA_EN_SHIFT)) & LPCMP_CCR1_DMA_EN_MASK)
+#define LPCMP_CCR1_COUT_INV_MASK                 (0x8U)
+#define LPCMP_CCR1_COUT_INV_SHIFT                (3U)
+/*! COUT_INV - Comparator invert
+ *  0b0..Does not invert the comparator output.
+ *  0b1..Inverts the comparator output.
+ */
+#define LPCMP_CCR1_COUT_INV(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_INV_SHIFT)) & LPCMP_CCR1_COUT_INV_MASK)
+#define LPCMP_CCR1_COUT_SEL_MASK                 (0x10U)
+#define LPCMP_CCR1_COUT_SEL_SHIFT                (4U)
+/*! COUT_SEL - Comparator Output Select
+ *  0b0..Set CMPO to equal COUT (filtered comparator output).
+ *  0b1..Set CMPO to equal COUTA (unfiltered comparator output).
+ */
+#define LPCMP_CCR1_COUT_SEL(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_SEL_SHIFT)) & LPCMP_CCR1_COUT_SEL_MASK)
+#define LPCMP_CCR1_COUT_PEN_MASK                 (0x20U)
+#define LPCMP_CCR1_COUT_PEN_SHIFT                (5U)
+/*! COUT_PEN - Comparator Output Pin Enable
+ *  0b0..When COUT_PEN is 0, the comparator output (after window/filter settings dependent on software configuration) is not available to a packaged pin.
+ *  0b1..When COUT_PEN is 1, and if the software has configured the comparator to own a packaged pin, the comparator output is available in a packaged pin.
+ */
+#define LPCMP_CCR1_COUT_PEN(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_PEN_SHIFT)) & LPCMP_CCR1_COUT_PEN_MASK)
+#define LPCMP_CCR1_FILT_CNT_MASK                 (0x70000U)
+#define LPCMP_CCR1_FILT_CNT_SHIFT                (16U)
+/*! FILT_CNT - Filter Sample Count
+ *  0b000..Filter is disabled. If SAMPLE_EN = 1, then COUT is a logic zero (this is not a legal state in , and is not recommended). If SAMPLE_EN = 0, COUT = COUTA.
+ *  0b001..1 consecutive sample must agree (comparator output is simply sampled).
+ *  0b010..2 consecutive samples must agree.
+ *  0b011..3 consecutive samples must agree.
+ *  0b100..4 consecutive samples must agree.
+ *  0b101..5 consecutive samples must agree.
+ *  0b110..6 consecutive samples must agree.
+ *  0b111..7 consecutive samples must agree.
+ */
+#define LPCMP_CCR1_FILT_CNT(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_FILT_CNT_SHIFT)) & LPCMP_CCR1_FILT_CNT_MASK)
+#define LPCMP_CCR1_FILT_PER_MASK                 (0xFF000000U)
+#define LPCMP_CCR1_FILT_PER_SHIFT                (24U)
+#define LPCMP_CCR1_FILT_PER(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_FILT_PER_SHIFT)) & LPCMP_CCR1_FILT_PER_MASK)
+/*! @} */
+
+/*! @name CCR2 - Comparator Control Register 2 */
+/*! @{ */
+#define LPCMP_CCR2_CMP_HPMD_MASK                 (0x1U)
+#define LPCMP_CCR2_CMP_HPMD_SHIFT                (0U)
+/*! CMP_HPMD - CMP High Power Mode Select
+ *  0b0..Low speed comparison mode is selected.(when CMP_NPMD is 0)
+ *  0b1..High speed comparison mode is selected.(when CMP_NPMD is 0)
+ */
+#define LPCMP_CCR2_CMP_HPMD(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_CMP_HPMD_SHIFT)) & LPCMP_CCR2_CMP_HPMD_MASK)
+#define LPCMP_CCR2_CMP_NPMD_MASK                 (0x2U)
+#define LPCMP_CCR2_CMP_NPMD_SHIFT                (1U)
+/*! CMP_NPMD - CMP Nano Power Mode Select
+ *  0b0..Nano Power Comparator is not enabled (mode is determined by CMP_HPMD)
+ *  0b1..Nano Power Comparator is enabled
+ */
+#define LPCMP_CCR2_CMP_NPMD(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_CMP_NPMD_SHIFT)) & LPCMP_CCR2_CMP_NPMD_MASK)
+#define LPCMP_CCR2_HYSTCTR_MASK                  (0x30U)
+#define LPCMP_CCR2_HYSTCTR_SHIFT                 (4U)
+/*! HYSTCTR - Comparator hard block hysteresis control. See chip data sheet to get the actual hystersis value with each level
+ *  0b00..The hard block output has level 0 hysteresis internally.
+ *  0b01..The hard block output has level 1 hysteresis internally.
+ *  0b10..The hard block output has level 2 hysteresis internally.
+ *  0b11..The hard block output has level 3 hysteresis internally.
+ */
+#define LPCMP_CCR2_HYSTCTR(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_HYSTCTR_SHIFT)) & LPCMP_CCR2_HYSTCTR_MASK)
+#define LPCMP_CCR2_PSEL_MASK                     (0x70000U)
+#define LPCMP_CCR2_PSEL_SHIFT                    (16U)
+/*! PSEL - Plus Input MUX Control
+ *  0b000..Input 0
+ *  0b001..Input 1
+ *  0b010..Input 2
+ *  0b011..Input 3
+ *  0b100..Input 4
+ *  0b101..Input 5
+ *  0b110..Input 6
+ *  0b111..Internal DAC output
+ */
+#define LPCMP_CCR2_PSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_PSEL_SHIFT)) & LPCMP_CCR2_PSEL_MASK)
+#define LPCMP_CCR2_MSEL_MASK                     (0x700000U)
+#define LPCMP_CCR2_MSEL_SHIFT                    (20U)
+/*! MSEL - Minus Input MUX Control
+ *  0b000..Input 0
+ *  0b001..Input 1
+ *  0b010..Input 2
+ *  0b011..Input 3
+ *  0b100..Input 4
+ *  0b101..Input 5
+ *  0b110..Input 6
+ *  0b111..Internal DAC output
+ */
+#define LPCMP_CCR2_MSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_MSEL_SHIFT)) & LPCMP_CCR2_MSEL_MASK)
+/*! @} */
+
+/*! @name DCR - DAC Control Register */
+/*! @{ */
+#define LPCMP_DCR_DAC_EN_MASK                    (0x1U)
+#define LPCMP_DCR_DAC_EN_SHIFT                   (0U)
+/*! DAC_EN - DAC Enable
+ *  0b0..DAC is disabled.
+ *  0b1..DAC is enabled.
+ */
+#define LPCMP_DCR_DAC_EN(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_EN_SHIFT)) & LPCMP_DCR_DAC_EN_MASK)
+#define LPCMP_DCR_DAC_HPMD_MASK                  (0x2U)
+#define LPCMP_DCR_DAC_HPMD_SHIFT                 (1U)
+/*! DAC_HPMD - DAC High Power Mode Select
+ *  0b0..DAC high power mode is not enabled.
+ *  0b1..DAC high power mode is enabled.
+ */
+#define LPCMP_DCR_DAC_HPMD(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_HPMD_SHIFT)) & LPCMP_DCR_DAC_HPMD_MASK)
+#define LPCMP_DCR_VRSEL_MASK                     (0x100U)
+#define LPCMP_DCR_VRSEL_SHIFT                    (8U)
+/*! VRSEL - Supply Voltage Reference Source Select
+ *  0b0..vrefh_int is selected as resistor ladder network supply reference Vin.
+ *  0b1..vrefh_ext is selected as resistor ladder network supply reference Vin.
+ */
+#define LPCMP_DCR_VRSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_VRSEL_SHIFT)) & LPCMP_DCR_VRSEL_MASK)
+#define LPCMP_DCR_DAC_DATA_MASK                  (0x3F0000U)
+#define LPCMP_DCR_DAC_DATA_SHIFT                 (16U)
+#define LPCMP_DCR_DAC_DATA(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_DATA_SHIFT)) & LPCMP_DCR_DAC_DATA_MASK)
+/*! @} */
+
+/*! @name IER - Interrupt Enable Register */
+/*! @{ */
+#define LPCMP_IER_CFR_IE_MASK                    (0x1U)
+#define LPCMP_IER_CFR_IE_SHIFT                   (0U)
+/*! CFR_IE - Comparator Flag Rising Interrupt Enable
+ *  0b0..CFR interrupt is disabled.
+ *  0b1..CFR interrupt is enabled.
+ */
+#define LPCMP_IER_CFR_IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_IER_CFR_IE_SHIFT)) & LPCMP_IER_CFR_IE_MASK)
+#define LPCMP_IER_CFF_IE_MASK                    (0x2U)
+#define LPCMP_IER_CFF_IE_SHIFT                   (1U)
+/*! CFF_IE - Comparator Flag Falling Interrupt Enable
+ *  0b0..CFF interrupt is disabled.
+ *  0b1..CFF interrupt is enabled.
+ */
+#define LPCMP_IER_CFF_IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_IER_CFF_IE_SHIFT)) & LPCMP_IER_CFF_IE_MASK)
+/*! @} */
+
+/*! @name CSR - Comparator Status Register */
+/*! @{ */
+#define LPCMP_CSR_CFR_MASK                       (0x1U)
+#define LPCMP_CSR_CFR_SHIFT                      (0U)
+/*! CFR - Analog Comparator Flag Rising
+ *  0b0..A rising edge has not been detected on COUT.
+ *  0b1..A rising edge on COUT has occurred.
+ */
+#define LPCMP_CSR_CFR(x)                         (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_CFR_SHIFT)) & LPCMP_CSR_CFR_MASK)
+#define LPCMP_CSR_CFF_MASK                       (0x2U)
+#define LPCMP_CSR_CFF_SHIFT                      (1U)
+/*! CFF - Analog Comparator Flag Falling
+ *  0b0..A falling edge has not been detected on COUT.
+ *  0b1..A falling edge on COUT has occurred.
+ */
+#define LPCMP_CSR_CFF(x)                         (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_CFF_SHIFT)) & LPCMP_CSR_CFF_MASK)
+#define LPCMP_CSR_COUT_MASK                      (0x100U)
+#define LPCMP_CSR_COUT_SHIFT                     (8U)
+#define LPCMP_CSR_COUT(x)                        (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_COUT_SHIFT)) & LPCMP_CSR_COUT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPCMP_Register_Masks */
+
+
+/* LPCMP - Peripheral instance base addresses */
+/** Peripheral LPCMP0 base address */
+#define LPCMP0_BASE                              (0x4004B000u)
+/** Peripheral LPCMP0 base pointer */
+#define LPCMP0                                   ((LPCMP_Type *)LPCMP0_BASE)
+/** Peripheral LPCMP1 base address */
+#define LPCMP1_BASE                              (0x41038000u)
+/** Peripheral LPCMP1 base pointer */
+#define LPCMP1                                   ((LPCMP_Type *)LPCMP1_BASE)
+/** Array initializer of LPCMP peripheral base addresses */
+#define LPCMP_BASE_ADDRS                         { LPCMP0_BASE, LPCMP1_BASE }
+/** Array initializer of LPCMP peripheral base pointers */
+#define LPCMP_BASE_PTRS                          { LPCMP0, LPCMP1 }
+/** Interrupt vectors for the LPCMP peripheral type */
+#define LPCMP_IRQS                               { LPCMP0_IRQn, LPCMP1_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPCMP_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPDAC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPDAC_Peripheral_Access_Layer LPDAC Peripheral Access Layer
+ * @{
+ */
+
+/** LPDAC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version Identifier Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __O  uint32_t DATA;                              /**< DAC Data Register, offset: 0x8 */
+  __IO uint32_t GCR;                               /**< DAC Global Control Register, offset: 0xC */
+  __IO uint32_t FCR;                               /**< DAC FIFO Control Register, offset: 0x10 */
+  __I  uint32_t FPR;                               /**< DAC FIFO Pointer Register, offset: 0x14 */
+  __IO uint32_t FSR;                               /**< FIFO Status Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< DAC Interrupt Enable Register, offset: 0x1C */
+  __IO uint32_t DER;                               /**< DAC DMA Enable Register, offset: 0x20 */
+  __IO uint32_t RCR;                               /**< DAC Reset Control Register, offset: 0x24 */
+  __O  uint32_t TCR;                               /**< DAC Trigger Control Register, offset: 0x28 */
+} LPDAC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPDAC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPDAC_Register_Masks LPDAC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version Identifier Register */
+/*! @{ */
+#define LPDAC_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPDAC_VERID_FEATURE_SHIFT                (0U)
+#define LPDAC_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_FEATURE_SHIFT)) & LPDAC_VERID_FEATURE_MASK)
+#define LPDAC_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPDAC_VERID_MINOR_SHIFT                  (16U)
+#define LPDAC_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_MINOR_SHIFT)) & LPDAC_VERID_MINOR_MASK)
+#define LPDAC_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPDAC_VERID_MAJOR_SHIFT                  (24U)
+#define LPDAC_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_MAJOR_SHIFT)) & LPDAC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPDAC_PARAM_FIFOSZ_MASK                  (0x7U)
+#define LPDAC_PARAM_FIFOSZ_SHIFT                 (0U)
+/*! FIFOSZ - FIFO size
+ *  0b000..Reserved
+ *  0b001..FIFO depth is 4
+ *  0b010..FIFO depth is 8
+ *  0b011..FIFO depth is 16
+ *  0b100..FIFO depth is 32
+ *  0b101..FIFO depth is 64
+ *  0b110..FIFO depth is 128
+ *  0b111..FIFO depth is 256
+ */
+#define LPDAC_PARAM_FIFOSZ(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_PARAM_FIFOSZ_SHIFT)) & LPDAC_PARAM_FIFOSZ_MASK)
+/*! @} */
+
+/*! @name DATA - DAC Data Register */
+/*! @{ */
+#define LPDAC_DATA_DATA_MASK                     (0xFFFU)
+#define LPDAC_DATA_DATA_SHIFT                    (0U)
+#define LPDAC_DATA_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_DATA_DATA_SHIFT)) & LPDAC_DATA_DATA_MASK)
+/*! @} */
+
+/*! @name GCR - DAC Global Control Register */
+/*! @{ */
+#define LPDAC_GCR_DACEN_MASK                     (0x1U)
+#define LPDAC_GCR_DACEN_SHIFT                    (0U)
+/*! DACEN - DAC Enable
+ *  0b0..The DAC system is disabled.
+ *  0b1..The DAC system is enabled.
+ */
+#define LPDAC_GCR_DACEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_DACEN_SHIFT)) & LPDAC_GCR_DACEN_MASK)
+#define LPDAC_GCR_DACRFS_MASK                    (0x2U)
+#define LPDAC_GCR_DACRFS_SHIFT                   (1U)
+/*! DACRFS - DAC Reference Select
+ *  0b0..The DAC selects VREFH_INT as the reference voltage.
+ *  0b1..The DAC selects VREFH_EXT as the reference voltage.
+ */
+#define LPDAC_GCR_DACRFS(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_DACRFS_SHIFT)) & LPDAC_GCR_DACRFS_MASK)
+#define LPDAC_GCR_LPEN_MASK                      (0x4U)
+#define LPDAC_GCR_LPEN_SHIFT                     (2U)
+/*! LPEN - Low Power Enable
+ *  0b0..High-Power mode
+ *  0b1..Low-Power mode
+ */
+#define LPDAC_GCR_LPEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_LPEN_SHIFT)) & LPDAC_GCR_LPEN_MASK)
+#define LPDAC_GCR_FIFOEN_MASK                    (0x8U)
+#define LPDAC_GCR_FIFOEN_SHIFT                   (3U)
+/*! FIFOEN - FIFO Enable
+ *  0b0..FIFO mode is disabled and buffer mode is enabled. Any data written to DATA[DATA] goes to buffer then goes to conversion.
+ *  0b1..FIFO mode is enabled. Data will be first read from FIFO to buffer then goes to conversion
+ */
+#define LPDAC_GCR_FIFOEN(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_FIFOEN_SHIFT)) & LPDAC_GCR_FIFOEN_MASK)
+#define LPDAC_GCR_SWMD_MASK                      (0x10U)
+#define LPDAC_GCR_SWMD_SHIFT                     (4U)
+/*! SWMD - Swing Back Mode
+ *  0b0..Swing back mode disable
+ *  0b1..Swing back mode enable
+ */
+#define LPDAC_GCR_SWMD(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_SWMD_SHIFT)) & LPDAC_GCR_SWMD_MASK)
+#define LPDAC_GCR_TRGSEL_MASK                    (0x20U)
+#define LPDAC_GCR_TRGSEL_SHIFT                   (5U)
+/*! TRGSEL - DAC Trigger Select
+ *  0b0..The DAC hardware trigger is selected.
+ *  0b1..The DAC software trigger is selected.
+ */
+#define LPDAC_GCR_TRGSEL(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_TRGSEL_SHIFT)) & LPDAC_GCR_TRGSEL_MASK)
+/*! @} */
+
+/*! @name FCR - DAC FIFO Control Register */
+/*! @{ */
+#define LPDAC_FCR_WML_MASK                       (0xFU)
+#define LPDAC_FCR_WML_SHIFT                      (0U)
+#define LPDAC_FCR_WML(x)                         (((uint32_t)(((uint32_t)(x)) << LPDAC_FCR_WML_SHIFT)) & LPDAC_FCR_WML_MASK)
+/*! @} */
+
+/*! @name FPR - DAC FIFO Pointer Register */
+/*! @{ */
+#define LPDAC_FPR_FIFO_RPT_MASK                  (0xFU)
+#define LPDAC_FPR_FIFO_RPT_SHIFT                 (0U)
+#define LPDAC_FPR_FIFO_RPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_FPR_FIFO_RPT_SHIFT)) & LPDAC_FPR_FIFO_RPT_MASK)
+#define LPDAC_FPR_FIFO_WPT_MASK                  (0xF0000U)
+#define LPDAC_FPR_FIFO_WPT_SHIFT                 (16U)
+#define LPDAC_FPR_FIFO_WPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_FPR_FIFO_WPT_SHIFT)) & LPDAC_FPR_FIFO_WPT_MASK)
+/*! @} */
+
+/*! @name FSR - FIFO Status Register */
+/*! @{ */
+#define LPDAC_FSR_FULL_MASK                      (0x1U)
+#define LPDAC_FSR_FULL_SHIFT                     (0U)
+/*! FULL - FIFO Full Flag
+ *  0b0..FIFO is not full
+ *  0b1..FIFO is full
+ */
+#define LPDAC_FSR_FULL(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_FULL_SHIFT)) & LPDAC_FSR_FULL_MASK)
+#define LPDAC_FSR_EMPTY_MASK                     (0x2U)
+#define LPDAC_FSR_EMPTY_SHIFT                    (1U)
+/*! EMPTY - FIFO Empty Flag
+ *  0b0..FIFO is not empty
+ *  0b1..FIFO is empty
+ */
+#define LPDAC_FSR_EMPTY(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_EMPTY_SHIFT)) & LPDAC_FSR_EMPTY_MASK)
+#define LPDAC_FSR_WM_MASK                        (0x4U)
+#define LPDAC_FSR_WM_SHIFT                       (2U)
+/*! WM - FIFO Watermark Status Flag
+ *  0b0..Data in FIFO is more than watermark level
+ *  0b1..Data in FIFO is less than or equal to watermark level
+ */
+#define LPDAC_FSR_WM(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_WM_SHIFT)) & LPDAC_FSR_WM_MASK)
+#define LPDAC_FSR_SWBK_MASK                      (0x8U)
+#define LPDAC_FSR_SWBK_SHIFT                     (3U)
+/*! SWBK - Swing Back One Cycle Complete Flag
+ *  0b0..No swing back cycle has completed since the last time the flag was cleared.
+ *  0b1..At least one swing back cycle has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_SWBK(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_SWBK_SHIFT)) & LPDAC_FSR_SWBK_MASK)
+#define LPDAC_FSR_OF_MASK                        (0x40U)
+#define LPDAC_FSR_OF_SHIFT                       (6U)
+/*! OF - FIFO Overflow Flag
+ *  0b0..No overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one FIFO overflow has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_OF(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_OF_SHIFT)) & LPDAC_FSR_OF_MASK)
+#define LPDAC_FSR_UF_MASK                        (0x80U)
+#define LPDAC_FSR_UF_SHIFT                       (7U)
+/*! UF - FIFO Underflow Flag
+ *  0b0..No underflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one trigger underflow has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_UF(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_UF_SHIFT)) & LPDAC_FSR_UF_MASK)
+/*! @} */
+
+/*! @name IER - DAC Interrupt Enable Register */
+/*! @{ */
+#define LPDAC_IER_FULL_IE_MASK                   (0x1U)
+#define LPDAC_IER_FULL_IE_SHIFT                  (0U)
+/*! FULL_IE - FIFO Full Interrupt Enable
+ *  0b0..FIFO Full interrupt is disabled.
+ *  0b1..FIFO Full interrupt is enabled.
+ */
+#define LPDAC_IER_FULL_IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_FULL_IE_SHIFT)) & LPDAC_IER_FULL_IE_MASK)
+#define LPDAC_IER_EMPTY_IE_MASK                  (0x2U)
+#define LPDAC_IER_EMPTY_IE_SHIFT                 (1U)
+/*! EMPTY_IE - FIFO Empty Interrupt Enable
+ *  0b0..FIFO Empty interrupt is disabled.
+ *  0b1..FIFO Empty interrupt is enabled.
+ */
+#define LPDAC_IER_EMPTY_IE(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_EMPTY_IE_SHIFT)) & LPDAC_IER_EMPTY_IE_MASK)
+#define LPDAC_IER_WM_IE_MASK                     (0x4U)
+#define LPDAC_IER_WM_IE_SHIFT                    (2U)
+/*! WM_IE - FIFO Watermark Interrupt Enable
+ *  0b0..Watermark interrupt is disabled.
+ *  0b1..Watermark interrupt is enabled.
+ */
+#define LPDAC_IER_WM_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_WM_IE_SHIFT)) & LPDAC_IER_WM_IE_MASK)
+#define LPDAC_IER_SWBK_IE_MASK                   (0x8U)
+#define LPDAC_IER_SWBK_IE_SHIFT                  (3U)
+/*! SWBK_IE - Swing back One Cycle Complete Interrupt Enable
+ *  0b0..Swing back one time complete interrupt is disabled.
+ *  0b1..Swing back one time complete interrupt is enabled.
+ */
+#define LPDAC_IER_SWBK_IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_SWBK_IE_SHIFT)) & LPDAC_IER_SWBK_IE_MASK)
+#define LPDAC_IER_OF_IE_MASK                     (0x40U)
+#define LPDAC_IER_OF_IE_SHIFT                    (6U)
+/*! OF_IE - FIFO Overflow Interrupt Enable
+ *  0b0..Overflow interrupt is disabled
+ *  0b1..Overflow interrupt is enabled.
+ */
+#define LPDAC_IER_OF_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_OF_IE_SHIFT)) & LPDAC_IER_OF_IE_MASK)
+#define LPDAC_IER_UF_IE_MASK                     (0x80U)
+#define LPDAC_IER_UF_IE_SHIFT                    (7U)
+/*! UF_IE - FIFO Underflow Interrupt Enable
+ *  0b0..Underflow interrupt is disabled.
+ *  0b1..Underflow interrupt is enabled.
+ */
+#define LPDAC_IER_UF_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_UF_IE_SHIFT)) & LPDAC_IER_UF_IE_MASK)
+/*! @} */
+
+/*! @name DER - DAC DMA Enable Register */
+/*! @{ */
+#define LPDAC_DER_EMPTY_DMAEN_MASK               (0x2U)
+#define LPDAC_DER_EMPTY_DMAEN_SHIFT              (1U)
+/*! EMPTY_DMAEN - FIFO Empty DMA Enable
+ *  0b0..FIFO Empty DMA request is disabled.
+ *  0b1..FIFO Empty DMA request is enabled.
+ */
+#define LPDAC_DER_EMPTY_DMAEN(x)                 (((uint32_t)(((uint32_t)(x)) << LPDAC_DER_EMPTY_DMAEN_SHIFT)) & LPDAC_DER_EMPTY_DMAEN_MASK)
+#define LPDAC_DER_WM_DMAEN_MASK                  (0x4U)
+#define LPDAC_DER_WM_DMAEN_SHIFT                 (2U)
+/*! WM_DMAEN - FIFO Watermark DMA Enable
+ *  0b0..Watermark DMA request is disabled.
+ *  0b1..Watermark DMA request is enabled.
+ */
+#define LPDAC_DER_WM_DMAEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_DER_WM_DMAEN_SHIFT)) & LPDAC_DER_WM_DMAEN_MASK)
+/*! @} */
+
+/*! @name RCR - DAC Reset Control Register */
+/*! @{ */
+#define LPDAC_RCR_SWRST_MASK                     (0x1U)
+#define LPDAC_RCR_SWRST_SHIFT                    (0U)
+/*! SWRST - Software Reset
+ *  0b0..No effect
+ *  0b1..Software reset
+ */
+#define LPDAC_RCR_SWRST(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_RCR_SWRST_SHIFT)) & LPDAC_RCR_SWRST_MASK)
+#define LPDAC_RCR_FIFORST_MASK                   (0x2U)
+#define LPDAC_RCR_FIFORST_SHIFT                  (1U)
+/*! FIFORST - FIFO Reset
+ *  0b0..No effect
+ *  0b1..FIFO reset
+ */
+#define LPDAC_RCR_FIFORST(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_RCR_FIFORST_SHIFT)) & LPDAC_RCR_FIFORST_MASK)
+/*! @} */
+
+/*! @name TCR - DAC Trigger Control Register */
+/*! @{ */
+#define LPDAC_TCR_SWTRG_MASK                     (0x1U)
+#define LPDAC_TCR_SWTRG_SHIFT                    (0U)
+/*! SWTRG - Software Trigger
+ *  0b0..The DAC soft trigger is not valid.
+ *  0b1..The DAC soft trigger is valid.
+ */
+#define LPDAC_TCR_SWTRG(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_TCR_SWTRG_SHIFT)) & LPDAC_TCR_SWTRG_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPDAC_Register_Masks */
+
+
+/* LPDAC - Peripheral instance base addresses */
+/** Peripheral LPDAC0 base address */
+#define LPDAC0_BASE                              (0x4004C000u)
+/** Peripheral LPDAC0 base pointer */
+#define LPDAC0                                   ((LPDAC_Type *)LPDAC0_BASE)
+/** Array initializer of LPDAC peripheral base addresses */
+#define LPDAC_BASE_ADDRS                         { LPDAC0_BASE }
+/** Array initializer of LPDAC peripheral base pointers */
+#define LPDAC_BASE_PTRS                          { LPDAC0 }
+/** Interrupt vectors for the LPDAC peripheral type */
+#define LPDAC_IRQS                               { LPDAC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPDAC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPI2C Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPI2C_Peripheral_Access_Layer LPI2C Peripheral Access Layer
+ * @{
+ */
+
+/** LPI2C - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t MCR;                               /**< Master Control Register, offset: 0x10 */
+  __IO uint32_t MSR;                               /**< Master Status Register, offset: 0x14 */
+  __IO uint32_t MIER;                              /**< Master Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t MDER;                              /**< Master DMA Enable Register, offset: 0x1C */
+  __IO uint32_t MCFGR0;                            /**< Master Configuration Register 0, offset: 0x20 */
+  __IO uint32_t MCFGR1;                            /**< Master Configuration Register 1, offset: 0x24 */
+  __IO uint32_t MCFGR2;                            /**< Master Configuration Register 2, offset: 0x28 */
+  __IO uint32_t MCFGR3;                            /**< Master Configuration Register 3, offset: 0x2C */
+       uint8_t RESERVED_1[16];
+  __IO uint32_t MDMR;                              /**< Master Data Match Register, offset: 0x40 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t MCCR0;                             /**< Master Clock Configuration Register 0, offset: 0x48 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t MCCR1;                             /**< Master Clock Configuration Register 1, offset: 0x50 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t MFCR;                              /**< Master FIFO Control Register, offset: 0x58 */
+  __I  uint32_t MFSR;                              /**< Master FIFO Status Register, offset: 0x5C */
+  __O  uint32_t MTDR;                              /**< Master Transmit Data Register, offset: 0x60 */
+       uint8_t RESERVED_5[12];
+  __I  uint32_t MRDR;                              /**< Master Receive Data Register, offset: 0x70 */
+       uint8_t RESERVED_6[156];
+  __IO uint32_t SCR;                               /**< Slave Control Register, offset: 0x110 */
+  __IO uint32_t SSR;                               /**< Slave Status Register, offset: 0x114 */
+  __IO uint32_t SIER;                              /**< Slave Interrupt Enable Register, offset: 0x118 */
+  __IO uint32_t SDER;                              /**< Slave DMA Enable Register, offset: 0x11C */
+       uint8_t RESERVED_7[4];
+  __IO uint32_t SCFGR1;                            /**< Slave Configuration Register 1, offset: 0x124 */
+  __IO uint32_t SCFGR2;                            /**< Slave Configuration Register 2, offset: 0x128 */
+       uint8_t RESERVED_8[20];
+  __IO uint32_t SAMR;                              /**< Slave Address Match Register, offset: 0x140 */
+       uint8_t RESERVED_9[12];
+  __I  uint32_t SASR;                              /**< Slave Address Status Register, offset: 0x150 */
+  __IO uint32_t STAR;                              /**< Slave Transmit ACK Register, offset: 0x154 */
+       uint8_t RESERVED_10[8];
+  __O  uint32_t STDR;                              /**< Slave Transmit Data Register, offset: 0x160 */
+       uint8_t RESERVED_11[12];
+  __I  uint32_t SRDR;                              /**< Slave Receive Data Register, offset: 0x170 */
+} LPI2C_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPI2C Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPI2C_Register_Masks LPI2C Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPI2C_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPI2C_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000010..Master only, with standard feature set
+ *  0b0000000000000011..Master and slave, with standard feature set
+ */
+#define LPI2C_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_FEATURE_SHIFT)) & LPI2C_VERID_FEATURE_MASK)
+#define LPI2C_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPI2C_VERID_MINOR_SHIFT                  (16U)
+#define LPI2C_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MINOR_SHIFT)) & LPI2C_VERID_MINOR_MASK)
+#define LPI2C_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPI2C_VERID_MAJOR_SHIFT                  (24U)
+#define LPI2C_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MAJOR_SHIFT)) & LPI2C_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPI2C_PARAM_MTXFIFO_MASK                 (0xFU)
+#define LPI2C_PARAM_MTXFIFO_SHIFT                (0U)
+#define LPI2C_PARAM_MTXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MTXFIFO_SHIFT)) & LPI2C_PARAM_MTXFIFO_MASK)
+#define LPI2C_PARAM_MRXFIFO_MASK                 (0xF00U)
+#define LPI2C_PARAM_MRXFIFO_SHIFT                (8U)
+#define LPI2C_PARAM_MRXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MRXFIFO_SHIFT)) & LPI2C_PARAM_MRXFIFO_MASK)
+/*! @} */
+
+/*! @name MCR - Master Control Register */
+/*! @{ */
+#define LPI2C_MCR_MEN_MASK                       (0x1U)
+#define LPI2C_MCR_MEN_SHIFT                      (0U)
+/*! MEN - Master Enable
+ *  0b0..Master logic is disabled
+ *  0b1..Master logic is enabled
+ */
+#define LPI2C_MCR_MEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_MEN_SHIFT)) & LPI2C_MCR_MEN_MASK)
+#define LPI2C_MCR_RST_MASK                       (0x2U)
+#define LPI2C_MCR_RST_SHIFT                      (1U)
+/*! RST - Software Reset
+ *  0b0..Master logic is not reset
+ *  0b1..Master logic is reset
+ */
+#define LPI2C_MCR_RST(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RST_SHIFT)) & LPI2C_MCR_RST_MASK)
+#define LPI2C_MCR_DOZEN_MASK                     (0x4U)
+#define LPI2C_MCR_DOZEN_SHIFT                    (2U)
+/*! DOZEN - Doze mode enable
+ *  0b0..Master is enabled in Doze mode
+ *  0b1..Master is disabled in Doze mode
+ */
+#define LPI2C_MCR_DOZEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DOZEN_SHIFT)) & LPI2C_MCR_DOZEN_MASK)
+#define LPI2C_MCR_DBGEN_MASK                     (0x8U)
+#define LPI2C_MCR_DBGEN_SHIFT                    (3U)
+/*! DBGEN - Debug Enable
+ *  0b0..Master is disabled in debug mode
+ *  0b1..Master is enabled in debug mode
+ */
+#define LPI2C_MCR_DBGEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DBGEN_SHIFT)) & LPI2C_MCR_DBGEN_MASK)
+#define LPI2C_MCR_RTF_MASK                       (0x100U)
+#define LPI2C_MCR_RTF_SHIFT                      (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit FIFO is reset
+ */
+#define LPI2C_MCR_RTF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RTF_SHIFT)) & LPI2C_MCR_RTF_MASK)
+#define LPI2C_MCR_RRF_MASK                       (0x200U)
+#define LPI2C_MCR_RRF_SHIFT                      (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive FIFO is reset
+ */
+#define LPI2C_MCR_RRF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RRF_SHIFT)) & LPI2C_MCR_RRF_MASK)
+/*! @} */
+
+/*! @name MSR - Master Status Register */
+/*! @{ */
+#define LPI2C_MSR_TDF_MASK                       (0x1U)
+#define LPI2C_MSR_TDF_SHIFT                      (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data is not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPI2C_MSR_TDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_TDF_SHIFT)) & LPI2C_MSR_TDF_MASK)
+#define LPI2C_MSR_RDF_MASK                       (0x2U)
+#define LPI2C_MSR_RDF_SHIFT                      (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive Data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPI2C_MSR_RDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_RDF_SHIFT)) & LPI2C_MSR_RDF_MASK)
+#define LPI2C_MSR_EPF_MASK                       (0x100U)
+#define LPI2C_MSR_EPF_SHIFT                      (8U)
+/*! EPF - End Packet Flag
+ *  0b0..Master has not generated a STOP or Repeated START condition
+ *  0b1..Master has generated a STOP or Repeated START condition
+ */
+#define LPI2C_MSR_EPF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_EPF_SHIFT)) & LPI2C_MSR_EPF_MASK)
+#define LPI2C_MSR_SDF_MASK                       (0x200U)
+#define LPI2C_MSR_SDF_SHIFT                      (9U)
+/*! SDF - STOP Detect Flag
+ *  0b0..Master has not generated a STOP condition
+ *  0b1..Master has generated a STOP condition
+ */
+#define LPI2C_MSR_SDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_SDF_SHIFT)) & LPI2C_MSR_SDF_MASK)
+#define LPI2C_MSR_NDF_MASK                       (0x400U)
+#define LPI2C_MSR_NDF_SHIFT                      (10U)
+/*! NDF - NACK Detect Flag
+ *  0b0..Unexpected NACK was not detected
+ *  0b1..Unexpected NACK was detected
+ */
+#define LPI2C_MSR_NDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_NDF_SHIFT)) & LPI2C_MSR_NDF_MASK)
+#define LPI2C_MSR_ALF_MASK                       (0x800U)
+#define LPI2C_MSR_ALF_SHIFT                      (11U)
+/*! ALF - Arbitration Lost Flag
+ *  0b0..Master has not lost arbitration
+ *  0b1..Master has lost arbitration
+ */
+#define LPI2C_MSR_ALF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_ALF_SHIFT)) & LPI2C_MSR_ALF_MASK)
+#define LPI2C_MSR_FEF_MASK                       (0x1000U)
+#define LPI2C_MSR_FEF_SHIFT                      (12U)
+/*! FEF - FIFO Error Flag
+ *  0b0..No error
+ *  0b1..Master sending or receiving data without a START condition
+ */
+#define LPI2C_MSR_FEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_FEF_SHIFT)) & LPI2C_MSR_FEF_MASK)
+#define LPI2C_MSR_PLTF_MASK                      (0x2000U)
+#define LPI2C_MSR_PLTF_SHIFT                     (13U)
+/*! PLTF - Pin Low Timeout Flag
+ *  0b0..Pin low timeout has not occurred or is disabled
+ *  0b1..Pin low timeout has occurred
+ */
+#define LPI2C_MSR_PLTF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_PLTF_SHIFT)) & LPI2C_MSR_PLTF_MASK)
+#define LPI2C_MSR_DMF_MASK                       (0x4000U)
+#define LPI2C_MSR_DMF_SHIFT                      (14U)
+/*! DMF - Data Match Flag
+ *  0b0..Have not received matching data
+ *  0b1..Have received matching data
+ */
+#define LPI2C_MSR_DMF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_DMF_SHIFT)) & LPI2C_MSR_DMF_MASK)
+#define LPI2C_MSR_MBF_MASK                       (0x1000000U)
+#define LPI2C_MSR_MBF_SHIFT                      (24U)
+/*! MBF - Master Busy Flag
+ *  0b0..I2C Master is idle
+ *  0b1..I2C Master is busy
+ */
+#define LPI2C_MSR_MBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_MBF_SHIFT)) & LPI2C_MSR_MBF_MASK)
+#define LPI2C_MSR_BBF_MASK                       (0x2000000U)
+#define LPI2C_MSR_BBF_SHIFT                      (25U)
+/*! BBF - Bus Busy Flag
+ *  0b0..I2C Bus is idle
+ *  0b1..I2C Bus is busy
+ */
+#define LPI2C_MSR_BBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_BBF_SHIFT)) & LPI2C_MSR_BBF_MASK)
+/*! @} */
+
+/*! @name MIER - Master Interrupt Enable Register */
+/*! @{ */
+#define LPI2C_MIER_TDIE_MASK                     (0x1U)
+#define LPI2C_MIER_TDIE_SHIFT                    (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_TDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_TDIE_SHIFT)) & LPI2C_MIER_TDIE_MASK)
+#define LPI2C_MIER_RDIE_MASK                     (0x2U)
+#define LPI2C_MIER_RDIE_SHIFT                    (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_RDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_RDIE_SHIFT)) & LPI2C_MIER_RDIE_MASK)
+#define LPI2C_MIER_EPIE_MASK                     (0x100U)
+#define LPI2C_MIER_EPIE_SHIFT                    (8U)
+/*! EPIE - End Packet Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_EPIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_EPIE_SHIFT)) & LPI2C_MIER_EPIE_MASK)
+#define LPI2C_MIER_SDIE_MASK                     (0x200U)
+#define LPI2C_MIER_SDIE_SHIFT                    (9U)
+/*! SDIE - STOP Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_SDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_SDIE_SHIFT)) & LPI2C_MIER_SDIE_MASK)
+#define LPI2C_MIER_NDIE_MASK                     (0x400U)
+#define LPI2C_MIER_NDIE_SHIFT                    (10U)
+/*! NDIE - NACK Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_NDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_NDIE_SHIFT)) & LPI2C_MIER_NDIE_MASK)
+#define LPI2C_MIER_ALIE_MASK                     (0x800U)
+#define LPI2C_MIER_ALIE_SHIFT                    (11U)
+/*! ALIE - Arbitration Lost Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_ALIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_ALIE_SHIFT)) & LPI2C_MIER_ALIE_MASK)
+#define LPI2C_MIER_FEIE_MASK                     (0x1000U)
+#define LPI2C_MIER_FEIE_SHIFT                    (12U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Enabled
+ *  0b1..Disabled
+ */
+#define LPI2C_MIER_FEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_FEIE_SHIFT)) & LPI2C_MIER_FEIE_MASK)
+#define LPI2C_MIER_PLTIE_MASK                    (0x2000U)
+#define LPI2C_MIER_PLTIE_SHIFT                   (13U)
+/*! PLTIE - Pin Low Timeout Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_PLTIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_PLTIE_SHIFT)) & LPI2C_MIER_PLTIE_MASK)
+#define LPI2C_MIER_DMIE_MASK                     (0x4000U)
+#define LPI2C_MIER_DMIE_SHIFT                    (14U)
+/*! DMIE - Data Match Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_DMIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_DMIE_SHIFT)) & LPI2C_MIER_DMIE_MASK)
+/*! @} */
+
+/*! @name MDER - Master DMA Enable Register */
+/*! @{ */
+#define LPI2C_MDER_TDDE_MASK                     (0x1U)
+#define LPI2C_MDER_TDDE_SHIFT                    (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_MDER_TDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_TDDE_SHIFT)) & LPI2C_MDER_TDDE_MASK)
+#define LPI2C_MDER_RDDE_MASK                     (0x2U)
+#define LPI2C_MDER_RDDE_SHIFT                    (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_MDER_RDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_RDDE_SHIFT)) & LPI2C_MDER_RDDE_MASK)
+/*! @} */
+
+/*! @name MCFGR0 - Master Configuration Register 0 */
+/*! @{ */
+#define LPI2C_MCFGR0_HREN_MASK                   (0x1U)
+#define LPI2C_MCFGR0_HREN_SHIFT                  (0U)
+/*! HREN - Host Request Enable
+ *  0b0..Host request input is disabled
+ *  0b1..Host request input is enabled
+ */
+#define LPI2C_MCFGR0_HREN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HREN_SHIFT)) & LPI2C_MCFGR0_HREN_MASK)
+#define LPI2C_MCFGR0_HRPOL_MASK                  (0x2U)
+#define LPI2C_MCFGR0_HRPOL_SHIFT                 (1U)
+/*! HRPOL - Host Request Polarity
+ *  0b0..Active low
+ *  0b1..Active high
+ */
+#define LPI2C_MCFGR0_HRPOL(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRPOL_SHIFT)) & LPI2C_MCFGR0_HRPOL_MASK)
+#define LPI2C_MCFGR0_HRSEL_MASK                  (0x4U)
+#define LPI2C_MCFGR0_HRSEL_SHIFT                 (2U)
+/*! HRSEL - Host Request Select
+ *  0b0..Host request input is pin HREQ
+ *  0b1..Host request input is input trigger
+ */
+#define LPI2C_MCFGR0_HRSEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRSEL_SHIFT)) & LPI2C_MCFGR0_HRSEL_MASK)
+#define LPI2C_MCFGR0_CIRFIFO_MASK                (0x100U)
+#define LPI2C_MCFGR0_CIRFIFO_SHIFT               (8U)
+/*! CIRFIFO - Circular FIFO Enable
+ *  0b0..Circular FIFO is disabled
+ *  0b1..Circular FIFO is enabled
+ */
+#define LPI2C_MCFGR0_CIRFIFO(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_CIRFIFO_SHIFT)) & LPI2C_MCFGR0_CIRFIFO_MASK)
+#define LPI2C_MCFGR0_RDMO_MASK                   (0x200U)
+#define LPI2C_MCFGR0_RDMO_SHIFT                  (9U)
+/*! RDMO - Receive Data Match Only
+ *  0b0..Received data is stored in the receive FIFO
+ *  0b1..Received data is discarded unless the the Data Match Flag (MSR[DMF]) is set
+ */
+#define LPI2C_MCFGR0_RDMO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_RDMO_SHIFT)) & LPI2C_MCFGR0_RDMO_MASK)
+/*! @} */
+
+/*! @name MCFGR1 - Master Configuration Register 1 */
+/*! @{ */
+#define LPI2C_MCFGR1_PRESCALE_MASK               (0x7U)
+#define LPI2C_MCFGR1_PRESCALE_SHIFT              (0U)
+/*! PRESCALE - Prescaler
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define LPI2C_MCFGR1_PRESCALE(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PRESCALE_SHIFT)) & LPI2C_MCFGR1_PRESCALE_MASK)
+#define LPI2C_MCFGR1_AUTOSTOP_MASK               (0x100U)
+#define LPI2C_MCFGR1_AUTOSTOP_SHIFT              (8U)
+/*! AUTOSTOP - Automatic STOP Generation
+ *  0b0..No effect
+ *  0b1..STOP condition is automatically generated whenever the transmit FIFO is empty and the LPI2C master is busy
+ */
+#define LPI2C_MCFGR1_AUTOSTOP(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_AUTOSTOP_SHIFT)) & LPI2C_MCFGR1_AUTOSTOP_MASK)
+#define LPI2C_MCFGR1_IGNACK_MASK                 (0x200U)
+#define LPI2C_MCFGR1_IGNACK_SHIFT                (9U)
+/*! IGNACK - IGNACK
+ *  0b0..LPI2C Master will receive ACK and NACK normally
+ *  0b1..LPI2C Master will treat a received NACK as if it (NACK) was an ACK
+ */
+#define LPI2C_MCFGR1_IGNACK(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_IGNACK_SHIFT)) & LPI2C_MCFGR1_IGNACK_MASK)
+#define LPI2C_MCFGR1_TIMECFG_MASK                (0x400U)
+#define LPI2C_MCFGR1_TIMECFG_SHIFT               (10U)
+/*! TIMECFG - Timeout Configuration
+ *  0b0..Pin Low Timeout Flag will set if SCL is low for longer than the configured timeout
+ *  0b1..Pin Low Timeout Flag will set if either SCL or SDA is low for longer than the configured timeout
+ */
+#define LPI2C_MCFGR1_TIMECFG(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_TIMECFG_SHIFT)) & LPI2C_MCFGR1_TIMECFG_MASK)
+#define LPI2C_MCFGR1_MATCFG_MASK                 (0x70000U)
+#define LPI2C_MCFGR1_MATCFG_SHIFT                (16U)
+/*! MATCFG - Match Configuration
+ *  0b000..Match is disabled
+ *  0b001..Reserved
+ *  0b010..Match is enabled (1st data word equals MATCH0 OR MATCH1)
+ *  0b011..Match is enabled (any data word equals MATCH0 OR MATCH1)
+ *  0b100..Match is enabled (1st data word equals MATCH0 AND 2nd data word equals MATCH1)
+ *  0b101..Match is enabled (any data word equals MATCH0 AND next data word equals MATCH1)
+ *  0b110..Match is enabled (1st data word AND MATCH1 equals MATCH0 AND MATCH1)
+ *  0b111..Match is enabled (any data word AND MATCH1 equals MATCH0 AND MATCH1)
+ */
+#define LPI2C_MCFGR1_MATCFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_MATCFG_SHIFT)) & LPI2C_MCFGR1_MATCFG_MASK)
+#define LPI2C_MCFGR1_PINCFG_MASK                 (0x7000000U)
+#define LPI2C_MCFGR1_PINCFG_SHIFT                (24U)
+/*! PINCFG - Pin Configuration
+ *  0b000..2-pin open drain mode
+ *  0b001..2-pin output only mode (ultra-fast mode)
+ *  0b010..2-pin push-pull mode
+ *  0b011..4-pin push-pull mode
+ *  0b100..2-pin open drain mode with separate LPI2C slave
+ *  0b101..2-pin output only mode (ultra-fast mode) with separate LPI2C slave
+ *  0b110..2-pin push-pull mode with separate LPI2C slave
+ *  0b111..4-pin push-pull mode (inverted outputs)
+ */
+#define LPI2C_MCFGR1_PINCFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PINCFG_SHIFT)) & LPI2C_MCFGR1_PINCFG_MASK)
+/*! @} */
+
+/*! @name MCFGR2 - Master Configuration Register 2 */
+/*! @{ */
+#define LPI2C_MCFGR2_BUSIDLE_MASK                (0xFFFU)
+#define LPI2C_MCFGR2_BUSIDLE_SHIFT               (0U)
+#define LPI2C_MCFGR2_BUSIDLE(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_BUSIDLE_SHIFT)) & LPI2C_MCFGR2_BUSIDLE_MASK)
+#define LPI2C_MCFGR2_FILTSCL_MASK                (0xF0000U)
+#define LPI2C_MCFGR2_FILTSCL_SHIFT               (16U)
+#define LPI2C_MCFGR2_FILTSCL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSCL_SHIFT)) & LPI2C_MCFGR2_FILTSCL_MASK)
+#define LPI2C_MCFGR2_FILTSDA_MASK                (0xF000000U)
+#define LPI2C_MCFGR2_FILTSDA_SHIFT               (24U)
+#define LPI2C_MCFGR2_FILTSDA(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSDA_SHIFT)) & LPI2C_MCFGR2_FILTSDA_MASK)
+/*! @} */
+
+/*! @name MCFGR3 - Master Configuration Register 3 */
+/*! @{ */
+#define LPI2C_MCFGR3_PINLOW_MASK                 (0xFFF00U)
+#define LPI2C_MCFGR3_PINLOW_SHIFT                (8U)
+#define LPI2C_MCFGR3_PINLOW(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR3_PINLOW_SHIFT)) & LPI2C_MCFGR3_PINLOW_MASK)
+/*! @} */
+
+/*! @name MDMR - Master Data Match Register */
+/*! @{ */
+#define LPI2C_MDMR_MATCH0_MASK                   (0xFFU)
+#define LPI2C_MDMR_MATCH0_SHIFT                  (0U)
+#define LPI2C_MDMR_MATCH0(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH0_SHIFT)) & LPI2C_MDMR_MATCH0_MASK)
+#define LPI2C_MDMR_MATCH1_MASK                   (0xFF0000U)
+#define LPI2C_MDMR_MATCH1_SHIFT                  (16U)
+#define LPI2C_MDMR_MATCH1(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH1_SHIFT)) & LPI2C_MDMR_MATCH1_MASK)
+/*! @} */
+
+/*! @name MCCR0 - Master Clock Configuration Register 0 */
+/*! @{ */
+#define LPI2C_MCCR0_CLKLO_MASK                   (0x3FU)
+#define LPI2C_MCCR0_CLKLO_SHIFT                  (0U)
+#define LPI2C_MCCR0_CLKLO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKLO_SHIFT)) & LPI2C_MCCR0_CLKLO_MASK)
+#define LPI2C_MCCR0_CLKHI_MASK                   (0x3F00U)
+#define LPI2C_MCCR0_CLKHI_SHIFT                  (8U)
+#define LPI2C_MCCR0_CLKHI(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKHI_SHIFT)) & LPI2C_MCCR0_CLKHI_MASK)
+#define LPI2C_MCCR0_SETHOLD_MASK                 (0x3F0000U)
+#define LPI2C_MCCR0_SETHOLD_SHIFT                (16U)
+#define LPI2C_MCCR0_SETHOLD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_SETHOLD_SHIFT)) & LPI2C_MCCR0_SETHOLD_MASK)
+#define LPI2C_MCCR0_DATAVD_MASK                  (0x3F000000U)
+#define LPI2C_MCCR0_DATAVD_SHIFT                 (24U)
+#define LPI2C_MCCR0_DATAVD(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_DATAVD_SHIFT)) & LPI2C_MCCR0_DATAVD_MASK)
+/*! @} */
+
+/*! @name MCCR1 - Master Clock Configuration Register 1 */
+/*! @{ */
+#define LPI2C_MCCR1_CLKLO_MASK                   (0x3FU)
+#define LPI2C_MCCR1_CLKLO_SHIFT                  (0U)
+#define LPI2C_MCCR1_CLKLO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKLO_SHIFT)) & LPI2C_MCCR1_CLKLO_MASK)
+#define LPI2C_MCCR1_CLKHI_MASK                   (0x3F00U)
+#define LPI2C_MCCR1_CLKHI_SHIFT                  (8U)
+#define LPI2C_MCCR1_CLKHI(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKHI_SHIFT)) & LPI2C_MCCR1_CLKHI_MASK)
+#define LPI2C_MCCR1_SETHOLD_MASK                 (0x3F0000U)
+#define LPI2C_MCCR1_SETHOLD_SHIFT                (16U)
+#define LPI2C_MCCR1_SETHOLD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_SETHOLD_SHIFT)) & LPI2C_MCCR1_SETHOLD_MASK)
+#define LPI2C_MCCR1_DATAVD_MASK                  (0x3F000000U)
+#define LPI2C_MCCR1_DATAVD_SHIFT                 (24U)
+#define LPI2C_MCCR1_DATAVD(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_DATAVD_SHIFT)) & LPI2C_MCCR1_DATAVD_MASK)
+/*! @} */
+
+/*! @name MFCR - Master FIFO Control Register */
+/*! @{ */
+#define LPI2C_MFCR_TXWATER_MASK                  (0x3U)
+#define LPI2C_MFCR_TXWATER_SHIFT                 (0U)
+#define LPI2C_MFCR_TXWATER(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_TXWATER_SHIFT)) & LPI2C_MFCR_TXWATER_MASK)
+#define LPI2C_MFCR_RXWATER_MASK                  (0x30000U)
+#define LPI2C_MFCR_RXWATER_SHIFT                 (16U)
+#define LPI2C_MFCR_RXWATER(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_RXWATER_SHIFT)) & LPI2C_MFCR_RXWATER_MASK)
+/*! @} */
+
+/*! @name MFSR - Master FIFO Status Register */
+/*! @{ */
+#define LPI2C_MFSR_TXCOUNT_MASK                  (0x7U)
+#define LPI2C_MFSR_TXCOUNT_SHIFT                 (0U)
+#define LPI2C_MFSR_TXCOUNT(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_TXCOUNT_SHIFT)) & LPI2C_MFSR_TXCOUNT_MASK)
+#define LPI2C_MFSR_RXCOUNT_MASK                  (0x70000U)
+#define LPI2C_MFSR_RXCOUNT_SHIFT                 (16U)
+#define LPI2C_MFSR_RXCOUNT(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_RXCOUNT_SHIFT)) & LPI2C_MFSR_RXCOUNT_MASK)
+/*! @} */
+
+/*! @name MTDR - Master Transmit Data Register */
+/*! @{ */
+#define LPI2C_MTDR_DATA_MASK                     (0xFFU)
+#define LPI2C_MTDR_DATA_SHIFT                    (0U)
+#define LPI2C_MTDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_DATA_SHIFT)) & LPI2C_MTDR_DATA_MASK)
+#define LPI2C_MTDR_CMD_MASK                      (0x700U)
+#define LPI2C_MTDR_CMD_SHIFT                     (8U)
+/*! CMD - Command Data
+ *  0b000..Transmit DATA[7:0]
+ *  0b001..Receive (DATA[7:0] + 1) bytes
+ *  0b010..Generate STOP condition
+ *  0b011..Receive and discard (DATA[7:0] + 1) bytes
+ *  0b100..Generate (repeated) START and transmit address in DATA[7:0]
+ *  0b101..Generate (repeated) START and transmit address in DATA[7:0]. This transfer expects a NACK to be returned.
+ *  0b110..Generate (repeated) START and transmit address in DATA[7:0] using high speed mode
+ *  0b111..Generate (repeated) START and transmit address in DATA[7:0] using high speed mode. This transfer expects a NACK to be returned.
+ */
+#define LPI2C_MTDR_CMD(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_CMD_SHIFT)) & LPI2C_MTDR_CMD_MASK)
+/*! @} */
+
+/*! @name MRDR - Master Receive Data Register */
+/*! @{ */
+#define LPI2C_MRDR_DATA_MASK                     (0xFFU)
+#define LPI2C_MRDR_DATA_SHIFT                    (0U)
+#define LPI2C_MRDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_DATA_SHIFT)) & LPI2C_MRDR_DATA_MASK)
+#define LPI2C_MRDR_RXEMPTY_MASK                  (0x4000U)
+#define LPI2C_MRDR_RXEMPTY_SHIFT                 (14U)
+/*! RXEMPTY - RX Empty
+ *  0b0..Receive FIFO is not empty
+ *  0b1..Receive FIFO is empty
+ */
+#define LPI2C_MRDR_RXEMPTY(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_RXEMPTY_SHIFT)) & LPI2C_MRDR_RXEMPTY_MASK)
+/*! @} */
+
+/*! @name SCR - Slave Control Register */
+/*! @{ */
+#define LPI2C_SCR_SEN_MASK                       (0x1U)
+#define LPI2C_SCR_SEN_SHIFT                      (0U)
+/*! SEN - Slave Enable
+ *  0b0..I2C Slave mode is disabled
+ *  0b1..I2C Slave mode is enabled
+ */
+#define LPI2C_SCR_SEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_SEN_SHIFT)) & LPI2C_SCR_SEN_MASK)
+#define LPI2C_SCR_RST_MASK                       (0x2U)
+#define LPI2C_SCR_RST_SHIFT                      (1U)
+/*! RST - Software Reset
+ *  0b0..Slave mode logic is not reset
+ *  0b1..Slave mode logic is reset
+ */
+#define LPI2C_SCR_RST(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RST_SHIFT)) & LPI2C_SCR_RST_MASK)
+#define LPI2C_SCR_FILTEN_MASK                    (0x10U)
+#define LPI2C_SCR_FILTEN_SHIFT                   (4U)
+/*! FILTEN - Filter Enable
+ *  0b0..Disable digital filter and output delay counter for slave mode
+ *  0b1..Enable digital filter and output delay counter for slave mode
+ */
+#define LPI2C_SCR_FILTEN(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTEN_SHIFT)) & LPI2C_SCR_FILTEN_MASK)
+#define LPI2C_SCR_FILTDZ_MASK                    (0x20U)
+#define LPI2C_SCR_FILTDZ_SHIFT                   (5U)
+/*! FILTDZ - Filter Doze Enable
+ *  0b0..Filter remains enabled in Doze mode
+ *  0b1..Filter is disabled in Doze mode
+ */
+#define LPI2C_SCR_FILTDZ(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTDZ_SHIFT)) & LPI2C_SCR_FILTDZ_MASK)
+#define LPI2C_SCR_RTF_MASK                       (0x100U)
+#define LPI2C_SCR_RTF_SHIFT                      (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit Data Register is now empty
+ */
+#define LPI2C_SCR_RTF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RTF_SHIFT)) & LPI2C_SCR_RTF_MASK)
+#define LPI2C_SCR_RRF_MASK                       (0x200U)
+#define LPI2C_SCR_RRF_SHIFT                      (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive Data Register is now empty
+ */
+#define LPI2C_SCR_RRF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RRF_SHIFT)) & LPI2C_SCR_RRF_MASK)
+/*! @} */
+
+/*! @name SSR - Slave Status Register */
+/*! @{ */
+#define LPI2C_SSR_TDF_MASK                       (0x1U)
+#define LPI2C_SSR_TDF_SHIFT                      (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPI2C_SSR_TDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TDF_SHIFT)) & LPI2C_SSR_TDF_MASK)
+#define LPI2C_SSR_RDF_MASK                       (0x2U)
+#define LPI2C_SSR_RDF_SHIFT                      (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPI2C_SSR_RDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RDF_SHIFT)) & LPI2C_SSR_RDF_MASK)
+#define LPI2C_SSR_AVF_MASK                       (0x4U)
+#define LPI2C_SSR_AVF_SHIFT                      (2U)
+/*! AVF - Address Valid Flag
+ *  0b0..Address Status Register is not valid
+ *  0b1..Address Status Register is valid
+ */
+#define LPI2C_SSR_AVF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AVF_SHIFT)) & LPI2C_SSR_AVF_MASK)
+#define LPI2C_SSR_TAF_MASK                       (0x8U)
+#define LPI2C_SSR_TAF_SHIFT                      (3U)
+/*! TAF - Transmit ACK Flag
+ *  0b0..Transmit ACK/NACK is not required
+ *  0b1..Transmit ACK/NACK is required
+ */
+#define LPI2C_SSR_TAF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TAF_SHIFT)) & LPI2C_SSR_TAF_MASK)
+#define LPI2C_SSR_RSF_MASK                       (0x100U)
+#define LPI2C_SSR_RSF_SHIFT                      (8U)
+/*! RSF - Repeated Start Flag
+ *  0b0..Slave has not detected a Repeated START condition
+ *  0b1..Slave has detected a Repeated START condition
+ */
+#define LPI2C_SSR_RSF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RSF_SHIFT)) & LPI2C_SSR_RSF_MASK)
+#define LPI2C_SSR_SDF_MASK                       (0x200U)
+#define LPI2C_SSR_SDF_SHIFT                      (9U)
+/*! SDF - STOP Detect Flag
+ *  0b0..Slave has not detected a STOP condition
+ *  0b1..Slave has detected a STOP condition
+ */
+#define LPI2C_SSR_SDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SDF_SHIFT)) & LPI2C_SSR_SDF_MASK)
+#define LPI2C_SSR_BEF_MASK                       (0x400U)
+#define LPI2C_SSR_BEF_SHIFT                      (10U)
+/*! BEF - Bit Error Flag
+ *  0b0..Slave has not detected a bit error
+ *  0b1..Slave has detected a bit error
+ */
+#define LPI2C_SSR_BEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BEF_SHIFT)) & LPI2C_SSR_BEF_MASK)
+#define LPI2C_SSR_FEF_MASK                       (0x800U)
+#define LPI2C_SSR_FEF_SHIFT                      (11U)
+/*! FEF - FIFO Error Flag
+ *  0b0..FIFO underflow or overflow was not detected
+ *  0b1..FIFO underflow or overflow was detected
+ */
+#define LPI2C_SSR_FEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_FEF_SHIFT)) & LPI2C_SSR_FEF_MASK)
+#define LPI2C_SSR_AM0F_MASK                      (0x1000U)
+#define LPI2C_SSR_AM0F_SHIFT                     (12U)
+/*! AM0F - Address Match 0 Flag
+ *  0b0..Have not received an ADDR0 matching address
+ *  0b1..Have received an ADDR0 matching address
+ */
+#define LPI2C_SSR_AM0F(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM0F_SHIFT)) & LPI2C_SSR_AM0F_MASK)
+#define LPI2C_SSR_AM1F_MASK                      (0x2000U)
+#define LPI2C_SSR_AM1F_SHIFT                     (13U)
+/*! AM1F - Address Match 1 Flag
+ *  0b0..Have not received an ADDR1 or ADDR0/ADDR1 range matching address
+ *  0b1..Have received an ADDR1 or ADDR0/ADDR1 range matching address
+ */
+#define LPI2C_SSR_AM1F(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM1F_SHIFT)) & LPI2C_SSR_AM1F_MASK)
+#define LPI2C_SSR_GCF_MASK                       (0x4000U)
+#define LPI2C_SSR_GCF_SHIFT                      (14U)
+/*! GCF - General Call Flag
+ *  0b0..Slave has not detected the General Call Address or the General Call Address is disabled
+ *  0b1..Slave has detected the General Call Address
+ */
+#define LPI2C_SSR_GCF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_GCF_SHIFT)) & LPI2C_SSR_GCF_MASK)
+#define LPI2C_SSR_SARF_MASK                      (0x8000U)
+#define LPI2C_SSR_SARF_SHIFT                     (15U)
+/*! SARF - SMBus Alert Response Flag
+ *  0b0..SMBus Alert Response is disabled or not detected
+ *  0b1..SMBus Alert Response is enabled and detected
+ */
+#define LPI2C_SSR_SARF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SARF_SHIFT)) & LPI2C_SSR_SARF_MASK)
+#define LPI2C_SSR_SBF_MASK                       (0x1000000U)
+#define LPI2C_SSR_SBF_SHIFT                      (24U)
+/*! SBF - Slave Busy Flag
+ *  0b0..I2C Slave is idle
+ *  0b1..I2C Slave is busy
+ */
+#define LPI2C_SSR_SBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SBF_SHIFT)) & LPI2C_SSR_SBF_MASK)
+#define LPI2C_SSR_BBF_MASK                       (0x2000000U)
+#define LPI2C_SSR_BBF_SHIFT                      (25U)
+/*! BBF - Bus Busy Flag
+ *  0b0..I2C Bus is idle
+ *  0b1..I2C Bus is busy
+ */
+#define LPI2C_SSR_BBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BBF_SHIFT)) & LPI2C_SSR_BBF_MASK)
+/*! @} */
+
+/*! @name SIER - Slave Interrupt Enable Register */
+/*! @{ */
+#define LPI2C_SIER_TDIE_MASK                     (0x1U)
+#define LPI2C_SIER_TDIE_SHIFT                    (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_TDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TDIE_SHIFT)) & LPI2C_SIER_TDIE_MASK)
+#define LPI2C_SIER_RDIE_MASK                     (0x2U)
+#define LPI2C_SIER_RDIE_SHIFT                    (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_RDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RDIE_SHIFT)) & LPI2C_SIER_RDIE_MASK)
+#define LPI2C_SIER_AVIE_MASK                     (0x4U)
+#define LPI2C_SIER_AVIE_SHIFT                    (2U)
+/*! AVIE - Address Valid Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_AVIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AVIE_SHIFT)) & LPI2C_SIER_AVIE_MASK)
+#define LPI2C_SIER_TAIE_MASK                     (0x8U)
+#define LPI2C_SIER_TAIE_SHIFT                    (3U)
+/*! TAIE - Transmit ACK Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_TAIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TAIE_SHIFT)) & LPI2C_SIER_TAIE_MASK)
+#define LPI2C_SIER_RSIE_MASK                     (0x100U)
+#define LPI2C_SIER_RSIE_SHIFT                    (8U)
+/*! RSIE - Repeated Start Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_RSIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RSIE_SHIFT)) & LPI2C_SIER_RSIE_MASK)
+#define LPI2C_SIER_SDIE_MASK                     (0x200U)
+#define LPI2C_SIER_SDIE_SHIFT                    (9U)
+/*! SDIE - STOP Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_SDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SDIE_SHIFT)) & LPI2C_SIER_SDIE_MASK)
+#define LPI2C_SIER_BEIE_MASK                     (0x400U)
+#define LPI2C_SIER_BEIE_SHIFT                    (10U)
+/*! BEIE - Bit Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_BEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_BEIE_SHIFT)) & LPI2C_SIER_BEIE_MASK)
+#define LPI2C_SIER_FEIE_MASK                     (0x800U)
+#define LPI2C_SIER_FEIE_SHIFT                    (11U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_FEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_FEIE_SHIFT)) & LPI2C_SIER_FEIE_MASK)
+#define LPI2C_SIER_AM0IE_MASK                    (0x1000U)
+#define LPI2C_SIER_AM0IE_SHIFT                   (12U)
+/*! AM0IE - Address Match 0 Interrupt Enable
+ *  0b0..Enabled
+ *  0b1..Disabled
+ */
+#define LPI2C_SIER_AM0IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM0IE_SHIFT)) & LPI2C_SIER_AM0IE_MASK)
+#define LPI2C_SIER_AM1F_MASK                     (0x2000U)
+#define LPI2C_SIER_AM1F_SHIFT                    (13U)
+/*! AM1F - Address Match 1 Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_AM1F(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM1F_SHIFT)) & LPI2C_SIER_AM1F_MASK)
+#define LPI2C_SIER_GCIE_MASK                     (0x4000U)
+#define LPI2C_SIER_GCIE_SHIFT                    (14U)
+/*! GCIE - General Call Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_GCIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_GCIE_SHIFT)) & LPI2C_SIER_GCIE_MASK)
+#define LPI2C_SIER_SARIE_MASK                    (0x8000U)
+#define LPI2C_SIER_SARIE_SHIFT                   (15U)
+/*! SARIE - SMBus Alert Response Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_SARIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SARIE_SHIFT)) & LPI2C_SIER_SARIE_MASK)
+/*! @} */
+
+/*! @name SDER - Slave DMA Enable Register */
+/*! @{ */
+#define LPI2C_SDER_TDDE_MASK                     (0x1U)
+#define LPI2C_SDER_TDDE_SHIFT                    (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_TDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_TDDE_SHIFT)) & LPI2C_SDER_TDDE_MASK)
+#define LPI2C_SDER_RDDE_MASK                     (0x2U)
+#define LPI2C_SDER_RDDE_SHIFT                    (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_RDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_RDDE_SHIFT)) & LPI2C_SDER_RDDE_MASK)
+#define LPI2C_SDER_AVDE_MASK                     (0x4U)
+#define LPI2C_SDER_AVDE_SHIFT                    (2U)
+/*! AVDE - Address Valid DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_AVDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_AVDE_SHIFT)) & LPI2C_SDER_AVDE_MASK)
+/*! @} */
+
+/*! @name SCFGR1 - Slave Configuration Register 1 */
+/*! @{ */
+#define LPI2C_SCFGR1_ADRSTALL_MASK               (0x1U)
+#define LPI2C_SCFGR1_ADRSTALL_SHIFT              (0U)
+/*! ADRSTALL - Address SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_ADRSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADRSTALL_SHIFT)) & LPI2C_SCFGR1_ADRSTALL_MASK)
+#define LPI2C_SCFGR1_RXSTALL_MASK                (0x2U)
+#define LPI2C_SCFGR1_RXSTALL_SHIFT               (1U)
+/*! RXSTALL - RX SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_RXSTALL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXSTALL_SHIFT)) & LPI2C_SCFGR1_RXSTALL_MASK)
+#define LPI2C_SCFGR1_TXDSTALL_MASK               (0x4U)
+#define LPI2C_SCFGR1_TXDSTALL_SHIFT              (2U)
+/*! TXDSTALL - TX Data SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_TXDSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXDSTALL_SHIFT)) & LPI2C_SCFGR1_TXDSTALL_MASK)
+#define LPI2C_SCFGR1_ACKSTALL_MASK               (0x8U)
+#define LPI2C_SCFGR1_ACKSTALL_SHIFT              (3U)
+/*! ACKSTALL - ACK SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_ACKSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ACKSTALL_SHIFT)) & LPI2C_SCFGR1_ACKSTALL_MASK)
+#define LPI2C_SCFGR1_GCEN_MASK                   (0x100U)
+#define LPI2C_SCFGR1_GCEN_SHIFT                  (8U)
+/*! GCEN - General Call Enable
+ *  0b0..General Call address is disabled
+ *  0b1..General Call address is enabled
+ */
+#define LPI2C_SCFGR1_GCEN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_GCEN_SHIFT)) & LPI2C_SCFGR1_GCEN_MASK)
+#define LPI2C_SCFGR1_SAEN_MASK                   (0x200U)
+#define LPI2C_SCFGR1_SAEN_SHIFT                  (9U)
+/*! SAEN - SMBus Alert Enable
+ *  0b0..Disables match on SMBus Alert
+ *  0b1..Enables match on SMBus Alert
+ */
+#define LPI2C_SCFGR1_SAEN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_SAEN_SHIFT)) & LPI2C_SCFGR1_SAEN_MASK)
+#define LPI2C_SCFGR1_TXCFG_MASK                  (0x400U)
+#define LPI2C_SCFGR1_TXCFG_SHIFT                 (10U)
+/*! TXCFG - Transmit Flag Configuration
+ *  0b0..Transmit Data Flag will only assert during a slave-transmit transfer when the Transmit Data register is empty
+ *  0b1..Transmit Data Flag will assert whenever the Transmit Data register is empty
+ */
+#define LPI2C_SCFGR1_TXCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXCFG_SHIFT)) & LPI2C_SCFGR1_TXCFG_MASK)
+#define LPI2C_SCFGR1_RXCFG_MASK                  (0x800U)
+#define LPI2C_SCFGR1_RXCFG_SHIFT                 (11U)
+/*! RXCFG - Receive Data Configuration
+ *  0b0..Reading the Receive Data register will return received data and clear the Receive Data flag (MSR[RDF]).
+ *  0b1..Reading the Receive Data register when the Address Valid flag (SSR[AVF])is set, will return the Address Status register and clear the Address Valid flag. Reading the Receive Data register when the Address Valid flag is clear, will return received data and clear the Receive Data flag (MSR[RDF]).
+ */
+#define LPI2C_SCFGR1_RXCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXCFG_SHIFT)) & LPI2C_SCFGR1_RXCFG_MASK)
+#define LPI2C_SCFGR1_IGNACK_MASK                 (0x1000U)
+#define LPI2C_SCFGR1_IGNACK_SHIFT                (12U)
+/*! IGNACK - Ignore NACK
+ *  0b0..Slave will end transfer when NACK is detected
+ *  0b1..Slave will not end transfer when NACK detected
+ */
+#define LPI2C_SCFGR1_IGNACK(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_IGNACK_SHIFT)) & LPI2C_SCFGR1_IGNACK_MASK)
+#define LPI2C_SCFGR1_HSMEN_MASK                  (0x2000U)
+#define LPI2C_SCFGR1_HSMEN_SHIFT                 (13U)
+/*! HSMEN - High Speed Mode Enable
+ *  0b0..Disables detection of HS-mode master code
+ *  0b1..Enables detection of HS-mode master code
+ */
+#define LPI2C_SCFGR1_HSMEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_HSMEN_SHIFT)) & LPI2C_SCFGR1_HSMEN_MASK)
+#define LPI2C_SCFGR1_ADDRCFG_MASK                (0x70000U)
+#define LPI2C_SCFGR1_ADDRCFG_SHIFT               (16U)
+/*! ADDRCFG - Address Configuration
+ *  0b000..Address match 0 (7-bit)
+ *  0b001..Address match 0 (10-bit)
+ *  0b010..Address match 0 (7-bit) or Address match 1 (7-bit)
+ *  0b011..Address match 0 (10-bit) or Address match 1 (10-bit)
+ *  0b100..Address match 0 (7-bit) or Address match 1 (10-bit)
+ *  0b101..Address match 0 (10-bit) or Address match 1 (7-bit)
+ *  0b110..From Address match 0 (7-bit) to Address match 1 (7-bit)
+ *  0b111..From Address match 0 (10-bit) to Address match 1 (10-bit)
+ */
+#define LPI2C_SCFGR1_ADDRCFG(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADDRCFG_SHIFT)) & LPI2C_SCFGR1_ADDRCFG_MASK)
+/*! @} */
+
+/*! @name SCFGR2 - Slave Configuration Register 2 */
+/*! @{ */
+#define LPI2C_SCFGR2_CLKHOLD_MASK                (0xFU)
+#define LPI2C_SCFGR2_CLKHOLD_SHIFT               (0U)
+#define LPI2C_SCFGR2_CLKHOLD(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_CLKHOLD_SHIFT)) & LPI2C_SCFGR2_CLKHOLD_MASK)
+#define LPI2C_SCFGR2_DATAVD_MASK                 (0x3F00U)
+#define LPI2C_SCFGR2_DATAVD_SHIFT                (8U)
+#define LPI2C_SCFGR2_DATAVD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_DATAVD_SHIFT)) & LPI2C_SCFGR2_DATAVD_MASK)
+#define LPI2C_SCFGR2_FILTSCL_MASK                (0xF0000U)
+#define LPI2C_SCFGR2_FILTSCL_SHIFT               (16U)
+#define LPI2C_SCFGR2_FILTSCL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSCL_SHIFT)) & LPI2C_SCFGR2_FILTSCL_MASK)
+#define LPI2C_SCFGR2_FILTSDA_MASK                (0xF000000U)
+#define LPI2C_SCFGR2_FILTSDA_SHIFT               (24U)
+#define LPI2C_SCFGR2_FILTSDA(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSDA_SHIFT)) & LPI2C_SCFGR2_FILTSDA_MASK)
+/*! @} */
+
+/*! @name SAMR - Slave Address Match Register */
+/*! @{ */
+#define LPI2C_SAMR_ADDR0_MASK                    (0x7FEU)
+#define LPI2C_SAMR_ADDR0_SHIFT                   (1U)
+#define LPI2C_SAMR_ADDR0(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR0_SHIFT)) & LPI2C_SAMR_ADDR0_MASK)
+#define LPI2C_SAMR_ADDR1_MASK                    (0x7FE0000U)
+#define LPI2C_SAMR_ADDR1_SHIFT                   (17U)
+#define LPI2C_SAMR_ADDR1(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR1_SHIFT)) & LPI2C_SAMR_ADDR1_MASK)
+/*! @} */
+
+/*! @name SASR - Slave Address Status Register */
+/*! @{ */
+#define LPI2C_SASR_RADDR_MASK                    (0x7FFU)
+#define LPI2C_SASR_RADDR_SHIFT                   (0U)
+#define LPI2C_SASR_RADDR(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_RADDR_SHIFT)) & LPI2C_SASR_RADDR_MASK)
+#define LPI2C_SASR_ANV_MASK                      (0x4000U)
+#define LPI2C_SASR_ANV_SHIFT                     (14U)
+/*! ANV - Address Not Valid
+ *  0b0..Received Address (RADDR) is valid
+ *  0b1..Received Address (RADDR) is not valid
+ */
+#define LPI2C_SASR_ANV(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_ANV_SHIFT)) & LPI2C_SASR_ANV_MASK)
+/*! @} */
+
+/*! @name STAR - Slave Transmit ACK Register */
+/*! @{ */
+#define LPI2C_STAR_TXNACK_MASK                   (0x1U)
+#define LPI2C_STAR_TXNACK_SHIFT                  (0U)
+/*! TXNACK - Transmit NACK
+ *  0b0..Write a Transmit ACK for each received word
+ *  0b1..Write a Transmit NACK for each received word
+ */
+#define LPI2C_STAR_TXNACK(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_STAR_TXNACK_SHIFT)) & LPI2C_STAR_TXNACK_MASK)
+/*! @} */
+
+/*! @name STDR - Slave Transmit Data Register */
+/*! @{ */
+#define LPI2C_STDR_DATA_MASK                     (0xFFU)
+#define LPI2C_STDR_DATA_SHIFT                    (0U)
+#define LPI2C_STDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_STDR_DATA_SHIFT)) & LPI2C_STDR_DATA_MASK)
+/*! @} */
+
+/*! @name SRDR - Slave Receive Data Register */
+/*! @{ */
+#define LPI2C_SRDR_DATA_MASK                     (0xFFU)
+#define LPI2C_SRDR_DATA_SHIFT                    (0U)
+#define LPI2C_SRDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_DATA_SHIFT)) & LPI2C_SRDR_DATA_MASK)
+#define LPI2C_SRDR_RXEMPTY_MASK                  (0x4000U)
+#define LPI2C_SRDR_RXEMPTY_SHIFT                 (14U)
+/*! RXEMPTY - RX Empty
+ *  0b0..The Receive Data Register is not empty
+ *  0b1..The Receive Data Register is empty
+ */
+#define LPI2C_SRDR_RXEMPTY(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_RXEMPTY_SHIFT)) & LPI2C_SRDR_RXEMPTY_MASK)
+#define LPI2C_SRDR_SOF_MASK                      (0x8000U)
+#define LPI2C_SRDR_SOF_SHIFT                     (15U)
+/*! SOF - Start Of Frame
+ *  0b0..Indicates this is not the first data word since a (repeated) START or STOP condition
+ *  0b1..Indicates this is the first data word since a (repeated) START or STOP condition
+ */
+#define LPI2C_SRDR_SOF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_SOF_SHIFT)) & LPI2C_SRDR_SOF_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPI2C_Register_Masks */
+
+
+/* LPI2C - Peripheral instance base addresses */
+/** Peripheral LPI2C0 base address */
+#define LPI2C0_BASE                              (0x4003A000u)
+/** Peripheral LPI2C0 base pointer */
+#define LPI2C0                                   ((LPI2C_Type *)LPI2C0_BASE)
+/** Peripheral LPI2C1 base address */
+#define LPI2C1_BASE                              (0x4003B000u)
+/** Peripheral LPI2C1 base pointer */
+#define LPI2C1                                   ((LPI2C_Type *)LPI2C1_BASE)
+/** Peripheral LPI2C2 base address */
+#define LPI2C2_BASE                              (0x4003C000u)
+/** Peripheral LPI2C2 base pointer */
+#define LPI2C2                                   ((LPI2C_Type *)LPI2C2_BASE)
+/** Peripheral LPI2C3 base address */
+#define LPI2C3_BASE                              (0x4102E000u)
+/** Peripheral LPI2C3 base pointer */
+#define LPI2C3                                   ((LPI2C_Type *)LPI2C3_BASE)
+/** Array initializer of LPI2C peripheral base addresses */
+#define LPI2C_BASE_ADDRS                         { LPI2C0_BASE, LPI2C1_BASE, LPI2C2_BASE, LPI2C3_BASE }
+/** Array initializer of LPI2C peripheral base pointers */
+#define LPI2C_BASE_PTRS                          { LPI2C0, LPI2C1, LPI2C2, LPI2C3 }
+/** Interrupt vectors for the LPI2C peripheral type */
+#define LPI2C_IRQS                               { LPI2C0_IRQn, LPI2C1_IRQn, LPI2C2_IRQn, LPI2C3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPI2C_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPIT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPIT_Peripheral_Access_Layer LPIT Peripheral Access Layer
+ * @{
+ */
+
+/** LPIT - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t MCR;                               /**< Module Control Register, offset: 0x8 */
+  __IO uint32_t MSR;                               /**< Module Status Register, offset: 0xC */
+  __IO uint32_t MIER;                              /**< Module Interrupt Enable Register, offset: 0x10 */
+  __IO uint32_t SETTEN;                            /**< Set Timer Enable Register, offset: 0x14 */
+  __O  uint32_t CLRTEN;                            /**< Clear Timer Enable Register, offset: 0x18 */
+       uint8_t RESERVED_0[4];
+  struct {                                         /* offset: 0x20, array step: 0x10 */
+    __IO uint32_t TVAL;                              /**< Timer Value Register, array offset: 0x20, array step: 0x10 */
+    __I  uint32_t CVAL;                              /**< Current Timer Value, array offset: 0x24, array step: 0x10 */
+    __IO uint32_t TCTRL;                             /**< Timer Control Register, array offset: 0x28, array step: 0x10 */
+         uint8_t RESERVED_0[4];
+  } CHANNEL[4];
+} LPIT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPIT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPIT_Register_Masks LPIT Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPIT_VERID_FEATURE_MASK                  (0xFFFFU)
+#define LPIT_VERID_FEATURE_SHIFT                 (0U)
+#define LPIT_VERID_FEATURE(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_FEATURE_SHIFT)) & LPIT_VERID_FEATURE_MASK)
+#define LPIT_VERID_MINOR_MASK                    (0xFF0000U)
+#define LPIT_VERID_MINOR_SHIFT                   (16U)
+#define LPIT_VERID_MINOR(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_MINOR_SHIFT)) & LPIT_VERID_MINOR_MASK)
+#define LPIT_VERID_MAJOR_MASK                    (0xFF000000U)
+#define LPIT_VERID_MAJOR_SHIFT                   (24U)
+#define LPIT_VERID_MAJOR(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_MAJOR_SHIFT)) & LPIT_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPIT_PARAM_CHANNEL_MASK                  (0xFFU)
+#define LPIT_PARAM_CHANNEL_SHIFT                 (0U)
+#define LPIT_PARAM_CHANNEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_PARAM_CHANNEL_SHIFT)) & LPIT_PARAM_CHANNEL_MASK)
+#define LPIT_PARAM_EXT_TRIG_MASK                 (0xFF00U)
+#define LPIT_PARAM_EXT_TRIG_SHIFT                (8U)
+#define LPIT_PARAM_EXT_TRIG(x)                   (((uint32_t)(((uint32_t)(x)) << LPIT_PARAM_EXT_TRIG_SHIFT)) & LPIT_PARAM_EXT_TRIG_MASK)
+/*! @} */
+
+/*! @name MCR - Module Control Register */
+/*! @{ */
+#define LPIT_MCR_M_CEN_MASK                      (0x1U)
+#define LPIT_MCR_M_CEN_SHIFT                     (0U)
+/*! M_CEN - Module Clock Enable
+ *  0b0..Disable peripheral clock to timers
+ *  0b1..Enable peripheral clock to timers
+ */
+#define LPIT_MCR_M_CEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_M_CEN_SHIFT)) & LPIT_MCR_M_CEN_MASK)
+#define LPIT_MCR_SW_RST_MASK                     (0x2U)
+#define LPIT_MCR_SW_RST_SHIFT                    (1U)
+/*! SW_RST - Software Reset Bit
+ *  0b0..Timer channels and registers are not reset
+ *  0b1..Reset timer channels and registers
+ */
+#define LPIT_MCR_SW_RST(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_SW_RST_SHIFT)) & LPIT_MCR_SW_RST_MASK)
+#define LPIT_MCR_DOZE_EN_MASK                    (0x4U)
+#define LPIT_MCR_DOZE_EN_SHIFT                   (2U)
+/*! DOZE_EN - DOZE Mode Enable Bit
+ *  0b0..Stop timer channels in DOZE mode
+ *  0b1..Allow timer channels to continue to run in DOZE mode
+ */
+#define LPIT_MCR_DOZE_EN(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_DOZE_EN_SHIFT)) & LPIT_MCR_DOZE_EN_MASK)
+#define LPIT_MCR_DBG_EN_MASK                     (0x8U)
+#define LPIT_MCR_DBG_EN_SHIFT                    (3U)
+/*! DBG_EN - Debug Enable Bit
+ *  0b0..Stop timer channels in Debug mode
+ *  0b1..Allow timer channels to continue to run in Debug mode
+ */
+#define LPIT_MCR_DBG_EN(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_DBG_EN_SHIFT)) & LPIT_MCR_DBG_EN_MASK)
+/*! @} */
+
+/*! @name MSR - Module Status Register */
+/*! @{ */
+#define LPIT_MSR_TIF0_MASK                       (0x1U)
+#define LPIT_MSR_TIF0_SHIFT                      (0U)
+/*! TIF0 - Channel 0 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF0(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF0_SHIFT)) & LPIT_MSR_TIF0_MASK)
+#define LPIT_MSR_TIF1_MASK                       (0x2U)
+#define LPIT_MSR_TIF1_SHIFT                      (1U)
+/*! TIF1 - Channel 1 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF1(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF1_SHIFT)) & LPIT_MSR_TIF1_MASK)
+#define LPIT_MSR_TIF2_MASK                       (0x4U)
+#define LPIT_MSR_TIF2_SHIFT                      (2U)
+/*! TIF2 - Channel 2 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF2(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF2_SHIFT)) & LPIT_MSR_TIF2_MASK)
+#define LPIT_MSR_TIF3_MASK                       (0x8U)
+#define LPIT_MSR_TIF3_SHIFT                      (3U)
+/*! TIF3 - Channel 3 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF3(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF3_SHIFT)) & LPIT_MSR_TIF3_MASK)
+/*! @} */
+
+/*! @name MIER - Module Interrupt Enable Register */
+/*! @{ */
+#define LPIT_MIER_TIE0_MASK                      (0x1U)
+#define LPIT_MIER_TIE0_SHIFT                     (0U)
+/*! TIE0 - Channel 0 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE0(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE0_SHIFT)) & LPIT_MIER_TIE0_MASK)
+#define LPIT_MIER_TIE1_MASK                      (0x2U)
+#define LPIT_MIER_TIE1_SHIFT                     (1U)
+/*! TIE1 - Channel 1 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE1(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE1_SHIFT)) & LPIT_MIER_TIE1_MASK)
+#define LPIT_MIER_TIE2_MASK                      (0x4U)
+#define LPIT_MIER_TIE2_SHIFT                     (2U)
+/*! TIE2 - Channel 2 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE2(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE2_SHIFT)) & LPIT_MIER_TIE2_MASK)
+#define LPIT_MIER_TIE3_MASK                      (0x8U)
+#define LPIT_MIER_TIE3_SHIFT                     (3U)
+/*! TIE3 - Channel 3 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE3(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE3_SHIFT)) & LPIT_MIER_TIE3_MASK)
+/*! @} */
+
+/*! @name SETTEN - Set Timer Enable Register */
+/*! @{ */
+#define LPIT_SETTEN_SET_T_EN_0_MASK              (0x1U)
+#define LPIT_SETTEN_SET_T_EN_0_SHIFT             (0U)
+/*! SET_T_EN_0 - Set Timer 0 Enable
+ *  0b0..No effect
+ *  0b1..Enables Timer Channel 0
+ */
+#define LPIT_SETTEN_SET_T_EN_0(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_0_SHIFT)) & LPIT_SETTEN_SET_T_EN_0_MASK)
+#define LPIT_SETTEN_SET_T_EN_1_MASK              (0x2U)
+#define LPIT_SETTEN_SET_T_EN_1_SHIFT             (1U)
+/*! SET_T_EN_1 - Set Timer 1 Enable
+ *  0b0..No Effect
+ *  0b1..Enables Timer Channel 1
+ */
+#define LPIT_SETTEN_SET_T_EN_1(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_1_SHIFT)) & LPIT_SETTEN_SET_T_EN_1_MASK)
+#define LPIT_SETTEN_SET_T_EN_2_MASK              (0x4U)
+#define LPIT_SETTEN_SET_T_EN_2_SHIFT             (2U)
+/*! SET_T_EN_2 - Set Timer 2 Enable
+ *  0b0..No Effect
+ *  0b1..Enables Timer Channel 2
+ */
+#define LPIT_SETTEN_SET_T_EN_2(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_2_SHIFT)) & LPIT_SETTEN_SET_T_EN_2_MASK)
+#define LPIT_SETTEN_SET_T_EN_3_MASK              (0x8U)
+#define LPIT_SETTEN_SET_T_EN_3_SHIFT             (3U)
+/*! SET_T_EN_3 - Set Timer 3 Enable
+ *  0b0..No effect
+ *  0b1..Enables Timer Channel 3
+ */
+#define LPIT_SETTEN_SET_T_EN_3(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_3_SHIFT)) & LPIT_SETTEN_SET_T_EN_3_MASK)
+/*! @} */
+
+/*! @name CLRTEN - Clear Timer Enable Register */
+/*! @{ */
+#define LPIT_CLRTEN_CLR_T_EN_0_MASK              (0x1U)
+#define LPIT_CLRTEN_CLR_T_EN_0_SHIFT             (0U)
+/*! CLR_T_EN_0 - Clear Timer 0 Enable
+ *  0b0..No action
+ *  0b1..Clear the Timer Enable bit (TCTRL0[T_EN]) for Timer Channel 0
+ */
+#define LPIT_CLRTEN_CLR_T_EN_0(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_0_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_0_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_1_MASK              (0x2U)
+#define LPIT_CLRTEN_CLR_T_EN_1_SHIFT             (1U)
+/*! CLR_T_EN_1 - Clear Timer 1 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL1[T_EN]) for Timer Channel 1
+ */
+#define LPIT_CLRTEN_CLR_T_EN_1(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_1_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_1_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_2_MASK              (0x4U)
+#define LPIT_CLRTEN_CLR_T_EN_2_SHIFT             (2U)
+/*! CLR_T_EN_2 - Clear Timer 2 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL2[T_EN]) for Timer Channel 2
+ */
+#define LPIT_CLRTEN_CLR_T_EN_2(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_2_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_2_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_3_MASK              (0x8U)
+#define LPIT_CLRTEN_CLR_T_EN_3_SHIFT             (3U)
+/*! CLR_T_EN_3 - Clear Timer 3 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL3[T_EN]) for Timer Channel 3
+ */
+#define LPIT_CLRTEN_CLR_T_EN_3(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_3_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_3_MASK)
+/*! @} */
+
+/*! @name TVAL - Timer Value Register */
+/*! @{ */
+#define LPIT_TVAL_TMR_VAL_MASK                   (0xFFFFFFFFU)
+#define LPIT_TVAL_TMR_VAL_SHIFT                  (0U)
+/*! TMR_VAL - Timer Value
+ *  0b00000000000000000000000000000000..Invalid load value in compare mode
+ *  0b00000000000000000000000000000001..Invalid load value in compare mode
+ *  0b00000000000000000000000000000010-0b11111111111111111111111111111111..In compare mode: the value to be loaded; in capture mode, the value of the timer
+ */
+#define LPIT_TVAL_TMR_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << LPIT_TVAL_TMR_VAL_SHIFT)) & LPIT_TVAL_TMR_VAL_MASK)
+/*! @} */
+
+/* The count of LPIT_TVAL */
+#define LPIT_TVAL_COUNT                          (4U)
+
+/*! @name CVAL - Current Timer Value */
+/*! @{ */
+#define LPIT_CVAL_TMR_CUR_VAL_MASK               (0xFFFFFFFFU)
+#define LPIT_CVAL_TMR_CUR_VAL_SHIFT              (0U)
+#define LPIT_CVAL_TMR_CUR_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << LPIT_CVAL_TMR_CUR_VAL_SHIFT)) & LPIT_CVAL_TMR_CUR_VAL_MASK)
+/*! @} */
+
+/* The count of LPIT_CVAL */
+#define LPIT_CVAL_COUNT                          (4U)
+
+/*! @name TCTRL - Timer Control Register */
+/*! @{ */
+#define LPIT_TCTRL_T_EN_MASK                     (0x1U)
+#define LPIT_TCTRL_T_EN_SHIFT                    (0U)
+/*! T_EN - Timer Enable
+ *  0b0..Timer Channel is disabled
+ *  0b1..Timer Channel is enabled
+ */
+#define LPIT_TCTRL_T_EN(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_T_EN_SHIFT)) & LPIT_TCTRL_T_EN_MASK)
+#define LPIT_TCTRL_CHAIN_MASK                    (0x2U)
+#define LPIT_TCTRL_CHAIN_SHIFT                   (1U)
+/*! CHAIN - Chain Channel
+ *  0b0..Channel Chaining is disabled. The channel timer runs independently.
+ *  0b1..Channel Chaining is enabled. The timer decrements on the previous channel's timeout.
+ */
+#define LPIT_TCTRL_CHAIN(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_CHAIN_SHIFT)) & LPIT_TCTRL_CHAIN_MASK)
+#define LPIT_TCTRL_MODE_MASK                     (0xCU)
+#define LPIT_TCTRL_MODE_SHIFT                    (2U)
+/*! MODE - Timer Operation Mode
+ *  0b00..32-bit Periodic Counter
+ *  0b01..Dual 16-bit Periodic Counter
+ *  0b10..32-bit Trigger Accumulator
+ *  0b11..32-bit Trigger Input Capture
+ */
+#define LPIT_TCTRL_MODE(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_MODE_SHIFT)) & LPIT_TCTRL_MODE_MASK)
+#define LPIT_TCTRL_TSOT_MASK                     (0x10000U)
+#define LPIT_TCTRL_TSOT_SHIFT                    (16U)
+/*! TSOT - Timer Start On Trigger
+ *  0b0..Timer starts to decrement immediately based on the restart condition (controlled by the Timer Stop On Interrupt bit (TSOI))
+ *  0b1..Timer starts to decrement when a rising edge on a selected trigger is detected
+ */
+#define LPIT_TCTRL_TSOT(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TSOT_SHIFT)) & LPIT_TCTRL_TSOT_MASK)
+#define LPIT_TCTRL_TSOI_MASK                     (0x20000U)
+#define LPIT_TCTRL_TSOI_SHIFT                    (17U)
+/*! TSOI - Timer Stop On Interrupt
+ *  0b0..The channel timer does not stop after timeout
+ *  0b1..The channel timer will stop after a timeout, and the channel timer will restart based on Timer Start On Trigger bit (TSOT). When TSOT = 0, the channel timer will restart after a rising edge on the Timer Enable bit (T_EN) is detected (which means that the timer channel is disabled and then enabled). When TSOT = 1, the channel timer will restart after a rising edge on the selected trigger is detected.
+ */
+#define LPIT_TCTRL_TSOI(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TSOI_SHIFT)) & LPIT_TCTRL_TSOI_MASK)
+#define LPIT_TCTRL_TROT_MASK                     (0x40000U)
+#define LPIT_TCTRL_TROT_SHIFT                    (18U)
+/*! TROT - Timer Reload On Trigger
+ *  0b0..Timer will not reload on the selected trigger
+ *  0b1..Timer will reload on the selected trigger
+ */
+#define LPIT_TCTRL_TROT(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TROT_SHIFT)) & LPIT_TCTRL_TROT_MASK)
+#define LPIT_TCTRL_TRG_SRC_MASK                  (0x800000U)
+#define LPIT_TCTRL_TRG_SRC_SHIFT                 (23U)
+/*! TRG_SRC - Trigger Source
+ *  0b0..Selects external triggers
+ *  0b1..Selects internal triggers
+ */
+#define LPIT_TCTRL_TRG_SRC(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TRG_SRC_SHIFT)) & LPIT_TCTRL_TRG_SRC_MASK)
+#define LPIT_TCTRL_TRG_SEL_MASK                  (0xF000000U)
+#define LPIT_TCTRL_TRG_SEL_SHIFT                 (24U)
+/*! TRG_SEL - Trigger Select
+ *  0b0000-0b0011..Timer channel 0 - 3 trigger source is selected
+ *  0b0100-0b1111..Reserved
+ */
+#define LPIT_TCTRL_TRG_SEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TRG_SEL_SHIFT)) & LPIT_TCTRL_TRG_SEL_MASK)
+/*! @} */
+
+/* The count of LPIT_TCTRL */
+#define LPIT_TCTRL_COUNT                         (4U)
+
+
+/*!
+ * @}
+ */ /* end of group LPIT_Register_Masks */
+
+
+/* LPIT - Peripheral instance base addresses */
+/** Peripheral LPIT0 base address */
+#define LPIT0_BASE                               (0x40030000u)
+/** Peripheral LPIT0 base pointer */
+#define LPIT0                                    ((LPIT_Type *)LPIT0_BASE)
+/** Peripheral LPIT1 base address */
+#define LPIT1_BASE                               (0x4102A000u)
+/** Peripheral LPIT1 base pointer */
+#define LPIT1                                    ((LPIT_Type *)LPIT1_BASE)
+/** Array initializer of LPIT peripheral base addresses */
+#define LPIT_BASE_ADDRS                          { LPIT0_BASE, LPIT1_BASE }
+/** Array initializer of LPIT peripheral base pointers */
+#define LPIT_BASE_PTRS                           { LPIT0, LPIT1 }
+/** Interrupt vectors for the LPIT peripheral type */
+#define LPIT_IRQS                                { { LPIT0_IRQn, LPIT0_IRQn, LPIT0_IRQn, LPIT0_IRQn }, { LPIT1_IRQn, LPIT1_IRQn, LPIT1_IRQn, LPIT1_IRQn } }
+
+/*!
+ * @}
+ */ /* end of group LPIT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPSPI Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPSPI_Peripheral_Access_Layer LPSPI Peripheral Access Layer
+ * @{
+ */
+
+/** LPSPI - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x14 */
+  __IO uint32_t IER;                               /**< Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t DER;                               /**< DMA Enable Register, offset: 0x1C */
+  __IO uint32_t CFGR0;                             /**< Configuration Register 0, offset: 0x20 */
+  __IO uint32_t CFGR1;                             /**< Configuration Register 1, offset: 0x24 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t DMR0;                              /**< Data Match Register 0, offset: 0x30 */
+  __IO uint32_t DMR1;                              /**< Data Match Register 1, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t CCR;                               /**< Clock Configuration Register, offset: 0x40 */
+       uint8_t RESERVED_3[20];
+  __IO uint32_t FCR;                               /**< FIFO Control Register, offset: 0x58 */
+  __I  uint32_t FSR;                               /**< FIFO Status Register, offset: 0x5C */
+  __IO uint32_t TCR;                               /**< Transmit Command Register, offset: 0x60 */
+  __O  uint32_t TDR;                               /**< Transmit Data Register, offset: 0x64 */
+       uint8_t RESERVED_4[8];
+  __I  uint32_t RSR;                               /**< Receive Status Register, offset: 0x70 */
+  __I  uint32_t RDR;                               /**< Receive Data Register, offset: 0x74 */
+} LPSPI_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPSPI Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPSPI_Register_Masks LPSPI Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPSPI_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPSPI_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Module Identification Number
+ *  0b0000000000000100..Standard feature set supporting a 32-bit shift register.
+ */
+#define LPSPI_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_FEATURE_SHIFT)) & LPSPI_VERID_FEATURE_MASK)
+#define LPSPI_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPSPI_VERID_MINOR_SHIFT                  (16U)
+#define LPSPI_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MINOR_SHIFT)) & LPSPI_VERID_MINOR_MASK)
+#define LPSPI_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPSPI_VERID_MAJOR_SHIFT                  (24U)
+#define LPSPI_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MAJOR_SHIFT)) & LPSPI_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPSPI_PARAM_TXFIFO_MASK                  (0xFFU)
+#define LPSPI_PARAM_TXFIFO_SHIFT                 (0U)
+#define LPSPI_PARAM_TXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_TXFIFO_SHIFT)) & LPSPI_PARAM_TXFIFO_MASK)
+#define LPSPI_PARAM_RXFIFO_MASK                  (0xFF00U)
+#define LPSPI_PARAM_RXFIFO_SHIFT                 (8U)
+#define LPSPI_PARAM_RXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_RXFIFO_SHIFT)) & LPSPI_PARAM_RXFIFO_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define LPSPI_CR_MEN_MASK                        (0x1U)
+#define LPSPI_CR_MEN_SHIFT                       (0U)
+/*! MEN - Module Enable
+ *  0b0..Module is disabled
+ *  0b1..Module is enabled
+ */
+#define LPSPI_CR_MEN(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_MEN_SHIFT)) & LPSPI_CR_MEN_MASK)
+#define LPSPI_CR_RST_MASK                        (0x2U)
+#define LPSPI_CR_RST_SHIFT                       (1U)
+/*! RST - Software Reset
+ *  0b0..Master logic is not reset
+ *  0b1..Master logic is reset
+ */
+#define LPSPI_CR_RST(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RST_SHIFT)) & LPSPI_CR_RST_MASK)
+#define LPSPI_CR_DOZEN_MASK                      (0x4U)
+#define LPSPI_CR_DOZEN_SHIFT                     (2U)
+/*! DOZEN - Doze mode enable
+ *  0b0..Module is enabled in Doze mode
+ *  0b1..Module is disabled in Doze mode
+ */
+#define LPSPI_CR_DOZEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DOZEN_SHIFT)) & LPSPI_CR_DOZEN_MASK)
+#define LPSPI_CR_DBGEN_MASK                      (0x8U)
+#define LPSPI_CR_DBGEN_SHIFT                     (3U)
+/*! DBGEN - Debug Enable
+ *  0b0..Module is disabled in debug mode
+ *  0b1..Module is enabled in debug mode
+ */
+#define LPSPI_CR_DBGEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DBGEN_SHIFT)) & LPSPI_CR_DBGEN_MASK)
+#define LPSPI_CR_RTF_MASK                        (0x100U)
+#define LPSPI_CR_RTF_SHIFT                       (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit FIFO is reset
+ */
+#define LPSPI_CR_RTF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RTF_SHIFT)) & LPSPI_CR_RTF_MASK)
+#define LPSPI_CR_RRF_MASK                        (0x200U)
+#define LPSPI_CR_RRF_SHIFT                       (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive FIFO is reset
+ */
+#define LPSPI_CR_RRF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RRF_SHIFT)) & LPSPI_CR_RRF_MASK)
+/*! @} */
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define LPSPI_SR_TDF_MASK                        (0x1U)
+#define LPSPI_SR_TDF_SHIFT                       (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPSPI_SR_TDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TDF_SHIFT)) & LPSPI_SR_TDF_MASK)
+#define LPSPI_SR_RDF_MASK                        (0x2U)
+#define LPSPI_SR_RDF_SHIFT                       (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive Data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPSPI_SR_RDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_RDF_SHIFT)) & LPSPI_SR_RDF_MASK)
+#define LPSPI_SR_WCF_MASK                        (0x100U)
+#define LPSPI_SR_WCF_SHIFT                       (8U)
+/*! WCF - Word Complete Flag
+ *  0b0..Transfer of a received word has not yet completed
+ *  0b1..Transfer of a received word has completed
+ */
+#define LPSPI_SR_WCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_WCF_SHIFT)) & LPSPI_SR_WCF_MASK)
+#define LPSPI_SR_FCF_MASK                        (0x200U)
+#define LPSPI_SR_FCF_SHIFT                       (9U)
+/*! FCF - Frame Complete Flag
+ *  0b0..Frame transfer has not completed
+ *  0b1..Frame transfer has completed
+ */
+#define LPSPI_SR_FCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_FCF_SHIFT)) & LPSPI_SR_FCF_MASK)
+#define LPSPI_SR_TCF_MASK                        (0x400U)
+#define LPSPI_SR_TCF_SHIFT                       (10U)
+/*! TCF - Transfer Complete Flag
+ *  0b0..All transfers have not completed
+ *  0b1..All transfers have completed
+ */
+#define LPSPI_SR_TCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TCF_SHIFT)) & LPSPI_SR_TCF_MASK)
+#define LPSPI_SR_TEF_MASK                        (0x800U)
+#define LPSPI_SR_TEF_SHIFT                       (11U)
+/*! TEF - Transmit Error Flag
+ *  0b0..Transmit FIFO underrun has not occurred
+ *  0b1..Transmit FIFO underrun has occurred
+ */
+#define LPSPI_SR_TEF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TEF_SHIFT)) & LPSPI_SR_TEF_MASK)
+#define LPSPI_SR_REF_MASK                        (0x1000U)
+#define LPSPI_SR_REF_SHIFT                       (12U)
+/*! REF - Receive Error Flag
+ *  0b0..Receive FIFO has not overflowed
+ *  0b1..Receive FIFO has overflowed
+ */
+#define LPSPI_SR_REF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_REF_SHIFT)) & LPSPI_SR_REF_MASK)
+#define LPSPI_SR_DMF_MASK                        (0x2000U)
+#define LPSPI_SR_DMF_SHIFT                       (13U)
+/*! DMF - Data Match Flag
+ *  0b0..Have not received matching data
+ *  0b1..Have received matching data
+ */
+#define LPSPI_SR_DMF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_DMF_SHIFT)) & LPSPI_SR_DMF_MASK)
+#define LPSPI_SR_MBF_MASK                        (0x1000000U)
+#define LPSPI_SR_MBF_SHIFT                       (24U)
+/*! MBF - Module Busy Flag
+ *  0b0..LPSPI is idle
+ *  0b1..LPSPI is busy
+ */
+#define LPSPI_SR_MBF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_MBF_SHIFT)) & LPSPI_SR_MBF_MASK)
+/*! @} */
+
+/*! @name IER - Interrupt Enable Register */
+/*! @{ */
+#define LPSPI_IER_TDIE_MASK                      (0x1U)
+#define LPSPI_IER_TDIE_SHIFT                     (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TDIE_SHIFT)) & LPSPI_IER_TDIE_MASK)
+#define LPSPI_IER_RDIE_MASK                      (0x2U)
+#define LPSPI_IER_RDIE_SHIFT                     (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_RDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_RDIE_SHIFT)) & LPSPI_IER_RDIE_MASK)
+#define LPSPI_IER_WCIE_MASK                      (0x100U)
+#define LPSPI_IER_WCIE_SHIFT                     (8U)
+/*! WCIE - Word Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_WCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_WCIE_SHIFT)) & LPSPI_IER_WCIE_MASK)
+#define LPSPI_IER_FCIE_MASK                      (0x200U)
+#define LPSPI_IER_FCIE_SHIFT                     (9U)
+/*! FCIE - Frame Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_FCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_FCIE_SHIFT)) & LPSPI_IER_FCIE_MASK)
+#define LPSPI_IER_TCIE_MASK                      (0x400U)
+#define LPSPI_IER_TCIE_SHIFT                     (10U)
+/*! TCIE - Transfer Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TCIE_SHIFT)) & LPSPI_IER_TCIE_MASK)
+#define LPSPI_IER_TEIE_MASK                      (0x800U)
+#define LPSPI_IER_TEIE_SHIFT                     (11U)
+/*! TEIE - Transmit Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TEIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TEIE_SHIFT)) & LPSPI_IER_TEIE_MASK)
+#define LPSPI_IER_REIE_MASK                      (0x1000U)
+#define LPSPI_IER_REIE_SHIFT                     (12U)
+/*! REIE - Receive Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_REIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_REIE_SHIFT)) & LPSPI_IER_REIE_MASK)
+#define LPSPI_IER_DMIE_MASK                      (0x2000U)
+#define LPSPI_IER_DMIE_SHIFT                     (13U)
+/*! DMIE - Data Match Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_DMIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_DMIE_SHIFT)) & LPSPI_IER_DMIE_MASK)
+/*! @} */
+
+/*! @name DER - DMA Enable Register */
+/*! @{ */
+#define LPSPI_DER_TDDE_MASK                      (0x1U)
+#define LPSPI_DER_TDDE_SHIFT                     (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPSPI_DER_TDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_TDDE_SHIFT)) & LPSPI_DER_TDDE_MASK)
+#define LPSPI_DER_RDDE_MASK                      (0x2U)
+#define LPSPI_DER_RDDE_SHIFT                     (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPSPI_DER_RDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_RDDE_SHIFT)) & LPSPI_DER_RDDE_MASK)
+/*! @} */
+
+/*! @name CFGR0 - Configuration Register 0 */
+/*! @{ */
+#define LPSPI_CFGR0_HREN_MASK                    (0x1U)
+#define LPSPI_CFGR0_HREN_SHIFT                   (0U)
+/*! HREN - Host Request Enable
+ *  0b0..Host request is disabled
+ *  0b1..Host request is enabled
+ */
+#define LPSPI_CFGR0_HREN(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HREN_SHIFT)) & LPSPI_CFGR0_HREN_MASK)
+#define LPSPI_CFGR0_HRPOL_MASK                   (0x2U)
+#define LPSPI_CFGR0_HRPOL_SHIFT                  (1U)
+/*! HRPOL - Host Request Polarity
+ *  0b0..Active low
+ *  0b1..Active high
+ */
+#define LPSPI_CFGR0_HRPOL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRPOL_SHIFT)) & LPSPI_CFGR0_HRPOL_MASK)
+#define LPSPI_CFGR0_HRSEL_MASK                   (0x4U)
+#define LPSPI_CFGR0_HRSEL_SHIFT                  (2U)
+/*! HRSEL - Host Request Select
+ *  0b0..Host request input is the LPSPI_HREQ pin
+ *  0b1..Host request input is the input trigger
+ */
+#define LPSPI_CFGR0_HRSEL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRSEL_SHIFT)) & LPSPI_CFGR0_HRSEL_MASK)
+#define LPSPI_CFGR0_CIRFIFO_MASK                 (0x100U)
+#define LPSPI_CFGR0_CIRFIFO_SHIFT                (8U)
+/*! CIRFIFO - Circular FIFO Enable
+ *  0b0..Circular FIFO is disabled
+ *  0b1..Circular FIFO is enabled
+ */
+#define LPSPI_CFGR0_CIRFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_CIRFIFO_SHIFT)) & LPSPI_CFGR0_CIRFIFO_MASK)
+#define LPSPI_CFGR0_RDMO_MASK                    (0x200U)
+#define LPSPI_CFGR0_RDMO_SHIFT                   (9U)
+/*! RDMO - Receive Data Match Only
+ *  0b0..Received data is stored in the receive FIFO as in normal operations
+ *  0b1..Received data is discarded unless the Data Match Flag (DMF) is set
+ */
+#define LPSPI_CFGR0_RDMO(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_RDMO_SHIFT)) & LPSPI_CFGR0_RDMO_MASK)
+/*! @} */
+
+/*! @name CFGR1 - Configuration Register 1 */
+/*! @{ */
+#define LPSPI_CFGR1_MASTER_MASK                  (0x1U)
+#define LPSPI_CFGR1_MASTER_SHIFT                 (0U)
+/*! MASTER - Master Mode
+ *  0b0..Slave mode
+ *  0b1..Master mode
+ */
+#define LPSPI_CFGR1_MASTER(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MASTER_SHIFT)) & LPSPI_CFGR1_MASTER_MASK)
+#define LPSPI_CFGR1_SAMPLE_MASK                  (0x2U)
+#define LPSPI_CFGR1_SAMPLE_SHIFT                 (1U)
+/*! SAMPLE - Sample Point
+ *  0b0..Input data is sampled on SCK edge
+ *  0b1..Input data is sampled on delayed SCK edge
+ */
+#define LPSPI_CFGR1_SAMPLE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_SAMPLE_SHIFT)) & LPSPI_CFGR1_SAMPLE_MASK)
+#define LPSPI_CFGR1_AUTOPCS_MASK                 (0x4U)
+#define LPSPI_CFGR1_AUTOPCS_SHIFT                (2U)
+/*! AUTOPCS - Automatic PCS
+ *  0b0..Automatic PCS generation is disabled
+ *  0b1..Automatic PCS generation is enabled
+ */
+#define LPSPI_CFGR1_AUTOPCS(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_AUTOPCS_SHIFT)) & LPSPI_CFGR1_AUTOPCS_MASK)
+#define LPSPI_CFGR1_NOSTALL_MASK                 (0x8U)
+#define LPSPI_CFGR1_NOSTALL_SHIFT                (3U)
+/*! NOSTALL - No Stall
+ *  0b0..Transfers will stall when the transmit FIFO is empty or the receive FIFO is full
+ *  0b1..Transfers will not stall, allowing transmit FIFO underruns or receive FIFO overruns to occur
+ */
+#define LPSPI_CFGR1_NOSTALL(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_NOSTALL_SHIFT)) & LPSPI_CFGR1_NOSTALL_MASK)
+#define LPSPI_CFGR1_PCSPOL_MASK                  (0xF00U)
+#define LPSPI_CFGR1_PCSPOL_SHIFT                 (8U)
+/*! PCSPOL - Peripheral Chip Select Polarity
+ *  0b0000..The Peripheral Chip Select pin PCSx is active low
+ *  0b0001..The Peripheral Chip Select pin PCSx is active high
+ */
+#define LPSPI_CFGR1_PCSPOL(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSPOL_SHIFT)) & LPSPI_CFGR1_PCSPOL_MASK)
+#define LPSPI_CFGR1_MATCFG_MASK                  (0x70000U)
+#define LPSPI_CFGR1_MATCFG_SHIFT                 (16U)
+/*! MATCFG - Match Configuration
+ *  0b000..Match is disabled
+ *  0b001..Reserved
+ *  0b010..010b - Match is enabled, if 1st data word equals MATCH0 OR MATCH1, i.e., (1st data word = MATCH0 + MATCH1)
+ *  0b011..011b - Match is enabled, if any data word equals MATCH0 OR MATCH1, i.e., (any data word = MATCH0 + MATCH1)
+ *  0b100..100b - Match is enabled, if 1st data word equals MATCH0 AND 2nd data word equals MATCH1, i.e., [(1st data word = MATCH0) * (2nd data word = MATCH1)]
+ *  0b101..101b - Match is enabled, if any data word equals MATCH0 AND the next data word equals MATCH1, i.e., [(any data word = MATCH0) * (next data word = MATCH1)]
+ *  0b110..110b - Match is enabled, if (1st data word AND MATCH1) equals (MATCH0 AND MATCH1), i.e., [(1st data word * MATCH1) = (MATCH0 * MATCH1)]
+ *  0b111..111b - Match is enabled, if (any data word AND MATCH1) equals (MATCH0 AND MATCH1), i.e., [(any data word * MATCH1) = (MATCH0 * MATCH1)]
+ */
+#define LPSPI_CFGR1_MATCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MATCFG_SHIFT)) & LPSPI_CFGR1_MATCFG_MASK)
+#define LPSPI_CFGR1_PINCFG_MASK                  (0x3000000U)
+#define LPSPI_CFGR1_PINCFG_SHIFT                 (24U)
+/*! PINCFG - Pin Configuration
+ *  0b00..SIN is used for input data and SOUT is used for output data
+ *  0b01..SIN is used for both input and output data
+ *  0b10..SOUT is used for both input and output data
+ *  0b11..SOUT is used for input data and SIN is used for output data
+ */
+#define LPSPI_CFGR1_PINCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PINCFG_SHIFT)) & LPSPI_CFGR1_PINCFG_MASK)
+#define LPSPI_CFGR1_OUTCFG_MASK                  (0x4000000U)
+#define LPSPI_CFGR1_OUTCFG_SHIFT                 (26U)
+/*! OUTCFG - Output Config
+ *  0b0..Output data retains last value when chip select is negated
+ *  0b1..Output data is tristated when chip select is negated
+ */
+#define LPSPI_CFGR1_OUTCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_OUTCFG_SHIFT)) & LPSPI_CFGR1_OUTCFG_MASK)
+#define LPSPI_CFGR1_PCSCFG_MASK                  (0x8000000U)
+#define LPSPI_CFGR1_PCSCFG_SHIFT                 (27U)
+/*! PCSCFG - Peripheral Chip Select Configuration
+ *  0b0..PCS[3:2] are enabled
+ *  0b1..PCS[3:2] are disabled
+ */
+#define LPSPI_CFGR1_PCSCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSCFG_SHIFT)) & LPSPI_CFGR1_PCSCFG_MASK)
+/*! @} */
+
+/*! @name DMR0 - Data Match Register 0 */
+/*! @{ */
+#define LPSPI_DMR0_MATCH0_MASK                   (0xFFFFFFFFU)
+#define LPSPI_DMR0_MATCH0_SHIFT                  (0U)
+#define LPSPI_DMR0_MATCH0(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR0_MATCH0_SHIFT)) & LPSPI_DMR0_MATCH0_MASK)
+/*! @} */
+
+/*! @name DMR1 - Data Match Register 1 */
+/*! @{ */
+#define LPSPI_DMR1_MATCH1_MASK                   (0xFFFFFFFFU)
+#define LPSPI_DMR1_MATCH1_SHIFT                  (0U)
+#define LPSPI_DMR1_MATCH1(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR1_MATCH1_SHIFT)) & LPSPI_DMR1_MATCH1_MASK)
+/*! @} */
+
+/*! @name CCR - Clock Configuration Register */
+/*! @{ */
+#define LPSPI_CCR_SCKDIV_MASK                    (0xFFU)
+#define LPSPI_CCR_SCKDIV_SHIFT                   (0U)
+#define LPSPI_CCR_SCKDIV(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKDIV_SHIFT)) & LPSPI_CCR_SCKDIV_MASK)
+#define LPSPI_CCR_DBT_MASK                       (0xFF00U)
+#define LPSPI_CCR_DBT_SHIFT                      (8U)
+#define LPSPI_CCR_DBT(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_DBT_SHIFT)) & LPSPI_CCR_DBT_MASK)
+#define LPSPI_CCR_PCSSCK_MASK                    (0xFF0000U)
+#define LPSPI_CCR_PCSSCK_SHIFT                   (16U)
+#define LPSPI_CCR_PCSSCK(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_PCSSCK_SHIFT)) & LPSPI_CCR_PCSSCK_MASK)
+#define LPSPI_CCR_SCKPCS_MASK                    (0xFF000000U)
+#define LPSPI_CCR_SCKPCS_SHIFT                   (24U)
+#define LPSPI_CCR_SCKPCS(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKPCS_SHIFT)) & LPSPI_CCR_SCKPCS_MASK)
+/*! @} */
+
+/*! @name FCR - FIFO Control Register */
+/*! @{ */
+#define LPSPI_FCR_TXWATER_MASK                   (0x3U)
+#define LPSPI_FCR_TXWATER_SHIFT                  (0U)
+#define LPSPI_FCR_TXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_TXWATER_SHIFT)) & LPSPI_FCR_TXWATER_MASK)
+#define LPSPI_FCR_RXWATER_MASK                   (0x30000U)
+#define LPSPI_FCR_RXWATER_SHIFT                  (16U)
+#define LPSPI_FCR_RXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_RXWATER_SHIFT)) & LPSPI_FCR_RXWATER_MASK)
+/*! @} */
+
+/*! @name FSR - FIFO Status Register */
+/*! @{ */
+#define LPSPI_FSR_TXCOUNT_MASK                   (0x7U)
+#define LPSPI_FSR_TXCOUNT_SHIFT                  (0U)
+#define LPSPI_FSR_TXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_TXCOUNT_SHIFT)) & LPSPI_FSR_TXCOUNT_MASK)
+#define LPSPI_FSR_RXCOUNT_MASK                   (0x70000U)
+#define LPSPI_FSR_RXCOUNT_SHIFT                  (16U)
+#define LPSPI_FSR_RXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_RXCOUNT_SHIFT)) & LPSPI_FSR_RXCOUNT_MASK)
+/*! @} */
+
+/*! @name TCR - Transmit Command Register */
+/*! @{ */
+#define LPSPI_TCR_FRAMESZ_MASK                   (0xFFFU)
+#define LPSPI_TCR_FRAMESZ_SHIFT                  (0U)
+#define LPSPI_TCR_FRAMESZ(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_FRAMESZ_SHIFT)) & LPSPI_TCR_FRAMESZ_MASK)
+#define LPSPI_TCR_WIDTH_MASK                     (0x30000U)
+#define LPSPI_TCR_WIDTH_SHIFT                    (16U)
+/*! WIDTH - Transfer Width
+ *  0b00..1 bit transfer
+ *  0b01..2 bit transfer
+ *  0b10..4 bit transfer
+ *  0b11..Reserved
+ */
+#define LPSPI_TCR_WIDTH(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_WIDTH_SHIFT)) & LPSPI_TCR_WIDTH_MASK)
+#define LPSPI_TCR_TXMSK_MASK                     (0x40000U)
+#define LPSPI_TCR_TXMSK_SHIFT                    (18U)
+/*! TXMSK - Transmit Data Mask
+ *  0b0..Normal transfer
+ *  0b1..Mask transmit data
+ */
+#define LPSPI_TCR_TXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_TXMSK_SHIFT)) & LPSPI_TCR_TXMSK_MASK)
+#define LPSPI_TCR_RXMSK_MASK                     (0x80000U)
+#define LPSPI_TCR_RXMSK_SHIFT                    (19U)
+/*! RXMSK - Receive Data Mask
+ *  0b0..Normal transfer
+ *  0b1..Receive data is masked
+ */
+#define LPSPI_TCR_RXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_RXMSK_SHIFT)) & LPSPI_TCR_RXMSK_MASK)
+#define LPSPI_TCR_CONTC_MASK                     (0x100000U)
+#define LPSPI_TCR_CONTC_SHIFT                    (20U)
+/*! CONTC - Continuing Command
+ *  0b0..Command word for start of new transfer
+ *  0b1..Command word for continuing transfer
+ */
+#define LPSPI_TCR_CONTC(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONTC_SHIFT)) & LPSPI_TCR_CONTC_MASK)
+#define LPSPI_TCR_CONT_MASK                      (0x200000U)
+#define LPSPI_TCR_CONT_SHIFT                     (21U)
+/*! CONT - Continuous Transfer
+ *  0b0..Continuous transfer is disabled
+ *  0b1..Continuous transfer is enabled
+ */
+#define LPSPI_TCR_CONT(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONT_SHIFT)) & LPSPI_TCR_CONT_MASK)
+#define LPSPI_TCR_BYSW_MASK                      (0x400000U)
+#define LPSPI_TCR_BYSW_SHIFT                     (22U)
+/*! BYSW - Byte Swap
+ *  0b0..Byte swap is disabled
+ *  0b1..Byte swap is enabled
+ */
+#define LPSPI_TCR_BYSW(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_BYSW_SHIFT)) & LPSPI_TCR_BYSW_MASK)
+#define LPSPI_TCR_LSBF_MASK                      (0x800000U)
+#define LPSPI_TCR_LSBF_SHIFT                     (23U)
+/*! LSBF - LSB First
+ *  0b0..Data is transferred MSB first
+ *  0b1..Data is transferred LSB first
+ */
+#define LPSPI_TCR_LSBF(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_LSBF_SHIFT)) & LPSPI_TCR_LSBF_MASK)
+#define LPSPI_TCR_PCS_MASK                       (0x3000000U)
+#define LPSPI_TCR_PCS_SHIFT                      (24U)
+/*! PCS - Peripheral Chip Select
+ *  0b00..Transfer using LPSPI_PCS[0]
+ *  0b01..Transfer using LPSPI_PCS[1]
+ *  0b10..Transfer using LPSPI_PCS[2]
+ *  0b11..Transfer using LPSPI_PCS[3]
+ */
+#define LPSPI_TCR_PCS(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PCS_SHIFT)) & LPSPI_TCR_PCS_MASK)
+#define LPSPI_TCR_PRESCALE_MASK                  (0x38000000U)
+#define LPSPI_TCR_PRESCALE_SHIFT                 (27U)
+/*! PRESCALE - Prescaler Value
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define LPSPI_TCR_PRESCALE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PRESCALE_SHIFT)) & LPSPI_TCR_PRESCALE_MASK)
+#define LPSPI_TCR_CPHA_MASK                      (0x40000000U)
+#define LPSPI_TCR_CPHA_SHIFT                     (30U)
+/*! CPHA - Clock Phase
+ *  0b0..Data is captured on the leading edge of SCK and changed on the following edge of SCK
+ *  0b1..Data is changed on the leading edge of SCK and captured on the following edge of SCK
+ */
+#define LPSPI_TCR_CPHA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPHA_SHIFT)) & LPSPI_TCR_CPHA_MASK)
+#define LPSPI_TCR_CPOL_MASK                      (0x80000000U)
+#define LPSPI_TCR_CPOL_SHIFT                     (31U)
+/*! CPOL - Clock Polarity
+ *  0b0..The inactive state value of SCK is low
+ *  0b1..The inactive state value of SCK is high
+ */
+#define LPSPI_TCR_CPOL(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPOL_SHIFT)) & LPSPI_TCR_CPOL_MASK)
+/*! @} */
+
+/*! @name TDR - Transmit Data Register */
+/*! @{ */
+#define LPSPI_TDR_DATA_MASK                      (0xFFFFFFFFU)
+#define LPSPI_TDR_DATA_SHIFT                     (0U)
+#define LPSPI_TDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TDR_DATA_SHIFT)) & LPSPI_TDR_DATA_MASK)
+/*! @} */
+
+/*! @name RSR - Receive Status Register */
+/*! @{ */
+#define LPSPI_RSR_SOF_MASK                       (0x1U)
+#define LPSPI_RSR_SOF_SHIFT                      (0U)
+/*! SOF - Start Of Frame
+ *  0b0..Subsequent data word received after LPSPI_PCS assertion
+ *  0b1..First data word received after LPSPI_PCS assertion
+ */
+#define LPSPI_RSR_SOF(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_SOF_SHIFT)) & LPSPI_RSR_SOF_MASK)
+#define LPSPI_RSR_RXEMPTY_MASK                   (0x2U)
+#define LPSPI_RSR_RXEMPTY_SHIFT                  (1U)
+/*! RXEMPTY - RX FIFO Empty
+ *  0b0..RX FIFO is not empty
+ *  0b1..RX FIFO is empty
+ */
+#define LPSPI_RSR_RXEMPTY(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_RXEMPTY_SHIFT)) & LPSPI_RSR_RXEMPTY_MASK)
+/*! @} */
+
+/*! @name RDR - Receive Data Register */
+/*! @{ */
+#define LPSPI_RDR_DATA_MASK                      (0xFFFFFFFFU)
+#define LPSPI_RDR_DATA_SHIFT                     (0U)
+#define LPSPI_RDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_RDR_DATA_SHIFT)) & LPSPI_RDR_DATA_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPSPI_Register_Masks */
+
+
+/* LPSPI - Peripheral instance base addresses */
+/** Peripheral LPSPI0 base address */
+#define LPSPI0_BASE                              (0x4003F000u)
+/** Peripheral LPSPI0 base pointer */
+#define LPSPI0                                   ((LPSPI_Type *)LPSPI0_BASE)
+/** Peripheral LPSPI1 base address */
+#define LPSPI1_BASE                              (0x40040000u)
+/** Peripheral LPSPI1 base pointer */
+#define LPSPI1                                   ((LPSPI_Type *)LPSPI1_BASE)
+/** Peripheral LPSPI2 base address */
+#define LPSPI2_BASE                              (0x40041000u)
+/** Peripheral LPSPI2 base pointer */
+#define LPSPI2                                   ((LPSPI_Type *)LPSPI2_BASE)
+/** Peripheral LPSPI3 base address */
+#define LPSPI3_BASE                              (0x41035000u)
+/** Peripheral LPSPI3 base pointer */
+#define LPSPI3                                   ((LPSPI_Type *)LPSPI3_BASE)
+/** Array initializer of LPSPI peripheral base addresses */
+#define LPSPI_BASE_ADDRS                         { LPSPI0_BASE, LPSPI1_BASE, LPSPI2_BASE, LPSPI3_BASE }
+/** Array initializer of LPSPI peripheral base pointers */
+#define LPSPI_BASE_PTRS                          { LPSPI0, LPSPI1, LPSPI2, LPSPI3 }
+/** Interrupt vectors for the LPSPI peripheral type */
+#define LPSPI_IRQS                               { LPSPI0_IRQn, LPSPI1_IRQn, LPSPI2_IRQn, LPSPI3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPSPI_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPTMR Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPTMR_Peripheral_Access_Layer LPTMR Peripheral Access Layer
+ * @{
+ */
+
+/** LPTMR - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CSR;                               /**< Low Power Timer Control Status Register, offset: 0x0 */
+  __IO uint32_t PSR;                               /**< Low Power Timer Prescale Register, offset: 0x4 */
+  __IO uint32_t CMR;                               /**< Low Power Timer Compare Register, offset: 0x8 */
+  __IO uint32_t CNR;                               /**< Low Power Timer Counter Register, offset: 0xC */
+} LPTMR_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPTMR Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPTMR_Register_Masks LPTMR Register Masks
+ * @{
+ */
+
+/*! @name CSR - Low Power Timer Control Status Register */
+/*! @{ */
+#define LPTMR_CSR_TEN_MASK                       (0x1U)
+#define LPTMR_CSR_TEN_SHIFT                      (0U)
+/*! TEN - Timer Enable
+ *  0b0..LPTMR is disabled and internal logic is reset.
+ *  0b1..LPTMR is enabled.
+ */
+#define LPTMR_CSR_TEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TEN_SHIFT)) & LPTMR_CSR_TEN_MASK)
+#define LPTMR_CSR_TMS_MASK                       (0x2U)
+#define LPTMR_CSR_TMS_SHIFT                      (1U)
+/*! TMS - Timer Mode Select
+ *  0b0..Time Counter mode.
+ *  0b1..Pulse Counter mode.
+ */
+#define LPTMR_CSR_TMS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TMS_SHIFT)) & LPTMR_CSR_TMS_MASK)
+#define LPTMR_CSR_TFC_MASK                       (0x4U)
+#define LPTMR_CSR_TFC_SHIFT                      (2U)
+/*! TFC - Timer Free-Running Counter
+ *  0b0..CNR is reset whenever TCF is set.
+ *  0b1..CNR is reset on overflow.
+ */
+#define LPTMR_CSR_TFC(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TFC_SHIFT)) & LPTMR_CSR_TFC_MASK)
+#define LPTMR_CSR_TPP_MASK                       (0x8U)
+#define LPTMR_CSR_TPP_SHIFT                      (3U)
+/*! TPP - Timer Pin Polarity
+ *  0b0..Pulse Counter input source is active-high, and the CNR will increment on the rising-edge.
+ *  0b1..Pulse Counter input source is active-low, and the CNR will increment on the falling-edge.
+ */
+#define LPTMR_CSR_TPP(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPP_SHIFT)) & LPTMR_CSR_TPP_MASK)
+#define LPTMR_CSR_TPS_MASK                       (0x30U)
+#define LPTMR_CSR_TPS_SHIFT                      (4U)
+/*! TPS - Timer Pin Select
+ *  0b00..Pulse counter input 0 is selected.
+ *  0b01..Pulse counter input 1 is selected.
+ *  0b10..Pulse counter input 2 is selected.
+ *  0b11..Pulse counter input 3 is selected.
+ */
+#define LPTMR_CSR_TPS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPS_SHIFT)) & LPTMR_CSR_TPS_MASK)
+#define LPTMR_CSR_TIE_MASK                       (0x40U)
+#define LPTMR_CSR_TIE_SHIFT                      (6U)
+/*! TIE - Timer Interrupt Enable
+ *  0b0..Timer interrupt disabled.
+ *  0b1..Timer interrupt enabled.
+ */
+#define LPTMR_CSR_TIE(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TIE_SHIFT)) & LPTMR_CSR_TIE_MASK)
+#define LPTMR_CSR_TCF_MASK                       (0x80U)
+#define LPTMR_CSR_TCF_SHIFT                      (7U)
+/*! TCF - Timer Compare Flag
+ *  0b0..The value of CNR is not equal to CMR and increments.
+ *  0b1..The value of CNR is equal to CMR and increments.
+ */
+#define LPTMR_CSR_TCF(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TCF_SHIFT)) & LPTMR_CSR_TCF_MASK)
+#define LPTMR_CSR_TDRE_MASK                      (0x100U)
+#define LPTMR_CSR_TDRE_SHIFT                     (8U)
+/*! TDRE - Timer DMA Request Enable
+ *  0b0..Timer DMA Request disabled.
+ *  0b1..Timer DMA Request enabled.
+ */
+#define LPTMR_CSR_TDRE(x)                        (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TDRE_SHIFT)) & LPTMR_CSR_TDRE_MASK)
+/*! @} */
+
+/*! @name PSR - Low Power Timer Prescale Register */
+/*! @{ */
+#define LPTMR_PSR_PCS_MASK                       (0x3U)
+#define LPTMR_PSR_PCS_SHIFT                      (0U)
+/*! PCS - Prescaler Clock Select
+ *  0b00..Prescaler/glitch filter clock 0 selected.
+ *  0b01..Prescaler/glitch filter clock 1 selected.
+ *  0b10..Prescaler/glitch filter clock 2 selected.
+ *  0b11..Prescaler/glitch filter clock 3 selected.
+ */
+#define LPTMR_PSR_PCS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PCS_SHIFT)) & LPTMR_PSR_PCS_MASK)
+#define LPTMR_PSR_PBYP_MASK                      (0x4U)
+#define LPTMR_PSR_PBYP_SHIFT                     (2U)
+/*! PBYP - Prescaler Bypass
+ *  0b0..Prescaler/glitch filter is enabled.
+ *  0b1..Prescaler/glitch filter is bypassed.
+ */
+#define LPTMR_PSR_PBYP(x)                        (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PBYP_SHIFT)) & LPTMR_PSR_PBYP_MASK)
+#define LPTMR_PSR_PRESCALE_MASK                  (0x78U)
+#define LPTMR_PSR_PRESCALE_SHIFT                 (3U)
+/*! PRESCALE - Prescale Value
+ *  0b0000..Prescaler divides the prescaler clock by 2; glitch filter does not support this configuration.
+ *  0b0001..Prescaler divides the prescaler clock by 4; glitch filter recognizes change on input pin after 2 rising clock edges.
+ *  0b0010..Prescaler divides the prescaler clock by 8; glitch filter recognizes change on input pin after 4 rising clock edges.
+ *  0b0011..Prescaler divides the prescaler clock by 16; glitch filter recognizes change on input pin after 8 rising clock edges.
+ *  0b0100..Prescaler divides the prescaler clock by 32; glitch filter recognizes change on input pin after 16 rising clock edges.
+ *  0b0101..Prescaler divides the prescaler clock by 64; glitch filter recognizes change on input pin after 32 rising clock edges.
+ *  0b0110..Prescaler divides the prescaler clock by 128; glitch filter recognizes change on input pin after 64 rising clock edges.
+ *  0b0111..Prescaler divides the prescaler clock by 256; glitch filter recognizes change on input pin after 128 rising clock edges.
+ *  0b1000..Prescaler divides the prescaler clock by 512; glitch filter recognizes change on input pin after 256 rising clock edges.
+ *  0b1001..Prescaler divides the prescaler clock by 1024; glitch filter recognizes change on input pin after 512 rising clock edges.
+ *  0b1010..Prescaler divides the prescaler clock by 2048; glitch filter recognizes change on input pin after 1024 rising clock edges.
+ *  0b1011..Prescaler divides the prescaler clock by 4096; glitch filter recognizes change on input pin after 2048 rising clock edges.
+ *  0b1100..Prescaler divides the prescaler clock by 8192; glitch filter recognizes change on input pin after 4096 rising clock edges.
+ *  0b1101..Prescaler divides the prescaler clock by 16,384; glitch filter recognizes change on input pin after 8192 rising clock edges.
+ *  0b1110..Prescaler divides the prescaler clock by 32,768; glitch filter recognizes change on input pin after 16,384 rising clock edges.
+ *  0b1111..Prescaler divides the prescaler clock by 65,536; glitch filter recognizes change on input pin after 32,768 rising clock edges.
+ */
+#define LPTMR_PSR_PRESCALE(x)                    (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PRESCALE_SHIFT)) & LPTMR_PSR_PRESCALE_MASK)
+/*! @} */
+
+/*! @name CMR - Low Power Timer Compare Register */
+/*! @{ */
+#define LPTMR_CMR_COMPARE_MASK                   (0xFFFFFFFFU)
+#define LPTMR_CMR_COMPARE_SHIFT                  (0U)
+#define LPTMR_CMR_COMPARE(x)                     (((uint32_t)(((uint32_t)(x)) << LPTMR_CMR_COMPARE_SHIFT)) & LPTMR_CMR_COMPARE_MASK)
+/*! @} */
+
+/*! @name CNR - Low Power Timer Counter Register */
+/*! @{ */
+#define LPTMR_CNR_COUNTER_MASK                   (0xFFFFFFFFU)
+#define LPTMR_CNR_COUNTER_SHIFT                  (0U)
+#define LPTMR_CNR_COUNTER(x)                     (((uint32_t)(((uint32_t)(x)) << LPTMR_CNR_COUNTER_SHIFT)) & LPTMR_CNR_COUNTER_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPTMR_Register_Masks */
+
+
+/* LPTMR - Peripheral instance base addresses */
+/** Peripheral LPTMR0 base address */
+#define LPTMR0_BASE                              (0x40032000u)
+/** Peripheral LPTMR0 base pointer */
+#define LPTMR0                                   ((LPTMR_Type *)LPTMR0_BASE)
+/** Peripheral LPTMR1 base address */
+#define LPTMR1_BASE                              (0x40033000u)
+/** Peripheral LPTMR1 base pointer */
+#define LPTMR1                                   ((LPTMR_Type *)LPTMR1_BASE)
+/** Peripheral LPTMR2 base address */
+#define LPTMR2_BASE                              (0x4102B000u)
+/** Peripheral LPTMR2 base pointer */
+#define LPTMR2                                   ((LPTMR_Type *)LPTMR2_BASE)
+/** Array initializer of LPTMR peripheral base addresses */
+#define LPTMR_BASE_ADDRS                         { LPTMR0_BASE, LPTMR1_BASE, LPTMR2_BASE }
+/** Array initializer of LPTMR peripheral base pointers */
+#define LPTMR_BASE_PTRS                          { LPTMR0, LPTMR1, LPTMR2 }
+/** Interrupt vectors for the LPTMR peripheral type */
+#define LPTMR_IRQS                               { LPTMR0_IRQn, LPTMR1_IRQn, LPTMR2_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPTMR_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPUART Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPUART_Peripheral_Access_Layer LPUART Peripheral Access Layer
+ * @{
+ */
+
+/** LPUART - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t GLOBAL;                            /**< LPUART Global Register, offset: 0x8 */
+  __IO uint32_t PINCFG;                            /**< LPUART Pin Configuration Register, offset: 0xC */
+  __IO uint32_t BAUD;                              /**< LPUART Baud Rate Register, offset: 0x10 */
+  __IO uint32_t STAT;                              /**< LPUART Status Register, offset: 0x14 */
+  __IO uint32_t CTRL;                              /**< LPUART Control Register, offset: 0x18 */
+  __IO uint32_t DATA;                              /**< LPUART Data Register, offset: 0x1C */
+  __IO uint32_t MATCH;                             /**< LPUART Match Address Register, offset: 0x20 */
+  __IO uint32_t MODIR;                             /**< LPUART Modem IrDA Register, offset: 0x24 */
+  __IO uint32_t FIFO;                              /**< LPUART FIFO Register, offset: 0x28 */
+  __IO uint32_t WATER;                             /**< LPUART Watermark Register, offset: 0x2C */
+} LPUART_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPUART Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPUART_Register_Masks LPUART Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPUART_VERID_FEATURE_MASK                (0xFFFFU)
+#define LPUART_VERID_FEATURE_SHIFT               (0U)
+/*! FEATURE - Feature Identification Number
+ *  0b0000000000000001..Standard feature set.
+ *  0b0000000000000011..Standard feature set with MODEM/IrDA support.
+ */
+#define LPUART_VERID_FEATURE(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_FEATURE_SHIFT)) & LPUART_VERID_FEATURE_MASK)
+#define LPUART_VERID_MINOR_MASK                  (0xFF0000U)
+#define LPUART_VERID_MINOR_SHIFT                 (16U)
+#define LPUART_VERID_MINOR(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_MINOR_SHIFT)) & LPUART_VERID_MINOR_MASK)
+#define LPUART_VERID_MAJOR_MASK                  (0xFF000000U)
+#define LPUART_VERID_MAJOR_SHIFT                 (24U)
+#define LPUART_VERID_MAJOR(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_MAJOR_SHIFT)) & LPUART_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPUART_PARAM_TXFIFO_MASK                 (0xFFU)
+#define LPUART_PARAM_TXFIFO_SHIFT                (0U)
+#define LPUART_PARAM_TXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_PARAM_TXFIFO_SHIFT)) & LPUART_PARAM_TXFIFO_MASK)
+#define LPUART_PARAM_RXFIFO_MASK                 (0xFF00U)
+#define LPUART_PARAM_RXFIFO_SHIFT                (8U)
+#define LPUART_PARAM_RXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_PARAM_RXFIFO_SHIFT)) & LPUART_PARAM_RXFIFO_MASK)
+/*! @} */
+
+/*! @name GLOBAL - LPUART Global Register */
+/*! @{ */
+#define LPUART_GLOBAL_RST_MASK                   (0x2U)
+#define LPUART_GLOBAL_RST_SHIFT                  (1U)
+/*! RST - Software Reset
+ *  0b0..Module is not reset.
+ *  0b1..Module is reset.
+ */
+#define LPUART_GLOBAL_RST(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_GLOBAL_RST_SHIFT)) & LPUART_GLOBAL_RST_MASK)
+/*! @} */
+
+/*! @name PINCFG - LPUART Pin Configuration Register */
+/*! @{ */
+#define LPUART_PINCFG_TRGSEL_MASK                (0x3U)
+#define LPUART_PINCFG_TRGSEL_SHIFT               (0U)
+/*! TRGSEL - Trigger Select
+ *  0b00..Input trigger is disabled.
+ *  0b01..Input trigger is used instead of RXD pin input.
+ *  0b10..Input trigger is used instead of CTS_B pin input.
+ *  0b11..Input trigger is used to modulate the TXD pin output. The TXD pin output (after TXINV configuration) is ANDed with the input trigger.
+ */
+#define LPUART_PINCFG_TRGSEL(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_PINCFG_TRGSEL_SHIFT)) & LPUART_PINCFG_TRGSEL_MASK)
+/*! @} */
+
+/*! @name BAUD - LPUART Baud Rate Register */
+/*! @{ */
+#define LPUART_BAUD_SBR_MASK                     (0x1FFFU)
+#define LPUART_BAUD_SBR_SHIFT                    (0U)
+#define LPUART_BAUD_SBR(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_SBR_SHIFT)) & LPUART_BAUD_SBR_MASK)
+#define LPUART_BAUD_SBNS_MASK                    (0x2000U)
+#define LPUART_BAUD_SBNS_SHIFT                   (13U)
+/*! SBNS - Stop Bit Number Select
+ *  0b0..One stop bit.
+ *  0b1..Two stop bits.
+ */
+#define LPUART_BAUD_SBNS(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_SBNS_SHIFT)) & LPUART_BAUD_SBNS_MASK)
+#define LPUART_BAUD_RXEDGIE_MASK                 (0x4000U)
+#define LPUART_BAUD_RXEDGIE_SHIFT                (14U)
+/*! RXEDGIE - RX Input Active Edge Interrupt Enable
+ *  0b0..Hardware interrupts from LPUART_STAT[RXEDGIF] disabled.
+ *  0b1..Hardware interrupt requested when LPUART_STAT[RXEDGIF] flag is 1.
+ */
+#define LPUART_BAUD_RXEDGIE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RXEDGIE_SHIFT)) & LPUART_BAUD_RXEDGIE_MASK)
+#define LPUART_BAUD_LBKDIE_MASK                  (0x8000U)
+#define LPUART_BAUD_LBKDIE_SHIFT                 (15U)
+/*! LBKDIE - LIN Break Detect Interrupt Enable
+ *  0b0..Hardware interrupts from LPUART_STAT[LBKDIF] disabled (use polling).
+ *  0b1..Hardware interrupt requested when LPUART_STAT[LBKDIF] flag is 1.
+ */
+#define LPUART_BAUD_LBKDIE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_LBKDIE_SHIFT)) & LPUART_BAUD_LBKDIE_MASK)
+#define LPUART_BAUD_RESYNCDIS_MASK               (0x10000U)
+#define LPUART_BAUD_RESYNCDIS_SHIFT              (16U)
+/*! RESYNCDIS - Resynchronization Disable
+ *  0b0..Resynchronization during received data word is supported
+ *  0b1..Resynchronization during received data word is disabled
+ */
+#define LPUART_BAUD_RESYNCDIS(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RESYNCDIS_SHIFT)) & LPUART_BAUD_RESYNCDIS_MASK)
+#define LPUART_BAUD_BOTHEDGE_MASK                (0x20000U)
+#define LPUART_BAUD_BOTHEDGE_SHIFT               (17U)
+/*! BOTHEDGE - Both Edge Sampling
+ *  0b0..Receiver samples input data using the rising edge of the baud rate clock.
+ *  0b1..Receiver samples input data using the rising and falling edge of the baud rate clock.
+ */
+#define LPUART_BAUD_BOTHEDGE(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_BOTHEDGE_SHIFT)) & LPUART_BAUD_BOTHEDGE_MASK)
+#define LPUART_BAUD_MATCFG_MASK                  (0xC0000U)
+#define LPUART_BAUD_MATCFG_SHIFT                 (18U)
+/*! MATCFG - Match Configuration
+ *  0b00..Address Match Wakeup
+ *  0b01..Idle Match Wakeup
+ *  0b10..Match On and Match Off
+ *  0b11..Enables RWU on Data Match and Match On/Off for transmitter CTS input
+ */
+#define LPUART_BAUD_MATCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MATCFG_SHIFT)) & LPUART_BAUD_MATCFG_MASK)
+#define LPUART_BAUD_RIDMAE_MASK                  (0x100000U)
+#define LPUART_BAUD_RIDMAE_SHIFT                 (20U)
+/*! RIDMAE - Receiver Idle DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_RIDMAE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RIDMAE_SHIFT)) & LPUART_BAUD_RIDMAE_MASK)
+#define LPUART_BAUD_RDMAE_MASK                   (0x200000U)
+#define LPUART_BAUD_RDMAE_SHIFT                  (21U)
+/*! RDMAE - Receiver Full DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_RDMAE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RDMAE_SHIFT)) & LPUART_BAUD_RDMAE_MASK)
+#define LPUART_BAUD_TDMAE_MASK                   (0x800000U)
+#define LPUART_BAUD_TDMAE_SHIFT                  (23U)
+/*! TDMAE - Transmitter DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_TDMAE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_TDMAE_SHIFT)) & LPUART_BAUD_TDMAE_MASK)
+#define LPUART_BAUD_OSR_MASK                     (0x1F000000U)
+#define LPUART_BAUD_OSR_SHIFT                    (24U)
+/*! OSR - Oversampling Ratio
+ *  0b00000..Writing 0 to this field will result in an oversampling ratio of 16
+ *  0b00001..Reserved
+ *  0b00010..Reserved
+ *  0b00011..Oversampling ratio of 4, requires BOTHEDGE to be set.
+ *  0b00100..Oversampling ratio of 5, requires BOTHEDGE to be set.
+ *  0b00101..Oversampling ratio of 6, requires BOTHEDGE to be set.
+ *  0b00110..Oversampling ratio of 7, requires BOTHEDGE to be set.
+ *  0b00111..Oversampling ratio of 8.
+ *  0b01000..Oversampling ratio of 9.
+ *  0b01001..Oversampling ratio of 10.
+ *  0b01010..Oversampling ratio of 11.
+ *  0b01011..Oversampling ratio of 12.
+ *  0b01100..Oversampling ratio of 13.
+ *  0b01101..Oversampling ratio of 14.
+ *  0b01110..Oversampling ratio of 15.
+ *  0b01111..Oversampling ratio of 16.
+ *  0b10000..Oversampling ratio of 17.
+ *  0b10001..Oversampling ratio of 18.
+ *  0b10010..Oversampling ratio of 19.
+ *  0b10011..Oversampling ratio of 20.
+ *  0b10100..Oversampling ratio of 21.
+ *  0b10101..Oversampling ratio of 22.
+ *  0b10110..Oversampling ratio of 23.
+ *  0b10111..Oversampling ratio of 24.
+ *  0b11000..Oversampling ratio of 25.
+ *  0b11001..Oversampling ratio of 26.
+ *  0b11010..Oversampling ratio of 27.
+ *  0b11011..Oversampling ratio of 28.
+ *  0b11100..Oversampling ratio of 29.
+ *  0b11101..Oversampling ratio of 30.
+ *  0b11110..Oversampling ratio of 31.
+ *  0b11111..Oversampling ratio of 32.
+ */
+#define LPUART_BAUD_OSR(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_OSR_SHIFT)) & LPUART_BAUD_OSR_MASK)
+#define LPUART_BAUD_M10_MASK                     (0x20000000U)
+#define LPUART_BAUD_M10_SHIFT                    (29U)
+/*! M10 - 10-bit Mode select
+ *  0b0..Receiver and transmitter use 7-bit to 9-bit data characters.
+ *  0b1..Receiver and transmitter use 10-bit data characters.
+ */
+#define LPUART_BAUD_M10(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_M10_SHIFT)) & LPUART_BAUD_M10_MASK)
+#define LPUART_BAUD_MAEN2_MASK                   (0x40000000U)
+#define LPUART_BAUD_MAEN2_SHIFT                  (30U)
+/*! MAEN2 - Match Address Mode Enable 2
+ *  0b0..Normal operation.
+ *  0b1..Enables automatic address matching or data matching mode for MATCH[MA2].
+ */
+#define LPUART_BAUD_MAEN2(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MAEN2_SHIFT)) & LPUART_BAUD_MAEN2_MASK)
+#define LPUART_BAUD_MAEN1_MASK                   (0x80000000U)
+#define LPUART_BAUD_MAEN1_SHIFT                  (31U)
+/*! MAEN1 - Match Address Mode Enable 1
+ *  0b0..Normal operation.
+ *  0b1..Enables automatic address matching or data matching mode for MATCH[MA1].
+ */
+#define LPUART_BAUD_MAEN1(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MAEN1_SHIFT)) & LPUART_BAUD_MAEN1_MASK)
+/*! @} */
+
+/*! @name STAT - LPUART Status Register */
+/*! @{ */
+#define LPUART_STAT_MA2F_MASK                    (0x4000U)
+#define LPUART_STAT_MA2F_SHIFT                   (14U)
+/*! MA2F - Match 2 Flag
+ *  0b0..Received data is not equal to MA2
+ *  0b1..Received data is equal to MA2
+ */
+#define LPUART_STAT_MA2F(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MA2F_SHIFT)) & LPUART_STAT_MA2F_MASK)
+#define LPUART_STAT_MA1F_MASK                    (0x8000U)
+#define LPUART_STAT_MA1F_SHIFT                   (15U)
+/*! MA1F - Match 1 Flag
+ *  0b0..Received data is not equal to MA1
+ *  0b1..Received data is equal to MA1
+ */
+#define LPUART_STAT_MA1F(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MA1F_SHIFT)) & LPUART_STAT_MA1F_MASK)
+#define LPUART_STAT_PF_MASK                      (0x10000U)
+#define LPUART_STAT_PF_SHIFT                     (16U)
+/*! PF - Parity Error Flag
+ *  0b0..No parity error.
+ *  0b1..Parity error.
+ */
+#define LPUART_STAT_PF(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_PF_SHIFT)) & LPUART_STAT_PF_MASK)
+#define LPUART_STAT_FE_MASK                      (0x20000U)
+#define LPUART_STAT_FE_SHIFT                     (17U)
+/*! FE - Framing Error Flag
+ *  0b0..No framing error detected. This does not guarantee the framing is correct.
+ *  0b1..Framing error.
+ */
+#define LPUART_STAT_FE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_FE_SHIFT)) & LPUART_STAT_FE_MASK)
+#define LPUART_STAT_NF_MASK                      (0x40000U)
+#define LPUART_STAT_NF_SHIFT                     (18U)
+/*! NF - Noise Flag
+ *  0b0..No noise detected.
+ *  0b1..Noise detected in the received character in LPUART_DATA.
+ */
+#define LPUART_STAT_NF(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_NF_SHIFT)) & LPUART_STAT_NF_MASK)
+#define LPUART_STAT_OR_MASK                      (0x80000U)
+#define LPUART_STAT_OR_SHIFT                     (19U)
+/*! OR - Receiver Overrun Flag
+ *  0b0..No overrun.
+ *  0b1..Receive overrun (new LPUART data lost).
+ */
+#define LPUART_STAT_OR(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_OR_SHIFT)) & LPUART_STAT_OR_MASK)
+#define LPUART_STAT_IDLE_MASK                    (0x100000U)
+#define LPUART_STAT_IDLE_SHIFT                   (20U)
+/*! IDLE - Idle Line Flag
+ *  0b0..No idle line detected.
+ *  0b1..Idle line was detected.
+ */
+#define LPUART_STAT_IDLE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_IDLE_SHIFT)) & LPUART_STAT_IDLE_MASK)
+#define LPUART_STAT_RDRF_MASK                    (0x200000U)
+#define LPUART_STAT_RDRF_SHIFT                   (21U)
+/*! RDRF - Receive Data Register Full Flag
+ *  0b0..Receive data buffer empty.
+ *  0b1..Receive data buffer full.
+ */
+#define LPUART_STAT_RDRF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RDRF_SHIFT)) & LPUART_STAT_RDRF_MASK)
+#define LPUART_STAT_TC_MASK                      (0x400000U)
+#define LPUART_STAT_TC_SHIFT                     (22U)
+/*! TC - Transmission Complete Flag
+ *  0b0..Transmitter active (sending data, a preamble, or a break).
+ *  0b1..Transmitter idle (transmission activity complete).
+ */
+#define LPUART_STAT_TC(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_TC_SHIFT)) & LPUART_STAT_TC_MASK)
+#define LPUART_STAT_TDRE_MASK                    (0x800000U)
+#define LPUART_STAT_TDRE_SHIFT                   (23U)
+/*! TDRE - Transmit Data Register Empty Flag
+ *  0b0..Transmit data buffer full.
+ *  0b1..Transmit data buffer empty.
+ */
+#define LPUART_STAT_TDRE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_TDRE_SHIFT)) & LPUART_STAT_TDRE_MASK)
+#define LPUART_STAT_RAF_MASK                     (0x1000000U)
+#define LPUART_STAT_RAF_SHIFT                    (24U)
+/*! RAF - Receiver Active Flag
+ *  0b0..LPUART receiver idle waiting for a start bit.
+ *  0b1..LPUART receiver active (RXD input not idle).
+ */
+#define LPUART_STAT_RAF(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RAF_SHIFT)) & LPUART_STAT_RAF_MASK)
+#define LPUART_STAT_LBKDE_MASK                   (0x2000000U)
+#define LPUART_STAT_LBKDE_SHIFT                  (25U)
+/*! LBKDE - LIN Break Detection Enable
+ *  0b0..LIN break detect is disabled, normal break character can be detected.
+ *  0b1..LIN break detect is enabled. LIN break character is detected at length of 11 bit times (if M = 0) or 12 (if M = 1) or 13 (M10 = 1).
+ */
+#define LPUART_STAT_LBKDE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_LBKDE_SHIFT)) & LPUART_STAT_LBKDE_MASK)
+#define LPUART_STAT_BRK13_MASK                   (0x4000000U)
+#define LPUART_STAT_BRK13_SHIFT                  (26U)
+/*! BRK13 - Break Character Generation Length
+ *  0b0..Break character is transmitted with length of 9 to 13 bit times.
+ *  0b1..Break character is transmitted with length of 12 to 15 bit times.
+ */
+#define LPUART_STAT_BRK13(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_BRK13_SHIFT)) & LPUART_STAT_BRK13_MASK)
+#define LPUART_STAT_RWUID_MASK                   (0x8000000U)
+#define LPUART_STAT_RWUID_SHIFT                  (27U)
+/*! RWUID - Receive Wake Up Idle Detect
+ *  0b0..During receive standby state (RWU = 1), the IDLE bit does not get set upon detection of an idle character. During address match wakeup, the IDLE bit does not set when an address does not match.
+ *  0b1..During receive standby state (RWU = 1), the IDLE bit gets set upon detection of an idle character. During address match wakeup, the IDLE bit does set when an address does not match.
+ */
+#define LPUART_STAT_RWUID(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RWUID_SHIFT)) & LPUART_STAT_RWUID_MASK)
+#define LPUART_STAT_RXINV_MASK                   (0x10000000U)
+#define LPUART_STAT_RXINV_SHIFT                  (28U)
+/*! RXINV - Receive Data Inversion
+ *  0b0..Receive data not inverted.
+ *  0b1..Receive data inverted.
+ */
+#define LPUART_STAT_RXINV(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RXINV_SHIFT)) & LPUART_STAT_RXINV_MASK)
+#define LPUART_STAT_MSBF_MASK                    (0x20000000U)
+#define LPUART_STAT_MSBF_SHIFT                   (29U)
+/*! MSBF - MSB First
+ *  0b0..LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0.
+ *  0b1..MSB (bit9, bit8, bit7 or bit6) is the first bit that is transmitted following the start bit depending on the setting of CTRL[M], CTRL[PE] and BAUD[M10]. Further, the first bit received after the start bit is identified as bit9, bit8, bit7 or bit6 depending on the setting of CTRL[M] and CTRL[PE].
+ */
+#define LPUART_STAT_MSBF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MSBF_SHIFT)) & LPUART_STAT_MSBF_MASK)
+#define LPUART_STAT_RXEDGIF_MASK                 (0x40000000U)
+#define LPUART_STAT_RXEDGIF_SHIFT                (30U)
+/*! RXEDGIF - RXD Pin Active Edge Interrupt Flag
+ *  0b0..No active edge on the receive pin has occurred.
+ *  0b1..An active edge on the receive pin has occurred.
+ */
+#define LPUART_STAT_RXEDGIF(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RXEDGIF_SHIFT)) & LPUART_STAT_RXEDGIF_MASK)
+#define LPUART_STAT_LBKDIF_MASK                  (0x80000000U)
+#define LPUART_STAT_LBKDIF_SHIFT                 (31U)
+/*! LBKDIF - LIN Break Detect Interrupt Flag
+ *  0b0..No LIN break character has been detected.
+ *  0b1..LIN break character has been detected.
+ */
+#define LPUART_STAT_LBKDIF(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_LBKDIF_SHIFT)) & LPUART_STAT_LBKDIF_MASK)
+/*! @} */
+
+/*! @name CTRL - LPUART Control Register */
+/*! @{ */
+#define LPUART_CTRL_PT_MASK                      (0x1U)
+#define LPUART_CTRL_PT_SHIFT                     (0U)
+/*! PT - Parity Type
+ *  0b0..Even parity.
+ *  0b1..Odd parity.
+ */
+#define LPUART_CTRL_PT(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PT_SHIFT)) & LPUART_CTRL_PT_MASK)
+#define LPUART_CTRL_PE_MASK                      (0x2U)
+#define LPUART_CTRL_PE_SHIFT                     (1U)
+/*! PE - Parity Enable
+ *  0b0..No hardware parity generation or checking.
+ *  0b1..Parity enabled.
+ */
+#define LPUART_CTRL_PE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PE_SHIFT)) & LPUART_CTRL_PE_MASK)
+#define LPUART_CTRL_ILT_MASK                     (0x4U)
+#define LPUART_CTRL_ILT_SHIFT                    (2U)
+/*! ILT - Idle Line Type Select
+ *  0b0..Idle character bit count starts after start bit.
+ *  0b1..Idle character bit count starts after stop bit.
+ */
+#define LPUART_CTRL_ILT(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ILT_SHIFT)) & LPUART_CTRL_ILT_MASK)
+#define LPUART_CTRL_WAKE_MASK                    (0x8U)
+#define LPUART_CTRL_WAKE_SHIFT                   (3U)
+/*! WAKE - Receiver Wakeup Method Select
+ *  0b0..Configures RWU for idle-line wakeup.
+ *  0b1..Configures RWU with address-mark wakeup.
+ */
+#define LPUART_CTRL_WAKE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_WAKE_SHIFT)) & LPUART_CTRL_WAKE_MASK)
+#define LPUART_CTRL_M_MASK                       (0x10U)
+#define LPUART_CTRL_M_SHIFT                      (4U)
+/*! M - 9-Bit or 8-Bit Mode Select
+ *  0b0..Receiver and transmitter use 8-bit data characters.
+ *  0b1..Receiver and transmitter use 9-bit data characters.
+ */
+#define LPUART_CTRL_M(x)                         (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_M_SHIFT)) & LPUART_CTRL_M_MASK)
+#define LPUART_CTRL_RSRC_MASK                    (0x20U)
+#define LPUART_CTRL_RSRC_SHIFT                   (5U)
+/*! RSRC - Receiver Source Select
+ *  0b0..Provided LOOPS is set, RSRC is cleared, selects internal loop back mode and the LPUART does not use the RXD pin.
+ *  0b1..Single-wire LPUART mode where the TXD pin is connected to the transmitter output and receiver input.
+ */
+#define LPUART_CTRL_RSRC(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RSRC_SHIFT)) & LPUART_CTRL_RSRC_MASK)
+#define LPUART_CTRL_DOZEEN_MASK                  (0x40U)
+#define LPUART_CTRL_DOZEEN_SHIFT                 (6U)
+/*! DOZEEN - Doze Enable
+ *  0b0..LPUART is enabled in Doze mode.
+ *  0b1..LPUART is disabled in Doze mode.
+ */
+#define LPUART_CTRL_DOZEEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_DOZEEN_SHIFT)) & LPUART_CTRL_DOZEEN_MASK)
+#define LPUART_CTRL_LOOPS_MASK                   (0x80U)
+#define LPUART_CTRL_LOOPS_SHIFT                  (7U)
+/*! LOOPS - Loop Mode Select
+ *  0b0..Normal operation - RXD and TXD use separate pins.
+ *  0b1..Loop mode or single-wire mode where transmitter outputs are internally connected to receiver input (see RSRC bit).
+ */
+#define LPUART_CTRL_LOOPS(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_LOOPS_SHIFT)) & LPUART_CTRL_LOOPS_MASK)
+#define LPUART_CTRL_IDLECFG_MASK                 (0x700U)
+#define LPUART_CTRL_IDLECFG_SHIFT                (8U)
+/*! IDLECFG - Idle Configuration
+ *  0b000..1 idle character
+ *  0b001..2 idle characters
+ *  0b010..4 idle characters
+ *  0b011..8 idle characters
+ *  0b100..16 idle characters
+ *  0b101..32 idle characters
+ *  0b110..64 idle characters
+ *  0b111..128 idle characters
+ */
+#define LPUART_CTRL_IDLECFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_IDLECFG_SHIFT)) & LPUART_CTRL_IDLECFG_MASK)
+#define LPUART_CTRL_M7_MASK                      (0x800U)
+#define LPUART_CTRL_M7_SHIFT                     (11U)
+/*! M7 - 7-Bit Mode Select
+ *  0b0..Receiver and transmitter use 8-bit to 10-bit data characters.
+ *  0b1..Receiver and transmitter use 7-bit data characters.
+ */
+#define LPUART_CTRL_M7(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_M7_SHIFT)) & LPUART_CTRL_M7_MASK)
+#define LPUART_CTRL_MA2IE_MASK                   (0x4000U)
+#define LPUART_CTRL_MA2IE_SHIFT                  (14U)
+/*! MA2IE - Match 2 Interrupt Enable
+ *  0b0..MA2F interrupt disabled
+ *  0b1..MA2F interrupt enabled
+ */
+#define LPUART_CTRL_MA2IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_MA2IE_SHIFT)) & LPUART_CTRL_MA2IE_MASK)
+#define LPUART_CTRL_MA1IE_MASK                   (0x8000U)
+#define LPUART_CTRL_MA1IE_SHIFT                  (15U)
+/*! MA1IE - Match 1 Interrupt Enable
+ *  0b0..MA1F interrupt disabled
+ *  0b1..MA1F interrupt enabled
+ */
+#define LPUART_CTRL_MA1IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_MA1IE_SHIFT)) & LPUART_CTRL_MA1IE_MASK)
+#define LPUART_CTRL_SBK_MASK                     (0x10000U)
+#define LPUART_CTRL_SBK_SHIFT                    (16U)
+/*! SBK - Send Break
+ *  0b0..Normal transmitter operation.
+ *  0b1..Queue break character(s) to be sent.
+ */
+#define LPUART_CTRL_SBK(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_SBK_SHIFT)) & LPUART_CTRL_SBK_MASK)
+#define LPUART_CTRL_RWU_MASK                     (0x20000U)
+#define LPUART_CTRL_RWU_SHIFT                    (17U)
+/*! RWU - Receiver Wakeup Control
+ *  0b0..Normal receiver operation.
+ *  0b1..LPUART receiver in standby waiting for wakeup condition.
+ */
+#define LPUART_CTRL_RWU(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RWU_SHIFT)) & LPUART_CTRL_RWU_MASK)
+#define LPUART_CTRL_RE_MASK                      (0x40000U)
+#define LPUART_CTRL_RE_SHIFT                     (18U)
+/*! RE - Receiver Enable
+ *  0b0..Receiver disabled.
+ *  0b1..Receiver enabled.
+ */
+#define LPUART_CTRL_RE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RE_SHIFT)) & LPUART_CTRL_RE_MASK)
+#define LPUART_CTRL_TE_MASK                      (0x80000U)
+#define LPUART_CTRL_TE_SHIFT                     (19U)
+/*! TE - Transmitter Enable
+ *  0b0..Transmitter disabled.
+ *  0b1..Transmitter enabled.
+ */
+#define LPUART_CTRL_TE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TE_SHIFT)) & LPUART_CTRL_TE_MASK)
+#define LPUART_CTRL_ILIE_MASK                    (0x100000U)
+#define LPUART_CTRL_ILIE_SHIFT                   (20U)
+/*! ILIE - Idle Line Interrupt Enable
+ *  0b0..Hardware interrupts from IDLE disabled; use polling.
+ *  0b1..Hardware interrupt requested when IDLE flag is 1.
+ */
+#define LPUART_CTRL_ILIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ILIE_SHIFT)) & LPUART_CTRL_ILIE_MASK)
+#define LPUART_CTRL_RIE_MASK                     (0x200000U)
+#define LPUART_CTRL_RIE_SHIFT                    (21U)
+/*! RIE - Receiver Interrupt Enable
+ *  0b0..Hardware interrupts from RDRF disabled; use polling.
+ *  0b1..Hardware interrupt requested when RDRF flag is 1.
+ */
+#define LPUART_CTRL_RIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RIE_SHIFT)) & LPUART_CTRL_RIE_MASK)
+#define LPUART_CTRL_TCIE_MASK                    (0x400000U)
+#define LPUART_CTRL_TCIE_SHIFT                   (22U)
+/*! TCIE - Transmission Complete Interrupt Enable for
+ *  0b0..Hardware interrupts from TC disabled; use polling.
+ *  0b1..Hardware interrupt requested when TC flag is 1.
+ */
+#define LPUART_CTRL_TCIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TCIE_SHIFT)) & LPUART_CTRL_TCIE_MASK)
+#define LPUART_CTRL_TIE_MASK                     (0x800000U)
+#define LPUART_CTRL_TIE_SHIFT                    (23U)
+/*! TIE - Transmit Interrupt Enable
+ *  0b0..Hardware interrupts from TDRE disabled; use polling.
+ *  0b1..Hardware interrupt requested when TDRE flag is 1.
+ */
+#define LPUART_CTRL_TIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TIE_SHIFT)) & LPUART_CTRL_TIE_MASK)
+#define LPUART_CTRL_PEIE_MASK                    (0x1000000U)
+#define LPUART_CTRL_PEIE_SHIFT                   (24U)
+/*! PEIE - Parity Error Interrupt Enable
+ *  0b0..PF interrupts disabled; use polling).
+ *  0b1..Hardware interrupt requested when PF is set.
+ */
+#define LPUART_CTRL_PEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PEIE_SHIFT)) & LPUART_CTRL_PEIE_MASK)
+#define LPUART_CTRL_FEIE_MASK                    (0x2000000U)
+#define LPUART_CTRL_FEIE_SHIFT                   (25U)
+/*! FEIE - Framing Error Interrupt Enable
+ *  0b0..FE interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when FE is set.
+ */
+#define LPUART_CTRL_FEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_FEIE_SHIFT)) & LPUART_CTRL_FEIE_MASK)
+#define LPUART_CTRL_NEIE_MASK                    (0x4000000U)
+#define LPUART_CTRL_NEIE_SHIFT                   (26U)
+/*! NEIE - Noise Error Interrupt Enable
+ *  0b0..NF interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when NF is set.
+ */
+#define LPUART_CTRL_NEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_NEIE_SHIFT)) & LPUART_CTRL_NEIE_MASK)
+#define LPUART_CTRL_ORIE_MASK                    (0x8000000U)
+#define LPUART_CTRL_ORIE_SHIFT                   (27U)
+/*! ORIE - Overrun Interrupt Enable
+ *  0b0..OR interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when OR is set.
+ */
+#define LPUART_CTRL_ORIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ORIE_SHIFT)) & LPUART_CTRL_ORIE_MASK)
+#define LPUART_CTRL_TXINV_MASK                   (0x10000000U)
+#define LPUART_CTRL_TXINV_SHIFT                  (28U)
+/*! TXINV - Transmit Data Inversion
+ *  0b0..Transmit data not inverted.
+ *  0b1..Transmit data inverted.
+ */
+#define LPUART_CTRL_TXINV(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TXINV_SHIFT)) & LPUART_CTRL_TXINV_MASK)
+#define LPUART_CTRL_TXDIR_MASK                   (0x20000000U)
+#define LPUART_CTRL_TXDIR_SHIFT                  (29U)
+/*! TXDIR - TXD Pin Direction in Single-Wire Mode
+ *  0b0..TXD pin is an input in single-wire mode.
+ *  0b1..TXD pin is an output in single-wire mode.
+ */
+#define LPUART_CTRL_TXDIR(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TXDIR_SHIFT)) & LPUART_CTRL_TXDIR_MASK)
+#define LPUART_CTRL_R9T8_MASK                    (0x40000000U)
+#define LPUART_CTRL_R9T8_SHIFT                   (30U)
+#define LPUART_CTRL_R9T8(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_R9T8_SHIFT)) & LPUART_CTRL_R9T8_MASK)
+#define LPUART_CTRL_R8T9_MASK                    (0x80000000U)
+#define LPUART_CTRL_R8T9_SHIFT                   (31U)
+#define LPUART_CTRL_R8T9(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_R8T9_SHIFT)) & LPUART_CTRL_R8T9_MASK)
+/*! @} */
+
+/*! @name DATA - LPUART Data Register */
+/*! @{ */
+#define LPUART_DATA_R0T0_MASK                    (0x1U)
+#define LPUART_DATA_R0T0_SHIFT                   (0U)
+#define LPUART_DATA_R0T0(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R0T0_SHIFT)) & LPUART_DATA_R0T0_MASK)
+#define LPUART_DATA_R1T1_MASK                    (0x2U)
+#define LPUART_DATA_R1T1_SHIFT                   (1U)
+#define LPUART_DATA_R1T1(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R1T1_SHIFT)) & LPUART_DATA_R1T1_MASK)
+#define LPUART_DATA_R2T2_MASK                    (0x4U)
+#define LPUART_DATA_R2T2_SHIFT                   (2U)
+#define LPUART_DATA_R2T2(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R2T2_SHIFT)) & LPUART_DATA_R2T2_MASK)
+#define LPUART_DATA_R3T3_MASK                    (0x8U)
+#define LPUART_DATA_R3T3_SHIFT                   (3U)
+#define LPUART_DATA_R3T3(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R3T3_SHIFT)) & LPUART_DATA_R3T3_MASK)
+#define LPUART_DATA_R4T4_MASK                    (0x10U)
+#define LPUART_DATA_R4T4_SHIFT                   (4U)
+#define LPUART_DATA_R4T4(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R4T4_SHIFT)) & LPUART_DATA_R4T4_MASK)
+#define LPUART_DATA_R5T5_MASK                    (0x20U)
+#define LPUART_DATA_R5T5_SHIFT                   (5U)
+#define LPUART_DATA_R5T5(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R5T5_SHIFT)) & LPUART_DATA_R5T5_MASK)
+#define LPUART_DATA_R6T6_MASK                    (0x40U)
+#define LPUART_DATA_R6T6_SHIFT                   (6U)
+#define LPUART_DATA_R6T6(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R6T6_SHIFT)) & LPUART_DATA_R6T6_MASK)
+#define LPUART_DATA_R7T7_MASK                    (0x80U)
+#define LPUART_DATA_R7T7_SHIFT                   (7U)
+#define LPUART_DATA_R7T7(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R7T7_SHIFT)) & LPUART_DATA_R7T7_MASK)
+#define LPUART_DATA_R8T8_MASK                    (0x100U)
+#define LPUART_DATA_R8T8_SHIFT                   (8U)
+#define LPUART_DATA_R8T8(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R8T8_SHIFT)) & LPUART_DATA_R8T8_MASK)
+#define LPUART_DATA_R9T9_MASK                    (0x200U)
+#define LPUART_DATA_R9T9_SHIFT                   (9U)
+#define LPUART_DATA_R9T9(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R9T9_SHIFT)) & LPUART_DATA_R9T9_MASK)
+#define LPUART_DATA_IDLINE_MASK                  (0x800U)
+#define LPUART_DATA_IDLINE_SHIFT                 (11U)
+/*! IDLINE - Idle Line
+ *  0b0..Receiver was not idle before receiving this character.
+ *  0b1..Receiver was idle before receiving this character.
+ */
+#define LPUART_DATA_IDLINE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_IDLINE_SHIFT)) & LPUART_DATA_IDLINE_MASK)
+#define LPUART_DATA_RXEMPT_MASK                  (0x1000U)
+#define LPUART_DATA_RXEMPT_SHIFT                 (12U)
+/*! RXEMPT - Receive Buffer Empty
+ *  0b0..Receive buffer contains valid data.
+ *  0b1..Receive buffer is empty, data returned on read is not valid.
+ */
+#define LPUART_DATA_RXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_RXEMPT_SHIFT)) & LPUART_DATA_RXEMPT_MASK)
+#define LPUART_DATA_FRETSC_MASK                  (0x2000U)
+#define LPUART_DATA_FRETSC_SHIFT                 (13U)
+/*! FRETSC - Frame Error / Transmit Special Character
+ *  0b0..The dataword was received without a frame error on read, or transmit a normal character on write.
+ *  0b1..The dataword was received with a frame error, or transmit an idle or break character on transmit.
+ */
+#define LPUART_DATA_FRETSC(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_FRETSC_SHIFT)) & LPUART_DATA_FRETSC_MASK)
+#define LPUART_DATA_PARITYE_MASK                 (0x4000U)
+#define LPUART_DATA_PARITYE_SHIFT                (14U)
+/*! PARITYE - PARITYE
+ *  0b0..The dataword was received without a parity error.
+ *  0b1..The dataword was received with a parity error.
+ */
+#define LPUART_DATA_PARITYE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_PARITYE_SHIFT)) & LPUART_DATA_PARITYE_MASK)
+#define LPUART_DATA_NOISY_MASK                   (0x8000U)
+#define LPUART_DATA_NOISY_SHIFT                  (15U)
+/*! NOISY - NOISY
+ *  0b0..The dataword was received without noise.
+ *  0b1..The data was received with noise.
+ */
+#define LPUART_DATA_NOISY(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_NOISY_SHIFT)) & LPUART_DATA_NOISY_MASK)
+/*! @} */
+
+/*! @name MATCH - LPUART Match Address Register */
+/*! @{ */
+#define LPUART_MATCH_MA1_MASK                    (0x3FFU)
+#define LPUART_MATCH_MA1_SHIFT                   (0U)
+#define LPUART_MATCH_MA1(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MATCH_MA1_SHIFT)) & LPUART_MATCH_MA1_MASK)
+#define LPUART_MATCH_MA2_MASK                    (0x3FF0000U)
+#define LPUART_MATCH_MA2_SHIFT                   (16U)
+#define LPUART_MATCH_MA2(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MATCH_MA2_SHIFT)) & LPUART_MATCH_MA2_MASK)
+/*! @} */
+
+/*! @name MODIR - LPUART Modem IrDA Register */
+/*! @{ */
+#define LPUART_MODIR_TXCTSE_MASK                 (0x1U)
+#define LPUART_MODIR_TXCTSE_SHIFT                (0U)
+/*! TXCTSE - Transmitter clear-to-send enable
+ *  0b0..CTS has no effect on the transmitter.
+ *  0b1..Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission.
+ */
+#define LPUART_MODIR_TXCTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSE_SHIFT)) & LPUART_MODIR_TXCTSE_MASK)
+#define LPUART_MODIR_TXRTSE_MASK                 (0x2U)
+#define LPUART_MODIR_TXRTSE_SHIFT                (1U)
+/*! TXRTSE - Transmitter request-to-send enable
+ *  0b0..The transmitter has no effect on RTS.
+ *  0b1..When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit.
+ */
+#define LPUART_MODIR_TXRTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXRTSE_SHIFT)) & LPUART_MODIR_TXRTSE_MASK)
+#define LPUART_MODIR_TXRTSPOL_MASK               (0x4U)
+#define LPUART_MODIR_TXRTSPOL_SHIFT              (2U)
+/*! TXRTSPOL - Transmitter request-to-send polarity
+ *  0b0..Transmitter RTS is active low.
+ *  0b1..Transmitter RTS is active high.
+ */
+#define LPUART_MODIR_TXRTSPOL(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXRTSPOL_SHIFT)) & LPUART_MODIR_TXRTSPOL_MASK)
+#define LPUART_MODIR_RXRTSE_MASK                 (0x8U)
+#define LPUART_MODIR_RXRTSE_SHIFT                (3U)
+/*! RXRTSE - Receiver request-to-send enable
+ *  0b0..The receiver has no effect on RTS.
+ *  0b1..RTS is deasserted if the receiver data register is full or a start bit has been detected that would cause the receiver data register to become full. RTS is asserted if the receiver data register is not full and has not detected a start bit that would cause the receiver data register to become full.
+ */
+#define LPUART_MODIR_RXRTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_RXRTSE_SHIFT)) & LPUART_MODIR_RXRTSE_MASK)
+#define LPUART_MODIR_TXCTSC_MASK                 (0x10U)
+#define LPUART_MODIR_TXCTSC_SHIFT                (4U)
+/*! TXCTSC - Transmit CTS Configuration
+ *  0b0..CTS input is sampled at the start of each character.
+ *  0b1..CTS input is sampled when the transmitter is idle.
+ */
+#define LPUART_MODIR_TXCTSC(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSC_SHIFT)) & LPUART_MODIR_TXCTSC_MASK)
+#define LPUART_MODIR_TXCTSSRC_MASK               (0x20U)
+#define LPUART_MODIR_TXCTSSRC_SHIFT              (5U)
+/*! TXCTSSRC - Transmit CTS Source
+ *  0b0..CTS input is the CTS_B pin.
+ *  0b1..CTS input is the inverted Receiver Match result.
+ */
+#define LPUART_MODIR_TXCTSSRC(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSSRC_SHIFT)) & LPUART_MODIR_TXCTSSRC_MASK)
+#define LPUART_MODIR_RTSWATER_MASK               (0x700U)
+#define LPUART_MODIR_RTSWATER_SHIFT              (8U)
+#define LPUART_MODIR_RTSWATER(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_RTSWATER_SHIFT)) & LPUART_MODIR_RTSWATER_MASK)
+#define LPUART_MODIR_TNP_MASK                    (0x30000U)
+#define LPUART_MODIR_TNP_SHIFT                   (16U)
+/*! TNP - Transmitter narrow pulse
+ *  0b00..1/OSR.
+ *  0b01..2/OSR.
+ *  0b10..3/OSR.
+ *  0b11..4/OSR.
+ */
+#define LPUART_MODIR_TNP(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TNP_SHIFT)) & LPUART_MODIR_TNP_MASK)
+#define LPUART_MODIR_IREN_MASK                   (0x40000U)
+#define LPUART_MODIR_IREN_SHIFT                  (18U)
+/*! IREN - Infrared enable
+ *  0b0..IR disabled.
+ *  0b1..IR enabled.
+ */
+#define LPUART_MODIR_IREN(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_IREN_SHIFT)) & LPUART_MODIR_IREN_MASK)
+/*! @} */
+
+/*! @name FIFO - LPUART FIFO Register */
+/*! @{ */
+#define LPUART_FIFO_RXFIFOSIZE_MASK              (0x7U)
+#define LPUART_FIFO_RXFIFOSIZE_SHIFT             (0U)
+/*! RXFIFOSIZE - Receive FIFO. Buffer Depth
+ *  0b000..Receive FIFO/Buffer depth = 1 dataword.
+ *  0b001..Receive FIFO/Buffer depth = 4 datawords.
+ *  0b010..Receive FIFO/Buffer depth = 8 datawords.
+ *  0b011..Receive FIFO/Buffer depth = 16 datawords.
+ *  0b100..Receive FIFO/Buffer depth = 32 datawords.
+ *  0b101..Receive FIFO/Buffer depth = 64 datawords.
+ *  0b110..Receive FIFO/Buffer depth = 128 datawords.
+ *  0b111..Receive FIFO/Buffer depth = 256 datawords.
+ */
+#define LPUART_FIFO_RXFIFOSIZE(x)                (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFIFOSIZE_SHIFT)) & LPUART_FIFO_RXFIFOSIZE_MASK)
+#define LPUART_FIFO_RXFE_MASK                    (0x8U)
+#define LPUART_FIFO_RXFE_SHIFT                   (3U)
+/*! RXFE - Receive FIFO Enable
+ *  0b0..Receive FIFO is not enabled. Buffer is depth 1. (Legacy support)
+ *  0b1..Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE.
+ */
+#define LPUART_FIFO_RXFE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFE_SHIFT)) & LPUART_FIFO_RXFE_MASK)
+#define LPUART_FIFO_TXFIFOSIZE_MASK              (0x70U)
+#define LPUART_FIFO_TXFIFOSIZE_SHIFT             (4U)
+/*! TXFIFOSIZE - Transmit FIFO. Buffer Depth
+ *  0b000..Transmit FIFO/Buffer depth = 1 dataword.
+ *  0b001..Transmit FIFO/Buffer depth = 4 datawords.
+ *  0b010..Transmit FIFO/Buffer depth = 8 datawords.
+ *  0b011..Transmit FIFO/Buffer depth = 16 datawords.
+ *  0b100..Transmit FIFO/Buffer depth = 32 datawords.
+ *  0b101..Transmit FIFO/Buffer depth = 64 datawords.
+ *  0b110..Transmit FIFO/Buffer depth = 128 datawords.
+ *  0b111..Transmit FIFO/Buffer depth = 256 datawords
+ */
+#define LPUART_FIFO_TXFIFOSIZE(x)                (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFIFOSIZE_SHIFT)) & LPUART_FIFO_TXFIFOSIZE_MASK)
+#define LPUART_FIFO_TXFE_MASK                    (0x80U)
+#define LPUART_FIFO_TXFE_SHIFT                   (7U)
+/*! TXFE - Transmit FIFO Enable
+ *  0b0..Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support).
+ *  0b1..Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE.
+ */
+#define LPUART_FIFO_TXFE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFE_SHIFT)) & LPUART_FIFO_TXFE_MASK)
+#define LPUART_FIFO_RXUFE_MASK                   (0x100U)
+#define LPUART_FIFO_RXUFE_SHIFT                  (8U)
+/*! RXUFE - Receive FIFO Underflow Interrupt Enable
+ *  0b0..RXUF flag does not generate an interrupt to the host.
+ *  0b1..RXUF flag generates an interrupt to the host.
+ */
+#define LPUART_FIFO_RXUFE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXUFE_SHIFT)) & LPUART_FIFO_RXUFE_MASK)
+#define LPUART_FIFO_TXOFE_MASK                   (0x200U)
+#define LPUART_FIFO_TXOFE_SHIFT                  (9U)
+/*! TXOFE - Transmit FIFO Overflow Interrupt Enable
+ *  0b0..TXOF flag does not generate an interrupt to the host.
+ *  0b1..TXOF flag generates an interrupt to the host.
+ */
+#define LPUART_FIFO_TXOFE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXOFE_SHIFT)) & LPUART_FIFO_TXOFE_MASK)
+#define LPUART_FIFO_RXIDEN_MASK                  (0x1C00U)
+#define LPUART_FIFO_RXIDEN_SHIFT                 (10U)
+/*! RXIDEN - Receiver Idle Empty Enable
+ *  0b000..Disable RDRF assertion due to partially filled FIFO when receiver is idle.
+ *  0b001..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 1 character.
+ *  0b010..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 2 characters.
+ *  0b011..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 4 characters.
+ *  0b100..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 8 characters.
+ *  0b101..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 16 characters.
+ *  0b110..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 32 characters.
+ *  0b111..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 64 characters.
+ */
+#define LPUART_FIFO_RXIDEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXIDEN_SHIFT)) & LPUART_FIFO_RXIDEN_MASK)
+#define LPUART_FIFO_RXFLUSH_MASK                 (0x4000U)
+#define LPUART_FIFO_RXFLUSH_SHIFT                (14U)
+/*! RXFLUSH - Receive FIFO/Buffer Flush
+ *  0b0..No flush operation occurs.
+ *  0b1..All data in the receive FIFO/buffer is cleared out.
+ */
+#define LPUART_FIFO_RXFLUSH(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFLUSH_SHIFT)) & LPUART_FIFO_RXFLUSH_MASK)
+#define LPUART_FIFO_TXFLUSH_MASK                 (0x8000U)
+#define LPUART_FIFO_TXFLUSH_SHIFT                (15U)
+/*! TXFLUSH - Transmit FIFO/Buffer Flush
+ *  0b0..No flush operation occurs.
+ *  0b1..All data in the transmit FIFO/Buffer is cleared out.
+ */
+#define LPUART_FIFO_TXFLUSH(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFLUSH_SHIFT)) & LPUART_FIFO_TXFLUSH_MASK)
+#define LPUART_FIFO_RXUF_MASK                    (0x10000U)
+#define LPUART_FIFO_RXUF_SHIFT                   (16U)
+/*! RXUF - Receiver Buffer Underflow Flag
+ *  0b0..No receive buffer underflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one receive buffer underflow has occurred since the last time the flag was cleared.
+ */
+#define LPUART_FIFO_RXUF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXUF_SHIFT)) & LPUART_FIFO_RXUF_MASK)
+#define LPUART_FIFO_TXOF_MASK                    (0x20000U)
+#define LPUART_FIFO_TXOF_SHIFT                   (17U)
+/*! TXOF - Transmitter Buffer Overflow Flag
+ *  0b0..No transmit buffer overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one transmit buffer overflow has occurred since the last time the flag was cleared.
+ */
+#define LPUART_FIFO_TXOF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXOF_SHIFT)) & LPUART_FIFO_TXOF_MASK)
+#define LPUART_FIFO_RXEMPT_MASK                  (0x400000U)
+#define LPUART_FIFO_RXEMPT_SHIFT                 (22U)
+/*! RXEMPT - Receive Buffer/FIFO Empty
+ *  0b0..Receive buffer is not empty.
+ *  0b1..Receive buffer is empty.
+ */
+#define LPUART_FIFO_RXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXEMPT_SHIFT)) & LPUART_FIFO_RXEMPT_MASK)
+#define LPUART_FIFO_TXEMPT_MASK                  (0x800000U)
+#define LPUART_FIFO_TXEMPT_SHIFT                 (23U)
+/*! TXEMPT - Transmit Buffer/FIFO Empty
+ *  0b0..Transmit buffer is not empty.
+ *  0b1..Transmit buffer is empty.
+ */
+#define LPUART_FIFO_TXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXEMPT_SHIFT)) & LPUART_FIFO_TXEMPT_MASK)
+/*! @} */
+
+/*! @name WATER - LPUART Watermark Register */
+/*! @{ */
+#define LPUART_WATER_TXWATER_MASK                (0x7U)
+#define LPUART_WATER_TXWATER_SHIFT               (0U)
+#define LPUART_WATER_TXWATER(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_TXWATER_SHIFT)) & LPUART_WATER_TXWATER_MASK)
+#define LPUART_WATER_TXCOUNT_MASK                (0xF00U)
+#define LPUART_WATER_TXCOUNT_SHIFT               (8U)
+#define LPUART_WATER_TXCOUNT(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_TXCOUNT_SHIFT)) & LPUART_WATER_TXCOUNT_MASK)
+#define LPUART_WATER_RXWATER_MASK                (0x70000U)
+#define LPUART_WATER_RXWATER_SHIFT               (16U)
+#define LPUART_WATER_RXWATER(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_RXWATER_SHIFT)) & LPUART_WATER_RXWATER_MASK)
+#define LPUART_WATER_RXCOUNT_MASK                (0xF000000U)
+#define LPUART_WATER_RXCOUNT_SHIFT               (24U)
+#define LPUART_WATER_RXCOUNT(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_RXCOUNT_SHIFT)) & LPUART_WATER_RXCOUNT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPUART_Register_Masks */
+
+
+/* LPUART - Peripheral instance base addresses */
+/** Peripheral LPUART0 base address */
+#define LPUART0_BASE                             (0x40042000u)
+/** Peripheral LPUART0 base pointer */
+#define LPUART0                                  ((LPUART_Type *)LPUART0_BASE)
+/** Peripheral LPUART1 base address */
+#define LPUART1_BASE                             (0x40043000u)
+/** Peripheral LPUART1 base pointer */
+#define LPUART1                                  ((LPUART_Type *)LPUART1_BASE)
+/** Peripheral LPUART2 base address */
+#define LPUART2_BASE                             (0x40044000u)
+/** Peripheral LPUART2 base pointer */
+#define LPUART2                                  ((LPUART_Type *)LPUART2_BASE)
+/** Peripheral LPUART3 base address */
+#define LPUART3_BASE                             (0x41036000u)
+/** Peripheral LPUART3 base pointer */
+#define LPUART3                                  ((LPUART_Type *)LPUART3_BASE)
+/** Array initializer of LPUART peripheral base addresses */
+#define LPUART_BASE_ADDRS                        { LPUART0_BASE, LPUART1_BASE, LPUART2_BASE, LPUART3_BASE }
+/** Array initializer of LPUART peripheral base pointers */
+#define LPUART_BASE_PTRS                         { LPUART0, LPUART1, LPUART2, LPUART3 }
+/** Interrupt vectors for the LPUART peripheral type */
+#define LPUART_RX_TX_IRQS                        { LPUART0_IRQn, LPUART1_IRQn, LPUART2_IRQn, LPUART3_IRQn }
+#define LPUART_ERR_IRQS                          { LPUART0_IRQn, LPUART1_IRQn, LPUART2_IRQn, LPUART3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPUART_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MCM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MCM_Peripheral_Access_Layer MCM Peripheral Access Layer
+ * @{
+ */
+
+/** MCM - Register Layout Typedef */
+typedef struct {
+       uint8_t RESERVED_0[8];
+  __I  uint16_t PLASC;                             /**< Crossbar Switch (AXBS) Slave Configuration, offset: 0x8 */
+  __I  uint16_t PLAMC;                             /**< Crossbar Switch (AXBS) Master Configuration, offset: 0xA */
+  __IO uint32_t CPCR;                              /**< Core Platform Control Register, offset: 0xC */
+  __IO uint32_t ISCR;                              /**< Interrupt Status and Control Register, offset: 0x10 */
+       uint8_t RESERVED_1[32];
+  __IO uint32_t CPCR2;                             /**< Core Platform Control Register 2, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t CPO;                               /**< Compute Operation Control Register, offset: 0x40 */
+} MCM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MCM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MCM_Register_Masks MCM Register Masks
+ * @{
+ */
+
+/*! @name PLASC - Crossbar Switch (AXBS) Slave Configuration */
+/*! @{ */
+#define MCM_PLASC_ASC_MASK                       (0xFFU)
+#define MCM_PLASC_ASC_SHIFT                      (0U)
+#define MCM_PLASC_ASC(x)                         (((uint16_t)(((uint16_t)(x)) << MCM_PLASC_ASC_SHIFT)) & MCM_PLASC_ASC_MASK)
+/*! @} */
+
+/*! @name PLAMC - Crossbar Switch (AXBS) Master Configuration */
+/*! @{ */
+#define MCM_PLAMC_AMC_MASK                       (0xFFU)
+#define MCM_PLAMC_AMC_SHIFT                      (0U)
+#define MCM_PLAMC_AMC(x)                         (((uint16_t)(((uint16_t)(x)) << MCM_PLAMC_AMC_SHIFT)) & MCM_PLAMC_AMC_MASK)
+/*! @} */
+
+/*! @name CPCR - Core Platform Control Register */
+/*! @{ */
+#define MCM_CPCR_CBRR_MASK                       (0x200U)
+#define MCM_CPCR_CBRR_SHIFT                      (9U)
+/*! CBRR - Crossbar round-robin arbitration enable
+ *  0b0..Fixed-priority arbitration
+ *  0b1..Round-robin arbitration
+ */
+#define MCM_CPCR_CBRR(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_CPCR_CBRR_SHIFT)) & MCM_CPCR_CBRR_MASK)
+/*! @} */
+
+/*! @name ISCR - Interrupt Status and Control Register */
+/*! @{ */
+#define MCM_ISCR_FIOC_MASK                       (0x100U)
+#define MCM_ISCR_FIOC_SHIFT                      (8U)
+/*! FIOC - FPU invalid operation interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FIOC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIOC_SHIFT)) & MCM_ISCR_FIOC_MASK)
+#define MCM_ISCR_FDZC_MASK                       (0x200U)
+#define MCM_ISCR_FDZC_SHIFT                      (9U)
+/*! FDZC - FPU divide-by-zero interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FDZC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FDZC_SHIFT)) & MCM_ISCR_FDZC_MASK)
+#define MCM_ISCR_FOFC_MASK                       (0x400U)
+#define MCM_ISCR_FOFC_SHIFT                      (10U)
+/*! FOFC - FPU overflow interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FOFC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FOFC_SHIFT)) & MCM_ISCR_FOFC_MASK)
+#define MCM_ISCR_FUFC_MASK                       (0x800U)
+#define MCM_ISCR_FUFC_SHIFT                      (11U)
+/*! FUFC - FPU underflow interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FUFC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FUFC_SHIFT)) & MCM_ISCR_FUFC_MASK)
+#define MCM_ISCR_FIXC_MASK                       (0x1000U)
+#define MCM_ISCR_FIXC_SHIFT                      (12U)
+/*! FIXC - FPU inexact interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FIXC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIXC_SHIFT)) & MCM_ISCR_FIXC_MASK)
+#define MCM_ISCR_FIDC_MASK                       (0x8000U)
+#define MCM_ISCR_FIDC_SHIFT                      (15U)
+/*! FIDC - FPU input denormal interrupt status
+ *  0b0..No interrupt
+ *  0b1..Interrupt occurred
+ */
+#define MCM_ISCR_FIDC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIDC_SHIFT)) & MCM_ISCR_FIDC_MASK)
+#define MCM_ISCR_FIOCE_MASK                      (0x1000000U)
+#define MCM_ISCR_FIOCE_SHIFT                     (24U)
+/*! FIOCE - FPU invalid operation interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FIOCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIOCE_SHIFT)) & MCM_ISCR_FIOCE_MASK)
+#define MCM_ISCR_FDZCE_MASK                      (0x2000000U)
+#define MCM_ISCR_FDZCE_SHIFT                     (25U)
+/*! FDZCE - FPU divide-by-zero interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FDZCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FDZCE_SHIFT)) & MCM_ISCR_FDZCE_MASK)
+#define MCM_ISCR_FOFCE_MASK                      (0x4000000U)
+#define MCM_ISCR_FOFCE_SHIFT                     (26U)
+/*! FOFCE - FPU overflow interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FOFCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FOFCE_SHIFT)) & MCM_ISCR_FOFCE_MASK)
+#define MCM_ISCR_FUFCE_MASK                      (0x8000000U)
+#define MCM_ISCR_FUFCE_SHIFT                     (27U)
+/*! FUFCE - FPU underflow interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FUFCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FUFCE_SHIFT)) & MCM_ISCR_FUFCE_MASK)
+#define MCM_ISCR_FIXCE_MASK                      (0x10000000U)
+#define MCM_ISCR_FIXCE_SHIFT                     (28U)
+/*! FIXCE - FPU inexact interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FIXCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIXCE_SHIFT)) & MCM_ISCR_FIXCE_MASK)
+#define MCM_ISCR_FIDCE_MASK                      (0x80000000U)
+#define MCM_ISCR_FIDCE_SHIFT                     (31U)
+/*! FIDCE - FPU input denormal interrupt enable
+ *  0b0..Disable interrupt
+ *  0b1..Enable interrupt
+ */
+#define MCM_ISCR_FIDCE(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_ISCR_FIDCE_SHIFT)) & MCM_ISCR_FIDCE_MASK)
+/*! @} */
+
+/*! @name CPCR2 - Core Platform Control Register 2 */
+/*! @{ */
+#define MCM_CPCR2_CCBC_MASK                      (0x1U)
+#define MCM_CPCR2_CCBC_SHIFT                     (0U)
+/*! CCBC - Clear code bus cache, this field always reads as 0.
+ *  0b0..No effect
+ *  0b1..Clear code bus cache
+ */
+#define MCM_CPCR2_CCBC(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_CCBC_SHIFT)) & MCM_CPCR2_CCBC_MASK)
+#define MCM_CPCR2_DCBC_MASK                      (0x8U)
+#define MCM_CPCR2_DCBC_SHIFT                     (3U)
+/*! DCBC - Disable code bus cache
+ *  0b0..Enable code bus cache
+ *  0b1..Disable code bus cache
+ */
+#define MCM_CPCR2_DCBC(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_DCBC_SHIFT)) & MCM_CPCR2_DCBC_MASK)
+#define MCM_CPCR2_CBCS_MASK                      (0xF0U)
+#define MCM_CPCR2_CBCS_SHIFT                     (4U)
+/*! CBCS - Code Bus Cache Size
+ *  0b0000..0 KB
+ *  0b0001..1 KB
+ *  0b0010..2 KB
+ *  0b0011..4 KB
+ *  0b0100..8 KB
+ *  0b0101..16 KB
+ *  0b0110..32 KB
+ */
+#define MCM_CPCR2_CBCS(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_CBCS_SHIFT)) & MCM_CPCR2_CBCS_MASK)
+#define MCM_CPCR2_PCCMCTRL_MASK                  (0x10000U)
+#define MCM_CPCR2_PCCMCTRL_SHIFT                 (16U)
+/*! PCCMCTRL - Bypass fixed code cache map
+ *  0b0..The fixed code cache map is not bypassed
+ *  0b1..The fixed code cache map is bypassed
+ */
+#define MCM_CPCR2_PCCMCTRL(x)                    (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_PCCMCTRL_SHIFT)) & MCM_CPCR2_PCCMCTRL_MASK)
+#define MCM_CPCR2_LCCPWB_MASK                    (0x20000U)
+#define MCM_CPCR2_LCCPWB_SHIFT                   (17U)
+/*! LCCPWB - Limit code cache peripheral write buffering
+ *  0b0..Code cache peripheral write buffering is not limited
+ *  0b1..Code cache peripheral write buffering is limited
+ */
+#define MCM_CPCR2_LCCPWB(x)                      (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_LCCPWB_SHIFT)) & MCM_CPCR2_LCCPWB_MASK)
+/*! @} */
+
+/*! @name CPO - Compute Operation Control Register */
+/*! @{ */
+#define MCM_CPO_CPOREQ_MASK                      (0x1U)
+#define MCM_CPO_CPOREQ_SHIFT                     (0U)
+/*! CPOREQ - Compute Operation request
+ *  0b0..Request is cleared.
+ *  0b1..Request Compute Operation.
+ */
+#define MCM_CPO_CPOREQ(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOREQ_SHIFT)) & MCM_CPO_CPOREQ_MASK)
+#define MCM_CPO_CPOACK_MASK                      (0x2U)
+#define MCM_CPO_CPOACK_SHIFT                     (1U)
+/*! CPOACK - Compute Operation acknowledge
+ *  0b0..Compute operation entry has not completed or compute operation exit has completed.
+ *  0b1..Compute operation entry has completed or compute operation exit has not completed.
+ */
+#define MCM_CPO_CPOACK(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOACK_SHIFT)) & MCM_CPO_CPOACK_MASK)
+#define MCM_CPO_CPOWOI_MASK                      (0x4U)
+#define MCM_CPO_CPOWOI_SHIFT                     (2U)
+/*! CPOWOI - Compute Operation wakeup on interrupt
+ *  0b0..No effect.
+ *  0b1..When set, the CPOREQ is cleared on any interrupt or exception vector fetch.
+ */
+#define MCM_CPO_CPOWOI(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOWOI_SHIFT)) & MCM_CPO_CPOWOI_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MCM_Register_Masks */
+
+
+/* MCM - Peripheral instance base addresses */
+/** Peripheral MCM0 base address */
+#define MCM0_BASE                                (0xE0080000u)
+/** Peripheral MCM0 base pointer */
+#define MCM0                                     ((MCM_Type *)MCM0_BASE)
+/** Array initializer of MCM peripheral base addresses */
+#define MCM_BASE_ADDRS                           { MCM0_BASE }
+/** Array initializer of MCM peripheral base pointers */
+#define MCM_BASE_PTRS                            { MCM0 }
+/** Interrupt vectors for the MCM peripheral type */
+#define MCM_IRQS                                 { CTI0_MCM0_IRQn }
+/* MCM compatibility definitions */
+#define MCM_BASE                  MCM0_BASE
+#define MCM                       MCM0
+
+
+/*!
+ * @}
+ */ /* end of group MCM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MSCM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MSCM_Peripheral_Access_Layer MSCM Peripheral Access Layer
+ * @{
+ */
+
+/** MSCM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t CPXTYPE;                           /**< Processor X Type Register, offset: 0x0 */
+  __I  uint32_t CPXNUM;                            /**< Processor X Number Register, offset: 0x4 */
+  __I  uint32_t CPXMASTER;                         /**< Processor X Master Register, offset: 0x8 */
+  __I  uint32_t CPXCOUNT;                          /**< Processor X Count Register, offset: 0xC */
+  __I  uint32_t CPXCFG0;                           /**< Processor X Configuration Register 0, offset: 0x10 */
+  __I  uint32_t CPXCFG1;                           /**< Processor X Configuration Register 1, offset: 0x14 */
+  __I  uint32_t CPXCFG2;                           /**< Processor X Configuration Register 2, offset: 0x18 */
+  __I  uint32_t CPXCFG3;                           /**< Processor X Configuration Register 3, offset: 0x1C */
+  struct {                                         /* offset: 0x20, array step: 0x20 */
+    __I  uint32_t TYPE;                              /**< Processor 0 Type Register..Processor 1 Type Register, array offset: 0x20, array step: 0x20 */
+    __I  uint32_t NUM;                               /**< Processor 0 Number Register..Processor 1 Number Register, array offset: 0x24, array step: 0x20 */
+    __I  uint32_t MASTER;                            /**< Processor 0 Master Register..Processor 1 Master Register, array offset: 0x28, array step: 0x20 */
+    __I  uint32_t COUNT;                             /**< Processor 0 Count Register..Processor 1 Count Register, array offset: 0x2C, array step: 0x20 */
+    __I  uint32_t CFG0;                              /**< Processor 0 Configuration Register 0..Processor 1 Configuration Register 0, array offset: 0x30, array step: 0x20 */
+    __I  uint32_t CFG1;                              /**< Processor 0 Configuration Register 1..Processor 1 Configuration Register 1, array offset: 0x34, array step: 0x20 */
+    __I  uint32_t CFG2;                              /**< Processor 0 Configuration Register 2..Processor 1 Configuration Register 2, array offset: 0x38, array step: 0x20 */
+    __I  uint32_t CFG3;                              /**< Processor 0 Configuration Register 3..Processor 1 Configuration Register 3, array offset: 0x3C, array step: 0x20 */
+  } CP[2];
+       uint8_t RESERVED_0[928];
+  __IO uint32_t OCMDR0;                            /**< On-Chip Memory Descriptor Register, offset: 0x400 */
+  __IO uint32_t OCMDR1;                            /**< On-Chip Memory Descriptor Register, offset: 0x404 */
+  __IO uint32_t OCMDR2;                            /**< On-Chip Memory Descriptor Register, offset: 0x408 */
+  __IO uint32_t OCMDR3;                            /**< On-Chip Memory Descriptor Register, offset: 0x40C */
+} MSCM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MSCM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MSCM_Register_Masks MSCM Register Masks
+ * @{
+ */
+
+/*! @name CPXTYPE - Processor X Type Register */
+/*! @{ */
+#define MSCM_CPXTYPE_RYPZ_MASK                   (0xFFU)
+#define MSCM_CPXTYPE_RYPZ_SHIFT                  (0U)
+#define MSCM_CPXTYPE_RYPZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXTYPE_RYPZ_SHIFT)) & MSCM_CPXTYPE_RYPZ_MASK)
+#define MSCM_CPXTYPE_PERSONALITY_MASK            (0xFFFFFF00U)
+#define MSCM_CPXTYPE_PERSONALITY_SHIFT           (8U)
+#define MSCM_CPXTYPE_PERSONALITY(x)              (((uint32_t)(((uint32_t)(x)) << MSCM_CPXTYPE_PERSONALITY_SHIFT)) & MSCM_CPXTYPE_PERSONALITY_MASK)
+/*! @} */
+
+/*! @name CPXNUM - Processor X Number Register */
+/*! @{ */
+#define MSCM_CPXNUM_CPN_MASK                     (0x1U)
+#define MSCM_CPXNUM_CPN_SHIFT                    (0U)
+#define MSCM_CPXNUM_CPN(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXNUM_CPN_SHIFT)) & MSCM_CPXNUM_CPN_MASK)
+/*! @} */
+
+/*! @name CPXMASTER - Processor X Master Register */
+/*! @{ */
+#define MSCM_CPXMASTER_PPMN_MASK                 (0x3FU)
+#define MSCM_CPXMASTER_PPMN_SHIFT                (0U)
+#define MSCM_CPXMASTER_PPMN(x)                   (((uint32_t)(((uint32_t)(x)) << MSCM_CPXMASTER_PPMN_SHIFT)) & MSCM_CPXMASTER_PPMN_MASK)
+/*! @} */
+
+/*! @name CPXCOUNT - Processor X Count Register */
+/*! @{ */
+#define MSCM_CPXCOUNT_PCNT_MASK                  (0x3U)
+#define MSCM_CPXCOUNT_PCNT_SHIFT                 (0U)
+#define MSCM_CPXCOUNT_PCNT(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCOUNT_PCNT_SHIFT)) & MSCM_CPXCOUNT_PCNT_MASK)
+/*! @} */
+
+/*! @name CPXCFG0 - Processor X Configuration Register 0 */
+/*! @{ */
+#define MSCM_CPXCFG0_DCWY_MASK                   (0xFFU)
+#define MSCM_CPXCFG0_DCWY_SHIFT                  (0U)
+#define MSCM_CPXCFG0_DCWY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_DCWY_SHIFT)) & MSCM_CPXCFG0_DCWY_MASK)
+#define MSCM_CPXCFG0_DCSZ_MASK                   (0xFF00U)
+#define MSCM_CPXCFG0_DCSZ_SHIFT                  (8U)
+#define MSCM_CPXCFG0_DCSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_DCSZ_SHIFT)) & MSCM_CPXCFG0_DCSZ_MASK)
+#define MSCM_CPXCFG0_ICWY_MASK                   (0xFF0000U)
+#define MSCM_CPXCFG0_ICWY_SHIFT                  (16U)
+#define MSCM_CPXCFG0_ICWY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_ICWY_SHIFT)) & MSCM_CPXCFG0_ICWY_MASK)
+#define MSCM_CPXCFG0_ICSZ_MASK                   (0xFF000000U)
+#define MSCM_CPXCFG0_ICSZ_SHIFT                  (24U)
+#define MSCM_CPXCFG0_ICSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_ICSZ_SHIFT)) & MSCM_CPXCFG0_ICSZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG1 - Processor X Configuration Register 1 */
+/*! @{ */
+#define MSCM_CPXCFG1_L2WY_MASK                   (0xFF0000U)
+#define MSCM_CPXCFG1_L2WY_SHIFT                  (16U)
+#define MSCM_CPXCFG1_L2WY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG1_L2WY_SHIFT)) & MSCM_CPXCFG1_L2WY_MASK)
+#define MSCM_CPXCFG1_L2SZ_MASK                   (0xFF000000U)
+#define MSCM_CPXCFG1_L2SZ_SHIFT                  (24U)
+#define MSCM_CPXCFG1_L2SZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG1_L2SZ_SHIFT)) & MSCM_CPXCFG1_L2SZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG2 - Processor X Configuration Register 2 */
+/*! @{ */
+#define MSCM_CPXCFG2_TMUSZ_MASK                  (0xFF00U)
+#define MSCM_CPXCFG2_TMUSZ_SHIFT                 (8U)
+#define MSCM_CPXCFG2_TMUSZ(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG2_TMUSZ_SHIFT)) & MSCM_CPXCFG2_TMUSZ_MASK)
+#define MSCM_CPXCFG2_TMLSZ_MASK                  (0xFF000000U)
+#define MSCM_CPXCFG2_TMLSZ_SHIFT                 (24U)
+#define MSCM_CPXCFG2_TMLSZ(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG2_TMLSZ_SHIFT)) & MSCM_CPXCFG2_TMLSZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG3 - Processor X Configuration Register 3 */
+/*! @{ */
+#define MSCM_CPXCFG3_FPU_MASK                    (0x1U)
+#define MSCM_CPXCFG3_FPU_SHIFT                   (0U)
+/*! FPU - Floating Point Unit
+ *  0b0..FPU support is not included.
+ *  0b1..FPU support is included.
+ */
+#define MSCM_CPXCFG3_FPU(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_FPU_SHIFT)) & MSCM_CPXCFG3_FPU_MASK)
+#define MSCM_CPXCFG3_SIMD_MASK                   (0x2U)
+#define MSCM_CPXCFG3_SIMD_SHIFT                  (1U)
+/*! SIMD - SIMD/NEON instruction support
+ *  0b0..SIMD/NEON support is not included.
+ *  0b1..SIMD/NEON support is included.
+ */
+#define MSCM_CPXCFG3_SIMD(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_SIMD_SHIFT)) & MSCM_CPXCFG3_SIMD_MASK)
+#define MSCM_CPXCFG3_JAZ_MASK                    (0x4U)
+#define MSCM_CPXCFG3_JAZ_SHIFT                   (2U)
+/*! JAZ - Jazelle support
+ *  0b0..Jazelle support is not included.
+ *  0b1..Jazelle support is included.
+ */
+#define MSCM_CPXCFG3_JAZ(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_JAZ_SHIFT)) & MSCM_CPXCFG3_JAZ_MASK)
+#define MSCM_CPXCFG3_MMU_MASK                    (0x8U)
+#define MSCM_CPXCFG3_MMU_SHIFT                   (3U)
+/*! MMU - Memory Management Unit
+ *  0b0..MMU support is not included.
+ *  0b1..MMU support is included.
+ */
+#define MSCM_CPXCFG3_MMU(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_MMU_SHIFT)) & MSCM_CPXCFG3_MMU_MASK)
+#define MSCM_CPXCFG3_TZ_MASK                     (0x10U)
+#define MSCM_CPXCFG3_TZ_SHIFT                    (4U)
+/*! TZ - Trust Zone
+ *  0b0..Trust Zone support is not included.
+ *  0b1..Trust Zone support is included.
+ */
+#define MSCM_CPXCFG3_TZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_TZ_SHIFT)) & MSCM_CPXCFG3_TZ_MASK)
+#define MSCM_CPXCFG3_CMP_MASK                    (0x20U)
+#define MSCM_CPXCFG3_CMP_SHIFT                   (5U)
+/*! CMP - Core Memory Protection unit
+ *  0b0..Core Memory Protection is not included.
+ *  0b1..Core Memory Protection is included.
+ */
+#define MSCM_CPXCFG3_CMP(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_CMP_SHIFT)) & MSCM_CPXCFG3_CMP_MASK)
+#define MSCM_CPXCFG3_BB_MASK                     (0x40U)
+#define MSCM_CPXCFG3_BB_SHIFT                    (6U)
+/*! BB - Bit Banding
+ *  0b0..Bit Banding is not supported.
+ *  0b1..Bit Banding is supported.
+ */
+#define MSCM_CPXCFG3_BB(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_BB_SHIFT)) & MSCM_CPXCFG3_BB_MASK)
+#define MSCM_CPXCFG3_SBP_MASK                    (0x300U)
+#define MSCM_CPXCFG3_SBP_SHIFT                   (8U)
+#define MSCM_CPXCFG3_SBP(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_SBP_SHIFT)) & MSCM_CPXCFG3_SBP_MASK)
+/*! @} */
+
+/*! @name TYPE - Processor 0 Type Register..Processor 1 Type Register */
+/*! @{ */
+#define MSCM_TYPE_RYPZ_MASK                      (0xFFU)
+#define MSCM_TYPE_RYPZ_SHIFT                     (0U)
+#define MSCM_TYPE_RYPZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_TYPE_RYPZ_SHIFT)) & MSCM_TYPE_RYPZ_MASK)
+#define MSCM_TYPE_PERSONALITY_MASK               (0xFFFFFF00U)
+#define MSCM_TYPE_PERSONALITY_SHIFT              (8U)
+#define MSCM_TYPE_PERSONALITY(x)                 (((uint32_t)(((uint32_t)(x)) << MSCM_TYPE_PERSONALITY_SHIFT)) & MSCM_TYPE_PERSONALITY_MASK)
+/*! @} */
+
+/* The count of MSCM_TYPE */
+#define MSCM_TYPE_COUNT                          (2U)
+
+/*! @name NUM - Processor 0 Number Register..Processor 1 Number Register */
+/*! @{ */
+#define MSCM_NUM_CPN_MASK                        (0x1U)
+#define MSCM_NUM_CPN_SHIFT                       (0U)
+#define MSCM_NUM_CPN(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_NUM_CPN_SHIFT)) & MSCM_NUM_CPN_MASK)
+/*! @} */
+
+/* The count of MSCM_NUM */
+#define MSCM_NUM_COUNT                           (2U)
+
+/*! @name MASTER - Processor 0 Master Register..Processor 1 Master Register */
+/*! @{ */
+#define MSCM_MASTER_PPMN_MASK                    (0x3FU)
+#define MSCM_MASTER_PPMN_SHIFT                   (0U)
+#define MSCM_MASTER_PPMN(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_MASTER_PPMN_SHIFT)) & MSCM_MASTER_PPMN_MASK)
+/*! @} */
+
+/* The count of MSCM_MASTER */
+#define MSCM_MASTER_COUNT                        (2U)
+
+/*! @name COUNT - Processor 0 Count Register..Processor 1 Count Register */
+/*! @{ */
+#define MSCM_COUNT_PCNT_MASK                     (0x3U)
+#define MSCM_COUNT_PCNT_SHIFT                    (0U)
+#define MSCM_COUNT_PCNT(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_COUNT_PCNT_SHIFT)) & MSCM_COUNT_PCNT_MASK)
+/*! @} */
+
+/* The count of MSCM_COUNT */
+#define MSCM_COUNT_COUNT                         (2U)
+
+/*! @name CFG0 - Processor 0 Configuration Register 0..Processor 1 Configuration Register 0 */
+/*! @{ */
+#define MSCM_CFG0_DCWY_MASK                      (0xFFU)
+#define MSCM_CFG0_DCWY_SHIFT                     (0U)
+#define MSCM_CFG0_DCWY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_DCWY_SHIFT)) & MSCM_CFG0_DCWY_MASK)
+#define MSCM_CFG0_DCSZ_MASK                      (0xFF00U)
+#define MSCM_CFG0_DCSZ_SHIFT                     (8U)
+#define MSCM_CFG0_DCSZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_DCSZ_SHIFT)) & MSCM_CFG0_DCSZ_MASK)
+#define MSCM_CFG0_ICWY_MASK                      (0xFF0000U)
+#define MSCM_CFG0_ICWY_SHIFT                     (16U)
+#define MSCM_CFG0_ICWY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_ICWY_SHIFT)) & MSCM_CFG0_ICWY_MASK)
+#define MSCM_CFG0_ICSZ_MASK                      (0xFF000000U)
+#define MSCM_CFG0_ICSZ_SHIFT                     (24U)
+#define MSCM_CFG0_ICSZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_ICSZ_SHIFT)) & MSCM_CFG0_ICSZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG0 */
+#define MSCM_CFG0_COUNT                          (2U)
+
+/*! @name CFG1 - Processor 0 Configuration Register 1..Processor 1 Configuration Register 1 */
+/*! @{ */
+#define MSCM_CFG1_L2WY_MASK                      (0xFF0000U)
+#define MSCM_CFG1_L2WY_SHIFT                     (16U)
+#define MSCM_CFG1_L2WY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG1_L2WY_SHIFT)) & MSCM_CFG1_L2WY_MASK)
+#define MSCM_CFG1_L2SZ_MASK                      (0xFF000000U)
+#define MSCM_CFG1_L2SZ_SHIFT                     (24U)
+#define MSCM_CFG1_L2SZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG1_L2SZ_SHIFT)) & MSCM_CFG1_L2SZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG1 */
+#define MSCM_CFG1_COUNT                          (2U)
+
+/*! @name CFG2 - Processor 0 Configuration Register 2..Processor 1 Configuration Register 2 */
+/*! @{ */
+#define MSCM_CFG2_TMUSZ_MASK                     (0xFF00U)
+#define MSCM_CFG2_TMUSZ_SHIFT                    (8U)
+#define MSCM_CFG2_TMUSZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CFG2_TMUSZ_SHIFT)) & MSCM_CFG2_TMUSZ_MASK)
+#define MSCM_CFG2_TMLSZ_MASK                     (0xFF000000U)
+#define MSCM_CFG2_TMLSZ_SHIFT                    (24U)
+#define MSCM_CFG2_TMLSZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CFG2_TMLSZ_SHIFT)) & MSCM_CFG2_TMLSZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG2 */
+#define MSCM_CFG2_COUNT                          (2U)
+
+/*! @name CFG3 - Processor 0 Configuration Register 3..Processor 1 Configuration Register 3 */
+/*! @{ */
+#define MSCM_CFG3_FPU_MASK                       (0x1U)
+#define MSCM_CFG3_FPU_SHIFT                      (0U)
+/*! FPU - Floating Point Unit
+ *  0b0..FPU support is not included.
+ *  0b1..FPU support is included.
+ */
+#define MSCM_CFG3_FPU(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_FPU_SHIFT)) & MSCM_CFG3_FPU_MASK)
+#define MSCM_CFG3_SIMD_MASK                      (0x2U)
+#define MSCM_CFG3_SIMD_SHIFT                     (1U)
+/*! SIMD - SIMD/NEON instruction support
+ *  0b0..SIMD/NEON support is not included.
+ *  0b1..SIMD/NEON support is included.
+ */
+#define MSCM_CFG3_SIMD(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_SIMD_SHIFT)) & MSCM_CFG3_SIMD_MASK)
+#define MSCM_CFG3_JAZ_MASK                       (0x4U)
+#define MSCM_CFG3_JAZ_SHIFT                      (2U)
+/*! JAZ - Jazelle support
+ *  0b0..Jazelle support is not included.
+ *  0b1..Jazelle support is included.
+ */
+#define MSCM_CFG3_JAZ(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_JAZ_SHIFT)) & MSCM_CFG3_JAZ_MASK)
+#define MSCM_CFG3_MMU_MASK                       (0x8U)
+#define MSCM_CFG3_MMU_SHIFT                      (3U)
+/*! MMU - Memory Management Unit
+ *  0b0..MMU support is not included.
+ *  0b1..MMU support is included.
+ */
+#define MSCM_CFG3_MMU(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_MMU_SHIFT)) & MSCM_CFG3_MMU_MASK)
+#define MSCM_CFG3_TZ_MASK                        (0x10U)
+#define MSCM_CFG3_TZ_SHIFT                       (4U)
+/*! TZ - Trust Zone
+ *  0b0..Trust Zone support is not included.
+ *  0b1..Trust Zone support is included.
+ */
+#define MSCM_CFG3_TZ(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_TZ_SHIFT)) & MSCM_CFG3_TZ_MASK)
+#define MSCM_CFG3_CMP_MASK                       (0x20U)
+#define MSCM_CFG3_CMP_SHIFT                      (5U)
+/*! CMP - Core Memory Protection unit
+ *  0b0..Core Memory Protection is not included.
+ *  0b1..Core Memory Protection is included.
+ */
+#define MSCM_CFG3_CMP(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_CMP_SHIFT)) & MSCM_CFG3_CMP_MASK)
+#define MSCM_CFG3_BB_MASK                        (0x40U)
+#define MSCM_CFG3_BB_SHIFT                       (6U)
+/*! BB - Bit Banding
+ *  0b0..Bit Banding is not supported.
+ *  0b1..Bit Banding is supported.
+ */
+#define MSCM_CFG3_BB(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_BB_SHIFT)) & MSCM_CFG3_BB_MASK)
+#define MSCM_CFG3_SBP_MASK                       (0x300U)
+#define MSCM_CFG3_SBP_SHIFT                      (8U)
+#define MSCM_CFG3_SBP(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_SBP_SHIFT)) & MSCM_CFG3_SBP_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG3 */
+#define MSCM_CFG3_COUNT                          (2U)
+
+/*! @name OCMDR0 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR0_OCM1_MASK                    (0x30U)
+#define MSCM_OCMDR0_OCM1_SHIFT                   (4U)
+#define MSCM_OCMDR0_OCM1(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCM1_SHIFT)) & MSCM_OCMDR0_OCM1_MASK)
+#define MSCM_OCMDR0_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR0_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR0_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMPU_SHIFT)) & MSCM_OCMDR0_OCMPU_MASK)
+#define MSCM_OCMDR0_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR0_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR0_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMT_SHIFT)) & MSCM_OCMDR0_OCMT_MASK)
+#define MSCM_OCMDR0_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR0_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR0_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_RO_SHIFT)) & MSCM_OCMDR0_RO_MASK)
+#define MSCM_OCMDR0_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR0_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR0_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMW_SHIFT)) & MSCM_OCMDR0_OCMW_MASK)
+#define MSCM_OCMDR0_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR0_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR0_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMSZ_SHIFT)) & MSCM_OCMDR0_OCMSZ_MASK)
+#define MSCM_OCMDR0_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR0_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR0_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMSZH_SHIFT)) & MSCM_OCMDR0_OCMSZH_MASK)
+#define MSCM_OCMDR0_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR0_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR0_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_V_SHIFT)) & MSCM_OCMDR0_V_MASK)
+/*! @} */
+
+/*! @name OCMDR1 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR1_OCM1_MASK                    (0x30U)
+#define MSCM_OCMDR1_OCM1_SHIFT                   (4U)
+#define MSCM_OCMDR1_OCM1(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCM1_SHIFT)) & MSCM_OCMDR1_OCM1_MASK)
+#define MSCM_OCMDR1_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR1_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR1_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMPU_SHIFT)) & MSCM_OCMDR1_OCMPU_MASK)
+#define MSCM_OCMDR1_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR1_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR1_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMT_SHIFT)) & MSCM_OCMDR1_OCMT_MASK)
+#define MSCM_OCMDR1_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR1_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR1_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_RO_SHIFT)) & MSCM_OCMDR1_RO_MASK)
+#define MSCM_OCMDR1_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR1_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR1_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMW_SHIFT)) & MSCM_OCMDR1_OCMW_MASK)
+#define MSCM_OCMDR1_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR1_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR1_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMSZ_SHIFT)) & MSCM_OCMDR1_OCMSZ_MASK)
+#define MSCM_OCMDR1_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR1_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR1_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMSZH_SHIFT)) & MSCM_OCMDR1_OCMSZH_MASK)
+#define MSCM_OCMDR1_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR1_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR1_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_V_SHIFT)) & MSCM_OCMDR1_V_MASK)
+/*! @} */
+
+/*! @name OCMDR2 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR2_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR2_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR2_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMPU_SHIFT)) & MSCM_OCMDR2_OCMPU_MASK)
+#define MSCM_OCMDR2_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR2_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR2_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMT_SHIFT)) & MSCM_OCMDR2_OCMT_MASK)
+#define MSCM_OCMDR2_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR2_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR2_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_RO_SHIFT)) & MSCM_OCMDR2_RO_MASK)
+#define MSCM_OCMDR2_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR2_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR2_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMW_SHIFT)) & MSCM_OCMDR2_OCMW_MASK)
+#define MSCM_OCMDR2_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR2_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR2_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMSZ_SHIFT)) & MSCM_OCMDR2_OCMSZ_MASK)
+#define MSCM_OCMDR2_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR2_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR2_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMSZH_SHIFT)) & MSCM_OCMDR2_OCMSZH_MASK)
+#define MSCM_OCMDR2_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR2_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR2_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_V_SHIFT)) & MSCM_OCMDR2_V_MASK)
+/*! @} */
+
+/*! @name OCMDR3 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR3_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR3_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR3_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMPU_SHIFT)) & MSCM_OCMDR3_OCMPU_MASK)
+#define MSCM_OCMDR3_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR3_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR3_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMT_SHIFT)) & MSCM_OCMDR3_OCMT_MASK)
+#define MSCM_OCMDR3_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR3_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR3_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_RO_SHIFT)) & MSCM_OCMDR3_RO_MASK)
+#define MSCM_OCMDR3_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR3_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR3_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMW_SHIFT)) & MSCM_OCMDR3_OCMW_MASK)
+#define MSCM_OCMDR3_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR3_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR3_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMSZ_SHIFT)) & MSCM_OCMDR3_OCMSZ_MASK)
+#define MSCM_OCMDR3_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR3_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR3_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMSZH_SHIFT)) & MSCM_OCMDR3_OCMSZH_MASK)
+#define MSCM_OCMDR3_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR3_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR3_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_V_SHIFT)) & MSCM_OCMDR3_V_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MSCM_Register_Masks */
+
+
+/* MSCM - Peripheral instance base addresses */
+/** Peripheral MSCM base address */
+#define MSCM_BASE                                (0x40001000u)
+/** Peripheral MSCM base pointer */
+#define MSCM                                     ((MSCM_Type *)MSCM_BASE)
+/** Array initializer of MSCM peripheral base addresses */
+#define MSCM_BASE_ADDRS                          { MSCM_BASE }
+/** Array initializer of MSCM peripheral base pointers */
+#define MSCM_BASE_PTRS                           { MSCM }
+
+/*!
+ * @}
+ */ /* end of group MSCM_Peripheral_Access_Layer */
+
+/*!
+ * @brief Core boot mode.
+ */
+typedef enum _mu_core_boot_mode
+{
+    kMU_CoreBootFromDflashBase = 0x00U, /*!< Boot from Dflash base.  */
+    kMU_CoreBootFromCore1RamBase = 0x02U, /*!< Boot from ZERO RISCY RAM base. */
+} mu_core_boot_mode_t;
+/*!
+ * @brief Power mode on the other side definition.
+ */
+typedef enum _mu_power_mode
+{
+    kMU_PowerModeRun = 0x00U,  /*!< Run mode.           */
+    kMU_PowerModeCoo = 0x01U,  /*!< COO mode.           */
+    kMU_PowerModeWait = 0x02U, /*!< WAIT mode.          */
+    kMU_PowerModeStop = 0x03U, /*!< STOP/VLPS mode.     */
+    kMU_PowerModeDsm = 0x04U   /*!< DSM: LLS/VLLS mode. */
+} mu_power_mode_t;
+
+
+/* ----------------------------------------------------------------------------
+   -- MU Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MU_Peripheral_Access_Layer MU Peripheral Access Layer
+ * @{
+ */
+
+/** MU - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VER;                               /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PAR;                               /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[24];
+  __IO uint32_t TR[4];                             /**< Transmit Register, array offset: 0x20, array step: 0x4 */
+       uint8_t RESERVED_1[16];
+  __I  uint32_t RR[4];                             /**< Receive Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_2[16];
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x60 */
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x64 */
+  __IO uint32_t CCR;                               /**< Core Control Register, offset: 0x68 */
+} MU_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MU Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MU_Register_Masks MU Register Masks
+ * @{
+ */
+
+/*! @name VER - Version ID Register */
+/*! @{ */
+#define MU_VER_FEATURE_MASK                      (0xFFFFU)
+#define MU_VER_FEATURE_SHIFT                     (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b000000000000x1xx..Core Control and Status Registers are implemented in both MUA and MUB.
+ *  0b000000000000xx1x..RAIP/RAIE register bits are implemented.
+ *  0b000000000000xxx0..Standard features implemented
+ */
+#define MU_VER_FEATURE(x)                        (((uint32_t)(((uint32_t)(x)) << MU_VER_FEATURE_SHIFT)) & MU_VER_FEATURE_MASK)
+#define MU_VER_MINOR_MASK                        (0xFF0000U)
+#define MU_VER_MINOR_SHIFT                       (16U)
+#define MU_VER_MINOR(x)                          (((uint32_t)(((uint32_t)(x)) << MU_VER_MINOR_SHIFT)) & MU_VER_MINOR_MASK)
+#define MU_VER_MAJOR_MASK                        (0xFF000000U)
+#define MU_VER_MAJOR_SHIFT                       (24U)
+#define MU_VER_MAJOR(x)                          (((uint32_t)(((uint32_t)(x)) << MU_VER_MAJOR_SHIFT)) & MU_VER_MAJOR_MASK)
+/*! @} */
+
+/*! @name PAR - Parameter Register */
+/*! @{ */
+#define MU_PAR_PARAMETER_MASK                    (0xFFFFFFFFU)
+#define MU_PAR_PARAMETER_SHIFT                   (0U)
+#define MU_PAR_PARAMETER(x)                      (((uint32_t)(((uint32_t)(x)) << MU_PAR_PARAMETER_SHIFT)) & MU_PAR_PARAMETER_MASK)
+/*! @} */
+
+/*! @name TR - Transmit Register */
+/*! @{ */
+#define MU_TR_DATA_MASK                          (0xFFFFFFFFU)
+#define MU_TR_DATA_SHIFT                         (0U)
+#define MU_TR_DATA(x)                            (((uint32_t)(((uint32_t)(x)) << MU_TR_DATA_SHIFT)) & MU_TR_DATA_MASK)
+/*! @} */
+
+/* The count of MU_TR */
+#define MU_TR_COUNT                              (4U)
+
+/*! @name RR - Receive Register */
+/*! @{ */
+#define MU_RR_DATA_MASK                          (0xFFFFFFFFU)
+#define MU_RR_DATA_SHIFT                         (0U)
+#define MU_RR_DATA(x)                            (((uint32_t)(((uint32_t)(x)) << MU_RR_DATA_SHIFT)) & MU_RR_DATA_MASK)
+/*! @} */
+
+/* The count of MU_RR */
+#define MU_RR_COUNT                              (4U)
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define MU_SR_Fn_MASK                            (0x7U)
+#define MU_SR_Fn_SHIFT                           (0U)
+/*! Fn - Fn
+ *  0b000..Fn bit in the MUB CR register is written 0 (default).
+ *  0b001..Fn bit in the MUB CR register is written 1.
+ */
+#define MU_SR_Fn(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_Fn_SHIFT)) & MU_SR_Fn_MASK)
+#define MU_SR_NMIC_MASK                          (0x8U)
+#define MU_SR_NMIC_SHIFT                         (3U)
+/*! NMIC - NMIC
+ *  0b0..Default
+ *  0b1..Writing "1" clears the NMI bit in the MUB CR register.
+ */
+#define MU_SR_NMIC(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_NMIC_SHIFT)) & MU_SR_NMIC_MASK)
+#define MU_SR_EP_MASK                            (0x10U)
+#define MU_SR_EP_SHIFT                           (4U)
+/*! EP - EP
+ *  0b0..The MUA side event is not pending (default).
+ *  0b1..The MUA side event is pending.
+ */
+#define MU_SR_EP(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_EP_SHIFT)) & MU_SR_EP_MASK)
+#define MU_SR_HRIP_MASK                          (0x80U)
+#define MU_SR_HRIP_SHIFT                         (7U)
+/*! HRIP - HRIP
+ *  0b0..MUB didn't issue hardware reset to Processor A
+ *  0b1..MUB had initiated a hardware reset to Processor A through HR bit.
+ */
+#define MU_SR_HRIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_HRIP_SHIFT)) & MU_SR_HRIP_MASK)
+#define MU_SR_FUP_MASK                           (0x100U)
+#define MU_SR_FUP_SHIFT                          (8U)
+/*! FUP - FUP
+ *  0b0..No flags updated, initiated by the MUA, in progress (default)
+ *  0b1..MUA initiated flags update, processing
+ */
+#define MU_SR_FUP(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_FUP_SHIFT)) & MU_SR_FUP_MASK)
+#define MU_SR_RDIP_MASK                          (0x200U)
+#define MU_SR_RDIP_SHIFT                         (9U)
+/*! RDIP - RDIP
+ *  0b0..Processor B did not exit reset
+ *  0b1..Processor B exited from reset
+ */
+#define MU_SR_RDIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_RDIP_SHIFT)) & MU_SR_RDIP_MASK)
+#define MU_SR_RAIP_MASK                          (0x400U)
+#define MU_SR_RAIP_SHIFT                         (10U)
+/*! RAIP - RAIP
+ *  0b0..Processor B did not enter reset
+ *  0b1..Processor B entered reset
+ */
+#define MU_SR_RAIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_RAIP_SHIFT)) & MU_SR_RAIP_MASK)
+#define MU_SR_MURIP_MASK                         (0x800U)
+#define MU_SR_MURIP_SHIFT                        (11U)
+/*! MURIP - MURIP
+ *  0b0..Processor B did not issue MU reset
+ *  0b1..Processor B issued MU reset
+ */
+#define MU_SR_MURIP(x)                           (((uint32_t)(((uint32_t)(x)) << MU_SR_MURIP_SHIFT)) & MU_SR_MURIP_MASK)
+#define MU_SR_PM_MASK                            (0x7000U)
+#define MU_SR_PM_SHIFT                           (12U)
+/*! PM - PM
+ *  0b000..The MUB processor is in Run Mode.
+ *  0b001..The MUB processor is in COO Mode.
+ *  0b010..The MUB processor is in WAIT Mode.
+ *  0b011..The MUB processor is in STOP/VLPS Mode.
+ *  0b100..The MUB processor is in LLS/VLLS Mode.
+ */
+#define MU_SR_PM(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_PM_SHIFT)) & MU_SR_PM_MASK)
+#define MU_SR_TEn_MASK                           (0xF00000U)
+#define MU_SR_TEn_SHIFT                          (20U)
+/*! TEn - TEn
+ *  0b0000..MUA TRn register is not empty.
+ *  0b0001..MUA TRn register is empty (default).
+ */
+#define MU_SR_TEn(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_TEn_SHIFT)) & MU_SR_TEn_MASK)
+#define MU_SR_RFn_MASK                           (0xF000000U)
+#define MU_SR_RFn_SHIFT                          (24U)
+/*! RFn - RFn
+ *  0b0000..MUA RRn register is not full (default).
+ *  0b0001..MUA RRn register has received data from MUB TRn register and is ready to be read by the MUA.
+ */
+#define MU_SR_RFn(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_RFn_SHIFT)) & MU_SR_RFn_MASK)
+#define MU_SR_GIPn_MASK                          (0xF0000000U)
+#define MU_SR_GIPn_SHIFT                         (28U)
+/*! GIPn - GIPn
+ *  0b0000..MUA general purpose interrupt n is not pending. (default)
+ *  0b0001..MUA general purpose interrupt n is pending.
+ */
+#define MU_SR_GIPn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_GIPn_SHIFT)) & MU_SR_GIPn_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define MU_CR_Fn_MASK                            (0x7U)
+#define MU_CR_Fn_SHIFT                           (0U)
+/*! Fn - Fn
+ *  0b000..Clears the Fn bit in the SR register.
+ *  0b001..Sets the Fn bit in the SR register.
+ */
+#define MU_CR_Fn(x)                              (((uint32_t)(((uint32_t)(x)) << MU_CR_Fn_SHIFT)) & MU_CR_Fn_MASK)
+#define MU_CR_NMI_MASK                           (0x8U)
+#define MU_CR_NMI_SHIFT                          (3U)
+/*! NMI - NMI
+ *  0b0..Non-maskable interrupt is not issued to the Processor B by the Processor A (default).
+ *  0b1..Non-maskable interrupt is issued to the Processor B by the Processor A.
+ */
+#define MU_CR_NMI(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CR_NMI_SHIFT)) & MU_CR_NMI_MASK)
+#define MU_CR_MUR_MASK                           (0x20U)
+#define MU_CR_MUR_SHIFT                          (5U)
+/*! MUR - MUR
+ *  0b0..N/A. Self clearing bit (default).
+ *  0b1..Asserts the MU reset.
+ */
+#define MU_CR_MUR(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CR_MUR_SHIFT)) & MU_CR_MUR_MASK)
+#define MU_CR_RDIE_MASK                          (0x40U)
+#define MU_CR_RDIE_SHIFT                         (6U)
+/*! RDIE - RDIE
+ *  0b0..Disables Processor A General Purpose Interrupt 3 request due to Processor B reset de-assertion.
+ *  0b1..Enables Processor A General Purpose Interrupt 3 request due to Processor B reset de-assertion.
+ */
+#define MU_CR_RDIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RDIE_SHIFT)) & MU_CR_RDIE_MASK)
+#define MU_CR_HRIE_MASK                          (0x80U)
+#define MU_CR_HRIE_SHIFT                         (7U)
+/*! HRIE - Processor A hardware reset interrupt enable
+ *  0b0..Disables Processor A General Purpose Interrupt 3 request due to Processor B issued HR to Processor A.
+ *  0b1..Enables Processor A General Purpose Interrupt 3 request due to Processor B issued HR to Processor A.
+ */
+#define MU_CR_HRIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_HRIE_SHIFT)) & MU_CR_HRIE_MASK)
+#define MU_CR_MURIE_MASK                         (0x800U)
+#define MU_CR_MURIE_SHIFT                        (11U)
+/*! MURIE - MURIE
+ *  0b0..Disables Processor A-side General Purpose Interrupt 3 request due to MU reset issued by MUB.
+ *  0b1..Enables Processor A-side General Purpose Interrupt 3 request due to MU reset issued by MUB.
+ */
+#define MU_CR_MURIE(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CR_MURIE_SHIFT)) & MU_CR_MURIE_MASK)
+#define MU_CR_RAIE_MASK                          (0x1000U)
+#define MU_CR_RAIE_SHIFT                         (12U)
+/*! RAIE - RAIE
+ *  0b0..Disables Processor A-side General Purpose Interrupt 3 request due to Processor B reset assertion.
+ *  0b1..Enables Processor A-side General Purpose Interrupt 3 request due to Processor B reset assertion.
+ */
+#define MU_CR_RAIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RAIE_SHIFT)) & MU_CR_RAIE_MASK)
+#define MU_CR_GIRn_MASK                          (0xF0000U)
+#define MU_CR_GIRn_SHIFT                         (16U)
+/*! GIRn - GIRn
+ *  0b0000..MUA General Interrupt n is not requested to the MUB (default).
+ *  0b0001..MUA General Interrupt n is requested to the MUB.
+ */
+#define MU_CR_GIRn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_GIRn_SHIFT)) & MU_CR_GIRn_MASK)
+#define MU_CR_TIEn_MASK                          (0xF00000U)
+#define MU_CR_TIEn_SHIFT                         (20U)
+/*! TIEn - TIEn
+ *  0b0000..Disables MUA Transmit Interrupt n. (default)
+ *  0b0001..Enables MUA Transmit Interrupt n.
+ */
+#define MU_CR_TIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_TIEn_SHIFT)) & MU_CR_TIEn_MASK)
+#define MU_CR_RIEn_MASK                          (0xF000000U)
+#define MU_CR_RIEn_SHIFT                         (24U)
+/*! RIEn - RIEn
+ *  0b0000..Disables MUA Receive Interrupt n. (default)
+ *  0b0001..Enables MUA Receive Interrupt n.
+ */
+#define MU_CR_RIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RIEn_SHIFT)) & MU_CR_RIEn_MASK)
+#define MU_CR_GIEn_MASK                          (0xF0000000U)
+#define MU_CR_GIEn_SHIFT                         (28U)
+/*! GIEn - GIEn
+ *  0b0000..Disables MUA General Interrupt n. (default)
+ *  0b0001..Enables MUA General Interrupt n.
+ */
+#define MU_CR_GIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_GIEn_SHIFT)) & MU_CR_GIEn_MASK)
+/*! @} */
+
+/*! @name CCR - Core Control Register */
+/*! @{ */
+#define MU_CCR_HR_MASK                           (0x1U)
+#define MU_CCR_HR_SHIFT                          (0U)
+/*! HR - HR
+ *  0b0..De-assert Hardware reset to the Processor B. (default)
+ *  0b1..Assert Hardware reset to the Processor B.
+ */
+#define MU_CCR_HR(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CCR_HR_SHIFT)) & MU_CCR_HR_MASK)
+#define MU_CCR_HRM_MASK                          (0x2U)
+#define MU_CCR_HRM_SHIFT                         (1U)
+/*! HRM - When set, HR bit in MUB CCR has no effect
+ *  0b0..HR bit in MUB CCR is not masked, enables the hardware reset to the Processor A (default after hardware reset).
+ *  0b1..HR bit in MUB CCR is masked, disables the hardware reset request to the Processor A.
+ */
+#define MU_CCR_HRM(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CCR_HRM_SHIFT)) & MU_CCR_HRM_MASK)
+#define MU_CCR_RSTH_MASK                         (0x4U)
+#define MU_CCR_RSTH_SHIFT                        (2U)
+/*! RSTH - Processor B Reset Hold
+ *  0b0..Release Processor B from reset
+ *  0b1..Hold Processor B in reset
+ */
+#define MU_CCR_RSTH(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_RSTH_SHIFT)) & MU_CCR_RSTH_MASK)
+#define MU_CCR_CLKE_MASK                         (0x8U)
+#define MU_CCR_CLKE_SHIFT                        (3U)
+/*! CLKE - MUB clock enable
+ *  0b0..MUB platform clock gated when MUB-side enters a stop mode.
+ *  0b1..MUB platform clock kept running after MUB-side enters a stop mode, until MUA also enters a stop mode.
+ */
+#define MU_CCR_CLKE(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_CLKE_SHIFT)) & MU_CCR_CLKE_MASK)
+#define MU_CCR_BOOT_MASK                         (0x30U)
+#define MU_CCR_BOOT_SHIFT                        (4U)
+/*! BOOT - Slave Processor B Boot Config.
+ *  0b00..Boot from Dflash base
+ *  0b01..Reserved
+ *  0b10..Boot from CM0+ RAM base
+ *  0b11..Reserved
+ */
+#define MU_CCR_BOOT(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_BOOT_SHIFT)) & MU_CCR_BOOT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MU_Register_Masks */
+
+
+/* MU - Peripheral instance base addresses */
+/** Peripheral MUA base address */
+#define MUA_BASE                                 (0x40025000u)
+/** Peripheral MUA base pointer */
+#define MUA                                      ((MU_Type *)MUA_BASE)
+/** Array initializer of MU peripheral base addresses */
+#define MU_BASE_ADDRS                            { MUA_BASE }
+/** Array initializer of MU peripheral base pointers */
+#define MU_BASE_PTRS                             { MUA }
+/** Interrupt vectors for the MU peripheral type */
+#define MU_IRQS                                  { MUA_IRQn }
+
+/*!
+ * @}
+ */ /* end of group MU_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- PCC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PCC_Peripheral_Access_Layer PCC Peripheral Access Layer
+ * @{
+ */
+
+/** PCC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CLKCFG[130];                       /**< PCC MSCM Register..PCC EXT_CLK Register, array offset: 0x0, array step: 0x4 */
+} PCC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- PCC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PCC_Register_Masks PCC Register Masks
+ * @{
+ */
+
+/*! @name CLKCFG - PCC MSCM Register..PCC EXT_CLK Register */
+/*! @{ */
+#define PCC_CLKCFG_PCD_MASK                      (0x7U)
+#define PCC_CLKCFG_PCD_SHIFT                     (0U)
+/*! PCD - Peripheral Clock Divider Select
+ *  0b000..Divide by 1.
+ *  0b001..Divide by 2.
+ *  0b010..Divide by 3.
+ *  0b011..Divide by 4.
+ *  0b100..Divide by 5.
+ *  0b101..Divide by 6.
+ *  0b110..Divide by 7.
+ *  0b111..Divide by 8.
+ */
+#define PCC_CLKCFG_PCD(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PCD_SHIFT)) & PCC_CLKCFG_PCD_MASK)
+#define PCC_CLKCFG_FRAC_MASK                     (0x8U)
+#define PCC_CLKCFG_FRAC_SHIFT                    (3U)
+/*! FRAC - Peripheral Clock Divider Fraction
+ *  0b0..Fractional value is 0.
+ *  0b1..Fractional value is 1.
+ */
+#define PCC_CLKCFG_FRAC(x)                       (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_FRAC_SHIFT)) & PCC_CLKCFG_FRAC_MASK)
+#define PCC_CLKCFG_PCS_MASK                      (0x7000000U)
+#define PCC_CLKCFG_PCS_SHIFT                     (24U)
+/*! PCS - Peripheral Clock Source Select
+ *  0b000..Clock is off. An external clock can be enabled for this peripheral.
+ *  0b001..Clock option 1
+ *  0b010..Clock option 2
+ *  0b011..Clock option 3
+ *  0b100..Clock option 4
+ *  0b101..Clock option 5
+ *  0b110..Clock option 6
+ *  0b111..Clock option 7
+ */
+#define PCC_CLKCFG_PCS(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PCS_SHIFT)) & PCC_CLKCFG_PCS_MASK)
+#define PCC_CLKCFG_INUSE_MASK                    (0x20000000U)
+#define PCC_CLKCFG_INUSE_SHIFT                   (29U)
+/*! INUSE - In use flag
+ *  0b0..Peripheral is not being used.
+ *  0b1..Peripheral is being used. Software cannot modify the existing clocking configuration.
+ */
+#define PCC_CLKCFG_INUSE(x)                      (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_INUSE_SHIFT)) & PCC_CLKCFG_INUSE_MASK)
+#define PCC_CLKCFG_CGC_MASK                      (0x40000000U)
+#define PCC_CLKCFG_CGC_SHIFT                     (30U)
+/*! CGC - Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled. The current clock selection and divider options are locked.
+ */
+#define PCC_CLKCFG_CGC(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_CGC_SHIFT)) & PCC_CLKCFG_CGC_MASK)
+#define PCC_CLKCFG_PR_MASK                       (0x80000000U)
+#define PCC_CLKCFG_PR_SHIFT                      (31U)
+/*! PR - Present
+ *  0b0..Peripheral is not present.
+ *  0b1..Peripheral is present.
+ */
+#define PCC_CLKCFG_PR(x)                         (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PR_SHIFT)) & PCC_CLKCFG_PR_MASK)
+/*! @} */
+
+/* The count of PCC_CLKCFG */
+#define PCC_CLKCFG_COUNT                         (130U)
+
+
+/*!
+ * @}
+ */ /* end of group PCC_Register_Masks */
+
+
+/* PCC - Peripheral instance base addresses */
+/** Peripheral PCC0 base address */
+#define PCC0_BASE                                (0x4002B000u)
+/** Peripheral PCC0 base pointer */
+#define PCC0                                     ((PCC_Type *)PCC0_BASE)
+/** Peripheral PCC1 base address */
+#define PCC1_BASE                                (0x41027000u)
+/** Peripheral PCC1 base pointer */
+#define PCC1                                     ((PCC_Type *)PCC1_BASE)
+/** Array initializer of PCC peripheral base addresses */
+#define PCC_BASE_ADDRS                           { PCC0_BASE, PCC1_BASE }
+/** Array initializer of PCC peripheral base pointers */
+#define PCC_BASE_PTRS                            { PCC0, PCC1 }
+#define    PCC_INSTANCE_MASK            (0xFu)
+#define    PCC_INSTANCE_SHIFT           (12u)
+#define    PCC_PERIPHERAL_MASK          (0xFFFu)
+#define    PCC_PERIPHERAL_SHIFT         (0u)
+#define    PCC_INSTANCE_0               (0u)
+#define    PCC_INSTANCE_1               (1u)
+
+#define    PCC_MSCM_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 1U)
+#define    PCC_AXBS0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 4U)
+#define    PCC_DMA0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 8U)
+#define    PCC_FLEXBUS_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 12U)
+#define    PCC_XRDC_MGR_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 20U)
+#define    PCC0_XRDC_PAC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 22U)
+#define    PCC0_XRDC_MRC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 23U)
+#define    PCC_SEMA42_0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 27U)
+#define    PCC_DMAMUX0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 33U)
+#define    PCC_EWM_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 34U)
+#define    PCC_MUA_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 37U)
+#define    PCC_CRC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 47U)
+#define    PCC_LPIT0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 48U)
+#define    PCC_TPM0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 53U)
+#define    PCC_TPM1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 54U)
+#define    PCC_TPM2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 55U)
+#define    PCC_EMVSIM0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 56U)
+#define    PCC_FLEXIO0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 57U)
+#define    PCC_LPI2C0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 58U)
+#define    PCC_LPI2C1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 59U)
+#define    PCC_LPI2C2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 60U)
+#define    PCC_I2S0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 61U)
+#define    PCC_USDHC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 62U)
+#define    PCC_LPSPI0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 63U)
+#define    PCC_LPSPI1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 64U)
+#define    PCC_LPSPI2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 65U)
+#define    PCC_LPUART0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 66U)
+#define    PCC_LPUART1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 67U)
+#define    PCC_LPUART2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 68U)
+#define    PCC_USB0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 69U)
+#define    PCC_PORTA_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 70U)
+#define    PCC_PORTB_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 71U)
+#define    PCC_PORTC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 72U)
+#define    PCC_PORTD_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 73U)
+#define    PCC_ADC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 74U)
+#define    PCC_LPDAC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 76U)
+#define    PCC_VREF_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 77U)
+#define    PCC_TRACE_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 128U)
+#define    PCC_DMA1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 8U)
+#define    PCC_GPIOE_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 15U)
+#define    PCC1_XRDC_PAC_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 22U)
+#define    PCC1_XRDC_MRC_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 23U)
+#define    PCC_SEMA42_1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 27U)
+#define    PCC_DMAMUX1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 33U)
+#define    PCC_INTMUX1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 34U)
+#define    PCC_MUB_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 36U)
+#define    PCC_CAU3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 40U)
+#define    PCC_TRNG_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 41U)
+#define    PCC_LPIT1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 42U)
+#define    PCC_TPM3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 45U)
+#define    PCC_LPI2C3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 46U)
+#define    PCC_LPSPI3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 53U)
+#define    PCC_LPUART3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 54U)
+#define    PCC_PORTE_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 55U)
+#define    PCC_MTB_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 128U)
+#define    PCC_EXT_CLK_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 129U)
+#define    PCC_MSCM              (PCC0->CLKCFG[1])
+#define    PCC_AXBS0              (PCC0->CLKCFG[4])
+#define    PCC_DMA0              (PCC0->CLKCFG[8])
+#define    PCC_FLEXBUS              (PCC0->CLKCFG[12])
+#define    PCC_XRDC_MGR              (PCC0->CLKCFG[20])
+#define    PCC0_XRDC_PAC              (PCC0->CLKCFG[22])
+#define    PCC0_XRDC_MRC              (PCC0->CLKCFG[23])
+#define    PCC_SEMA42_0              (PCC0->CLKCFG[27])
+#define    PCC_DMAMUX0              (PCC0->CLKCFG[33])
+#define    PCC_EWM              (PCC0->CLKCFG[34])
+#define    PCC_MUA              (PCC0->CLKCFG[37])
+#define    PCC_CRC0              (PCC0->CLKCFG[47])
+#define    PCC_LPIT0              (PCC0->CLKCFG[48])
+#define    PCC_TPM0              (PCC0->CLKCFG[53])
+#define    PCC_TPM1              (PCC0->CLKCFG[54])
+#define    PCC_TPM2              (PCC0->CLKCFG[55])
+#define    PCC_EMVSIM0              (PCC0->CLKCFG[56])
+#define    PCC_FLEXIO0              (PCC0->CLKCFG[57])
+#define    PCC_LPI2C0              (PCC0->CLKCFG[58])
+#define    PCC_LPI2C1              (PCC0->CLKCFG[59])
+#define    PCC_LPI2C2              (PCC0->CLKCFG[60])
+#define    PCC_I2S0              (PCC0->CLKCFG[61])
+#define    PCC_USDHC0              (PCC0->CLKCFG[62])
+#define    PCC_LPSPI0              (PCC0->CLKCFG[63])
+#define    PCC_LPSPI1              (PCC0->CLKCFG[64])
+#define    PCC_LPSPI2              (PCC0->CLKCFG[65])
+#define    PCC_LPUART0              (PCC0->CLKCFG[66])
+#define    PCC_LPUART1              (PCC0->CLKCFG[67])
+#define    PCC_LPUART2              (PCC0->CLKCFG[68])
+#define    PCC_USB0              (PCC0->CLKCFG[69])
+#define    PCC_PORTA              (PCC0->CLKCFG[70])
+#define    PCC_PORTB              (PCC0->CLKCFG[71])
+#define    PCC_PORTC              (PCC0->CLKCFG[72])
+#define    PCC_PORTD              (PCC0->CLKCFG[73])
+#define    PCC_ADC0              (PCC0->CLKCFG[74])
+#define    PCC_LPDAC0              (PCC0->CLKCFG[76])
+#define    PCC_VREF              (PCC0->CLKCFG[77])
+#define    PCC_TRACE              (PCC0->CLKCFG[128])
+#define    PCC_DMA1              (PCC1->CLKCFG[8])
+#define    PCC_GPIOE              (PCC1->CLKCFG[15])
+#define    PCC1_XRDC_PAC              (PCC1->CLKCFG[22])
+#define    PCC1_XRDC_MRC              (PCC1->CLKCFG[23])
+#define    PCC_SEMA42_1              (PCC1->CLKCFG[27])
+#define    PCC_DMAMUX1              (PCC1->CLKCFG[33])
+#define    PCC_INTMUX1              (PCC1->CLKCFG[34])
+#define    PCC_MUB              (PCC1->CLKCFG[36])
+#define    PCC_CAU3              (PCC1->CLKCFG[40])
+#define    PCC_TRNG              (PCC1->CLKCFG[41])
+#define    PCC_LPIT1              (PCC1->CLKCFG[42])
+#define    PCC_TPM3              (PCC1->CLKCFG[45])
+#define    PCC_LPI2C3              (PCC1->CLKCFG[46])
+#define    PCC_LPSPI3              (PCC1->CLKCFG[53])
+#define    PCC_LPUART3              (PCC1->CLKCFG[54])
+#define    PCC_PORTE              (PCC1->CLKCFG[55])
+#define    PCC_MTB              (PCC1->CLKCFG[128])
+#define    PCC_EXT_CLK              (PCC1->CLKCFG[129])
+
+
+/*!
+ * @}
+ */ /* end of group PCC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- PORT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PORT_Peripheral_Access_Layer PORT Peripheral Access Layer
+ * @{
+ */
+
+/** PORT - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PCR[32];                           /**< Pin Control Register 0..Pin Control Register 30, array offset: 0x0, array step: 0x4 */
+  __O  uint32_t GPCLR;                             /**< Global Pin Control Low Register, offset: 0x80 */
+  __O  uint32_t GPCHR;                             /**< Global Pin Control High Register, offset: 0x84 */
+  __O  uint32_t GICLR;                             /**< Global Interrupt Control Low Register, offset: 0x88 */
+  __O  uint32_t GICHR;                             /**< Global Interrupt Control High Register, offset: 0x8C */
+       uint8_t RESERVED_0[16];
+  __IO uint32_t ISFR;                              /**< Interrupt Status Flag Register, offset: 0xA0 */
+       uint8_t RESERVED_1[28];
+  __IO uint32_t DFER;                              /**< Digital Filter Enable Register, offset: 0xC0 */
+  __IO uint32_t DFCR;                              /**< Digital Filter Clock Register, offset: 0xC4 */
+  __IO uint32_t DFWR;                              /**< Digital Filter Width Register, offset: 0xC8 */
+} PORT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- PORT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PORT_Register_Masks PORT Register Masks
+ * @{
+ */
+
+/*! @name PCR - Pin Control Register 0..Pin Control Register 30 */
+/*! @{ */
+#define PORT_PCR_PS_MASK                         (0x1U)
+#define PORT_PCR_PS_SHIFT                        (0U)
+/*! PS - Pull Select
+ *  0b0..Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set.
+ *  0b1..Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set.
+ */
+#define PORT_PCR_PS(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PS_SHIFT)) & PORT_PCR_PS_MASK)
+#define PORT_PCR_PE_MASK                         (0x2U)
+#define PORT_PCR_PE_SHIFT                        (1U)
+/*! PE - Pull Enable
+ *  0b0..Internal pull resistor is not enabled on the corresponding pin.
+ *  0b1..Internal pull resistor is enabled on the corresponding pin, if the pin is configured as a digital input.
+ */
+#define PORT_PCR_PE(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PE_SHIFT)) & PORT_PCR_PE_MASK)
+#define PORT_PCR_SRE_MASK                        (0x4U)
+#define PORT_PCR_SRE_SHIFT                       (2U)
+/*! SRE - Slew Rate Enable
+ *  0b0..Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output.
+ *  0b1..Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output.
+ */
+#define PORT_PCR_SRE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_SRE_SHIFT)) & PORT_PCR_SRE_MASK)
+#define PORT_PCR_PFE_MASK                        (0x10U)
+#define PORT_PCR_PFE_SHIFT                       (4U)
+/*! PFE - Passive Filter Enable
+ *  0b0..Passive input filter is disabled on the corresponding pin.
+ *  0b1..Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics.
+ */
+#define PORT_PCR_PFE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PFE_SHIFT)) & PORT_PCR_PFE_MASK)
+#define PORT_PCR_ODE_MASK                        (0x20U)
+#define PORT_PCR_ODE_SHIFT                       (5U)
+/*! ODE - Open Drain Enable
+ *  0b0..Open drain output is disabled on the corresponding pin.
+ *  0b1..Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output.
+ */
+#define PORT_PCR_ODE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ODE_SHIFT)) & PORT_PCR_ODE_MASK)
+#define PORT_PCR_DSE_MASK                        (0x40U)
+#define PORT_PCR_DSE_SHIFT                       (6U)
+/*! DSE - Drive Strength Enable
+ *  0b0..Low drive strength is configured on the corresponding pin, if pin is configured as a digital output.
+ *  0b1..High drive strength is configured on the corresponding pin, if pin is configured as a digital output.
+ */
+#define PORT_PCR_DSE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_DSE_SHIFT)) & PORT_PCR_DSE_MASK)
+#define PORT_PCR_MUX_MASK                        (0x700U)
+#define PORT_PCR_MUX_SHIFT                       (8U)
+/*! MUX - Pin Mux Control
+ *  0b000..Pin disabled (Alternative 0) (analog).
+ *  0b001..Alternative 1 (GPIO).
+ *  0b010..Alternative 2 (chip-specific).
+ *  0b011..Alternative 3 (chip-specific).
+ *  0b100..Alternative 4 (chip-specific).
+ *  0b101..Alternative 5 (chip-specific).
+ *  0b110..Alternative 6 (chip-specific).
+ *  0b111..Alternative 7 (chip-specific).
+ */
+#define PORT_PCR_MUX(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_MUX_SHIFT)) & PORT_PCR_MUX_MASK)
+#define PORT_PCR_LK_MASK                         (0x8000U)
+#define PORT_PCR_LK_SHIFT                        (15U)
+/*! LK - Lock Register
+ *  0b0..Pin Control Register is not locked.
+ *  0b1..Pin Control Register is locked and cannot be updated until the next system reset.
+ */
+#define PORT_PCR_LK(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_LK_SHIFT)) & PORT_PCR_LK_MASK)
+#define PORT_PCR_IRQC_MASK                       (0xF0000U)
+#define PORT_PCR_IRQC_SHIFT                      (16U)
+/*! IRQC - Interrupt Configuration
+ *  0b0000..Interrupt Status Flag (ISF) is disabled.
+ *  0b0001..ISF flag and DMA request on rising edge.
+ *  0b0010..ISF flag and DMA request on falling edge.
+ *  0b0011..ISF flag and DMA request on either edge.
+ *  0b0100..Reserved.
+ *  0b0101..Flag sets on rising edge.
+ *  0b0110..Flag sets on falling edge.
+ *  0b0111..Flag sets on either edge.
+ *  0b1000..ISF flag and Interrupt when logic 0.
+ *  0b1001..ISF flag and Interrupt on rising-edge.
+ *  0b1010..ISF flag and Interrupt on falling-edge.
+ *  0b1011..ISF flag and Interrupt on either edge.
+ *  0b1100..ISF flag and Interrupt when logic 1.
+ *  0b1101..Enable active high trigger output, flag is disabled. [The trigger output goes to the trigger mux, which allows pins to trigger other peripherals (configurable polarity; 1 pin per port; if multiple pins are configured, then they are ORed together to create the trigger)]
+ *  0b1110..Enable active low trigger output, flag is disabled.
+ *  0b1111..Reserved.
+ */
+#define PORT_PCR_IRQC(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_PCR_IRQC_SHIFT)) & PORT_PCR_IRQC_MASK)
+#define PORT_PCR_ISF_MASK                        (0x1000000U)
+#define PORT_PCR_ISF_SHIFT                       (24U)
+/*! ISF - Interrupt Status Flag
+ *  0b0..Configured interrupt is not detected.
+ *  0b1..Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared.
+ */
+#define PORT_PCR_ISF(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ISF_SHIFT)) & PORT_PCR_ISF_MASK)
+/*! @} */
+
+/* The count of PORT_PCR */
+#define PORT_PCR_COUNT                           (32U)
+
+/*! @name GPCLR - Global Pin Control Low Register */
+/*! @{ */
+#define PORT_GPCLR_GPWD_MASK                     (0xFFFFU)
+#define PORT_GPCLR_GPWD_SHIFT                    (0U)
+#define PORT_GPCLR_GPWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWD_SHIFT)) & PORT_GPCLR_GPWD_MASK)
+#define PORT_GPCLR_GPWE_MASK                     (0xFFFF0000U)
+#define PORT_GPCLR_GPWE_SHIFT                    (16U)
+#define PORT_GPCLR_GPWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWE_SHIFT)) & PORT_GPCLR_GPWE_MASK)
+/*! @} */
+
+/*! @name GPCHR - Global Pin Control High Register */
+/*! @{ */
+#define PORT_GPCHR_GPWD_MASK                     (0xFFFFU)
+#define PORT_GPCHR_GPWD_SHIFT                    (0U)
+#define PORT_GPCHR_GPWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWD_SHIFT)) & PORT_GPCHR_GPWD_MASK)
+#define PORT_GPCHR_GPWE_MASK                     (0xFFFF0000U)
+#define PORT_GPCHR_GPWE_SHIFT                    (16U)
+#define PORT_GPCHR_GPWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWE_SHIFT)) & PORT_GPCHR_GPWE_MASK)
+/*! @} */
+
+/*! @name GICLR - Global Interrupt Control Low Register */
+/*! @{ */
+#define PORT_GICLR_GIWE_MASK                     (0xFFFFU)
+#define PORT_GICLR_GIWE_SHIFT                    (0U)
+#define PORT_GICLR_GIWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICLR_GIWE_SHIFT)) & PORT_GICLR_GIWE_MASK)
+#define PORT_GICLR_GIWD_MASK                     (0xFFFF0000U)
+#define PORT_GICLR_GIWD_SHIFT                    (16U)
+#define PORT_GICLR_GIWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICLR_GIWD_SHIFT)) & PORT_GICLR_GIWD_MASK)
+/*! @} */
+
+/*! @name GICHR - Global Interrupt Control High Register */
+/*! @{ */
+#define PORT_GICHR_GIWE_MASK                     (0xFFFFU)
+#define PORT_GICHR_GIWE_SHIFT                    (0U)
+#define PORT_GICHR_GIWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICHR_GIWE_SHIFT)) & PORT_GICHR_GIWE_MASK)
+#define PORT_GICHR_GIWD_MASK                     (0xFFFF0000U)
+#define PORT_GICHR_GIWD_SHIFT                    (16U)
+#define PORT_GICHR_GIWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICHR_GIWD_SHIFT)) & PORT_GICHR_GIWD_MASK)
+/*! @} */
+
+/*! @name ISFR - Interrupt Status Flag Register */
+/*! @{ */
+#define PORT_ISFR_ISF_MASK                       (0xFFFFFFFFU)
+#define PORT_ISFR_ISF_SHIFT                      (0U)
+#define PORT_ISFR_ISF(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_ISFR_ISF_SHIFT)) & PORT_ISFR_ISF_MASK)
+/*! @} */
+
+/*! @name DFER - Digital Filter Enable Register */
+/*! @{ */
+#define PORT_DFER_DFE_MASK                       (0xFFFFFFFFU)
+#define PORT_DFER_DFE_SHIFT                      (0U)
+#define PORT_DFER_DFE(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_DFER_DFE_SHIFT)) & PORT_DFER_DFE_MASK)
+/*! @} */
+
+/*! @name DFCR - Digital Filter Clock Register */
+/*! @{ */
+#define PORT_DFCR_CS_MASK                        (0x1U)
+#define PORT_DFCR_CS_SHIFT                       (0U)
+/*! CS - Clock Source
+ *  0b0..Digital filters are clocked by the bus clock.
+ *  0b1..Digital filters are clocked by the 8 clock.
+ */
+#define PORT_DFCR_CS(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_DFCR_CS_SHIFT)) & PORT_DFCR_CS_MASK)
+/*! @} */
+
+/*! @name DFWR - Digital Filter Width Register */
+/*! @{ */
+#define PORT_DFWR_FILT_MASK                      (0x1FU)
+#define PORT_DFWR_FILT_SHIFT                     (0U)
+#define PORT_DFWR_FILT(x)                        (((uint32_t)(((uint32_t)(x)) << PORT_DFWR_FILT_SHIFT)) & PORT_DFWR_FILT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group PORT_Register_Masks */
+
+
+/* PORT - Peripheral instance base addresses */
+/** Peripheral PORTA base address */
+#define PORTA_BASE                               (0x40046000u)
+/** Peripheral PORTA base pointer */
+#define PORTA                                    ((PORT_Type *)PORTA_BASE)
+/** Peripheral PORTB base address */
+#define PORTB_BASE                               (0x40047000u)
+/** Peripheral PORTB base pointer */
+#define PORTB                                    ((PORT_Type *)PORTB_BASE)
+/** Peripheral PORTC base address */
+#define PORTC_BASE                               (0x40048000u)
+/** Peripheral PORTC base pointer */
+#define PORTC                                    ((PORT_Type *)PORTC_BASE)
+/** Peripheral PORTD base address */
+#define PORTD_BASE                               (0x40049000u)
+/** Peripheral PORTD base pointer */
+#define PORTD                                    ((PORT_Type *)PORTD_BASE)
+/** Peripheral PORTE base address */
+#define PORTE_BASE                               (0x41037000u)
+/** Peripheral PORTE base pointer */
+#define PORTE                                    ((PORT_Type *)PORTE_BASE)
+/** Array initializer of PORT peripheral base addresses */
+#define PORT_BASE_ADDRS                          { PORTA_BASE, PORTB_BASE, PORTC_BASE, PORTD_BASE, PORTE_BASE }
+/** Array initializer of PORT peripheral base pointers */
+#define PORT_BASE_PTRS                           { PORTA, PORTB, PORTC, PORTD, PORTE }
+/** Interrupt vectors for the PORT peripheral type */
+#define PORT_IRQS                                { PORTA_IRQn, PORTB_IRQn, PORTC_IRQn, PORTD_IRQn, PORTE_IRQn }
+
+/*!
+ * @}
+ */ /* end of group PORT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- RSIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RSIM_Peripheral_Access_Layer RSIM Peripheral Access Layer
+ * @{
+ */
+
+/** RSIM - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CONTROL;                           /**< Radio System Control, offset: 0x0 */
+       uint8_t RESERVED_0[12];
+  __IO uint32_t MISC;                              /**< Radio Miscellaneous, offset: 0x10 */
+  __IO uint32_t POWER;                             /**< RSIM Power Control, offset: 0x14 */
+  __IO uint32_t SW_CONFIG;                         /**< Radio Software Configuration, offset: 0x18 */
+       uint8_t RESERVED_1[228];
+  __I  uint32_t DSM_TIMER;                         /**< Deep Sleep Timer, offset: 0x100 */
+  __IO uint32_t DSM_CONTROL;                       /**< Deep Sleep Timer Control, offset: 0x104 */
+  __IO uint32_t DSM_WAKEUP;                        /**< Deep Sleep Wakeup Sequence, offset: 0x108 */
+  __I  uint32_t WOR_DURATION;                      /**< WOR Deep Sleep Duration, offset: 0x10C */
+  __IO uint32_t WOR_WAKE;                          /**< WOR Deep Sleep Wake Time, offset: 0x110 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t MAN_SLEEP;                         /**< MAN Deep Sleep Time, offset: 0x11C */
+  __IO uint32_t MAN_WAKE;                          /**< MAN Deep Sleep Wake Time, offset: 0x120 */
+  __IO uint32_t RF_OSC_CTRL;                       /**< Radio Oscillator Control, offset: 0x124 */
+  __IO uint32_t ANA_TEST;                          /**< Radio Analog Test Registers, offset: 0x128 */
+  __IO uint32_t ANA_TRIM;                          /**< Radio Analog Trim Registers, offset: 0x12C */
+} RSIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- RSIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RSIM_Register_Masks RSIM Register Masks
+ * @{
+ */
+
+/*! @name CONTROL - Radio System Control */
+/*! @{ */
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN_MASK    (0x1U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN_SHIFT   (0U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_EN_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_EN_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_MASK  (0x2U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_SHIFT (1U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_MASK (0x10U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_SHIFT (4U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_MASK   (0x20U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_SHIFT  (5U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_INT_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_INT_MASK)
+#define RSIM_CONTROL_RF_OSC_EN_MASK              (0x100U)
+#define RSIM_CONTROL_RF_OSC_EN_SHIFT             (8U)
+#define RSIM_CONTROL_RF_OSC_EN(x)                (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_EN_SHIFT)) & RSIM_CONTROL_RF_OSC_EN_MASK)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_MASK (0x1000U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_SHIFT (12U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_SHIFT)) & RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_MASK)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_MASK (0x2000U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_SHIFT (13U)
+/*! RADIO_GASKET_BYPASS_OVRD - Radio Gasket Bypass Override
+ *  0b0..XCVR and Link Layer Register Clock is the RF Ref Osc Clock
+ *  0b1..XCVR and Link Layer Register Clock is the SoC IPG Clock
+ */
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_SHIFT)) & RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_MASK)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_MASK (0x4000U)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_SHIFT (14U)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_SHIFT)) & RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE_MASK      (0x8000U)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE_SHIFT     (15U)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_ACTIVE_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_ACTIVE_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN_MASK      (0x10000U)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN_SHIFT     (16U)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_OSC_EN_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_OSC_EN_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS_MASK      (0x40000U)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS_SHIFT     (18U)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_STATUS_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_STATUS_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY_MASK    (0x80000U)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY_SHIFT   (19U)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_PRIORITY_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_PRIORITY_MASK)
+#define RSIM_CONTROL_BLE_DSM_EXIT_MASK           (0x100000U)
+#define RSIM_CONTROL_BLE_DSM_EXIT_SHIFT          (20U)
+#define RSIM_CONTROL_BLE_DSM_EXIT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_DSM_EXIT_SHIFT)) & RSIM_CONTROL_BLE_DSM_EXIT_MASK)
+#define RSIM_CONTROL_WOR_DSM_EXIT_MASK           (0x200000U)
+#define RSIM_CONTROL_WOR_DSM_EXIT_SHIFT          (21U)
+#define RSIM_CONTROL_WOR_DSM_EXIT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_WOR_DSM_EXIT_SHIFT)) & RSIM_CONTROL_WOR_DSM_EXIT_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_MASK           (0x1000000U)
+#define RSIM_CONTROL_RF_OSC_READY_SHIFT          (24U)
+#define RSIM_CONTROL_RF_OSC_READY(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN_MASK   (0x2000000U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN_SHIFT  (25U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_OVRD_EN_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_OVRD_EN_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_MASK      (0x4000000U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_SHIFT     (26U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_OVRD_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_OVRD_MASK)
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN_MASK        (0x8000000U)
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN_SHIFT       (27U)
+/*! RSIM_CGC_BLE_EN - BLE Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_BLE_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_BLE_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN_MASK       (0x10000000U)
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN_SHIFT      (28U)
+/*! RSIM_CGC_XCVR_EN - XCVR Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_XCVR_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_XCVR_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN_MASK        (0x20000000U)
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN_SHIFT       (29U)
+/*! RSIM_CGC_ZIG_EN - ZIG Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_ZIG_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_ZIG_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN_MASK        (0x80000000U)
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN_SHIFT       (31U)
+/*! RSIM_CGC_GEN_EN - GEN Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_GEN_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_GEN_EN_MASK)
+/*! @} */
+
+/*! @name MISC - Radio Miscellaneous */
+/*! @{ */
+#define RSIM_MISC_RADIO_VERSION_MASK             (0xFF000000U)
+#define RSIM_MISC_RADIO_VERSION_SHIFT            (24U)
+#define RSIM_MISC_RADIO_VERSION(x)               (((uint32_t)(((uint32_t)(x)) << RSIM_MISC_RADIO_VERSION_SHIFT)) & RSIM_MISC_RADIO_VERSION_MASK)
+/*! @} */
+
+/*! @name POWER - RSIM Power Control */
+/*! @{ */
+#define RSIM_POWER_RADIO_STOP_MODE_STAT_MASK     (0x7U)
+#define RSIM_POWER_RADIO_STOP_MODE_STAT_SHIFT    (0U)
+#define RSIM_POWER_RADIO_STOP_MODE_STAT(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_STAT_MASK)
+#define RSIM_POWER_SPM_STOP_ACK_STAT_MASK        (0x8U)
+#define RSIM_POWER_SPM_STOP_ACK_STAT_SHIFT       (3U)
+#define RSIM_POWER_SPM_STOP_ACK_STAT(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_ACK_STAT_SHIFT)) & RSIM_POWER_SPM_STOP_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_MASK     (0x70U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_SHIFT    (4U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_OVRD_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_OVRD_MASK)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_MASK  (0x80U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_SHIFT (7U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_MASK)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT_MASK      (0x100U)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT_SHIFT     (8U)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_ACK_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT_MASK      (0x200U)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT_SHIFT     (9U)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_REQ_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_REQ_STAT_MASK)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_MASK       (0x400U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_SHIFT      (10U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_REQ_OVRD_SHIFT)) & RSIM_POWER_RSIM_STOP_REQ_OVRD_MASK)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_MASK    (0x800U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_SHIFT   (11U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_MASK)
+#define RSIM_POWER_RF_OSC_EN_OVRD_MASK           (0x1000U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_SHIFT          (12U)
+#define RSIM_POWER_RF_OSC_EN_OVRD(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_OSC_EN_OVRD_SHIFT)) & RSIM_POWER_RF_OSC_EN_OVRD_MASK)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN_MASK        (0x2000U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN_SHIFT       (13U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_OSC_EN_OVRD_EN_SHIFT)) & RSIM_POWER_RF_OSC_EN_OVRD_EN_MASK)
+#define RSIM_POWER_RF_POWER_EN_OVRD_MASK         (0x4000U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_SHIFT        (14U)
+#define RSIM_POWER_RF_POWER_EN_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_POWER_EN_OVRD_SHIFT)) & RSIM_POWER_RF_POWER_EN_OVRD_MASK)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN_MASK      (0x8000U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN_SHIFT     (15U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_POWER_EN_OVRD_EN_SHIFT)) & RSIM_POWER_RF_POWER_EN_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_ISO_STAT_MASK             (0x10000U)
+#define RSIM_POWER_SPM_ISO_STAT_SHIFT            (16U)
+#define RSIM_POWER_SPM_ISO_STAT(x)               (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_ISO_STAT_SHIFT)) & RSIM_POWER_SPM_ISO_STAT_MASK)
+#define RSIM_POWER_RADIO_ISO_STAT_MASK           (0x20000U)
+#define RSIM_POWER_RADIO_ISO_STAT_SHIFT          (17U)
+#define RSIM_POWER_RADIO_ISO_STAT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_ISO_STAT_SHIFT)) & RSIM_POWER_RADIO_ISO_STAT_MASK)
+#define RSIM_POWER_RSIM_ISO_OVRD_MASK            (0x40000U)
+#define RSIM_POWER_RSIM_ISO_OVRD_SHIFT           (18U)
+#define RSIM_POWER_RSIM_ISO_OVRD(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_ISO_OVRD_SHIFT)) & RSIM_POWER_RSIM_ISO_OVRD_MASK)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN_MASK         (0x80000U)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN_SHIFT        (19U)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_ISO_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_ISO_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_RUN_ACK_STAT_MASK         (0x100000U)
+#define RSIM_POWER_SPM_RUN_ACK_STAT_SHIFT        (20U)
+#define RSIM_POWER_SPM_RUN_ACK_STAT(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_ACK_STAT_SHIFT)) & RSIM_POWER_SPM_RUN_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT_MASK       (0x200000U)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT_SHIFT      (21U)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_RUN_REQ_STAT_SHIFT)) & RSIM_POWER_RADIO_RUN_REQ_STAT_MASK)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_MASK        (0x400000U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_SHIFT       (22U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQ_OVRD_SHIFT)) & RSIM_POWER_RSIM_RUN_REQ_OVRD_MASK)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_MASK     (0x800000U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_SHIFT    (23U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_MASK    (0x1000000U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_SHIFT   (24U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_SHIFT)) & RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_MASK)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_MASK (0x2000000U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_SHIFT (25U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_SHIFT)) & RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_MASK     (0x4000000U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_SHIFT    (26U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_SHIFT)) & RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_MASK)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_MASK  (0x8000000U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_SHIFT (27U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_SHIFT)) & RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_MASK)
+#define RSIM_POWER_RSIM_STOP_MODE_MASK           (0x70000000U)
+#define RSIM_POWER_RSIM_STOP_MODE_SHIFT          (28U)
+/*! RSIM_STOP_MODE - RSIM lowest allowed Stop Mode
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b011..RLLS mode (Radio State Retention mode)
+ *  0b111..RVLLS mode (This is the POR setting)
+ */
+#define RSIM_POWER_RSIM_STOP_MODE(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_MODE_SHIFT)) & RSIM_POWER_RSIM_STOP_MODE_MASK)
+#define RSIM_POWER_RSIM_RUN_REQUEST_MASK         (0x80000000U)
+#define RSIM_POWER_RSIM_RUN_REQUEST_SHIFT        (31U)
+#define RSIM_POWER_RSIM_RUN_REQUEST(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQUEST_SHIFT)) & RSIM_POWER_RSIM_RUN_REQUEST_MASK)
+/*! @} */
+
+/*! @name SW_CONFIG - Radio Software Configuration */
+/*! @{ */
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_MASK (0x1U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_SHIFT (0U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_SHIFT)) & RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_MASK)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_MASK (0x2U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_SHIFT (1U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_SHIFT)) & RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_MASK)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_MASK  (0x10U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_SHIFT (4U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_SHIFT)) & RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_MASK)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_MASK (0x20U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_SHIFT (5U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_SHIFT)) & RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_MASK)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT_MASK        (0x100U)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT_SHIFT       (8U)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_POR_BIT_SHIFT)) & RSIM_SW_CONFIG_RADIO_POR_BIT_MASK)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_MASK (0x1000U)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_SHIFT (12U)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_SHIFT)) & RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_MASK)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT_MASK      (0x10000U)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT_SHIFT     (16U)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_RESET_BIT_SHIFT)) & RSIM_SW_CONFIG_RADIO_RESET_BIT_MASK)
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_MASK (0x300000U)
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_SHIFT (20U)
+/*! WAKEUP_INTERRUPT_SOURCE - RSIM Wakeup Interrupt Source Selector
+ *  0b00..No Radio Power-On Sequence interrupt will be generated.
+ *  0b01..A Power-On Sequence interrupt will be generated when the RF Power Request occurs, including unblocked requests from an external source to use the RF OSC.
+ *  0b10..A Power-On Sequence interrupt will be generated when the RF OSC Request occurs, but not if the RF OSC request was from an external source.
+ *  0b11..A Power-On Sequence interrupt will be generated when the RSIM RF Active Warning occurs
+ */
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_SHIFT)) & RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_MASK)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_MASK  (0x1000000U)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_SHIFT (24U)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_SHIFT)) & RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_MASK)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_MASK  (0x2000000U)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_SHIFT (25U)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_SHIFT)) & RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_MASK)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS_MASK     (0x10000000U)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS_SHIFT    (28U)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_SOC_RESETS_SHIFT)) & RSIM_SW_CONFIG_BLOCK_SOC_RESETS_MASK)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_MASK  (0x20000000U)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_SHIFT (29U)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_SHIFT)) & RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_MASK)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS_MASK     (0x40000000U)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS_SHIFT    (30U)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_ALLOW_DFT_RESETS_SHIFT)) & RSIM_SW_CONFIG_ALLOW_DFT_RESETS_MASK)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_MASK (0x80000000U)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_SHIFT (31U)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_SHIFT)) & RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_MASK)
+/*! @} */
+
+/*! @name DSM_TIMER - Deep Sleep Timer */
+/*! @{ */
+#define RSIM_DSM_TIMER_DSM_TIMER_MASK            (0xFFFFFFU)
+#define RSIM_DSM_TIMER_DSM_TIMER_SHIFT           (0U)
+#define RSIM_DSM_TIMER_DSM_TIMER(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_TIMER_DSM_TIMER_SHIFT)) & RSIM_DSM_TIMER_DSM_TIMER_MASK)
+/*! @} */
+
+/*! @name DSM_CONTROL - Deep Sleep Timer Control */
+/*! @{ */
+#define RSIM_DSM_CONTROL_DSM_WOR_READY_MASK      (0x1U)
+#define RSIM_DSM_CONTROL_DSM_WOR_READY_SHIFT     (0U)
+#define RSIM_DSM_CONTROL_DSM_WOR_READY(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_WOR_READY_SHIFT)) & RSIM_DSM_CONTROL_DSM_WOR_READY_MASK)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_MASK (0x2U)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_SHIFT (1U)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_SHIFT)) & RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_MASK)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED_MASK   (0x4U)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED_SHIFT  (2U)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_WOR_FINISHED_SHIFT)) & RSIM_DSM_CONTROL_DSM_WOR_FINISHED_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_MASK (0x8U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_SHIFT (3U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_MASK)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_MASK  (0x10U)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_SHIFT (4U)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_SHIFT)) & RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_MASK     (0x20U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_SHIFT    (5U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_MASK (0x40U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_SHIFT (6U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_MASK (0x80U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_SHIFT (7U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_MASK)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY_MASK      (0x100U)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY_SHIFT     (8U)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_MAN_READY_SHIFT)) & RSIM_DSM_CONTROL_DSM_MAN_READY_MASK)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_MASK (0x200U)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_SHIFT (9U)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_SHIFT)) & RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_MASK)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED_MASK   (0x400U)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED_SHIFT  (10U)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_MAN_FINISHED_SHIFT)) & RSIM_DSM_CONTROL_DSM_MAN_FINISHED_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_MASK (0x800U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_SHIFT (11U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_MASK)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_MASK  (0x1000U)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_SHIFT (12U)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_SHIFT)) & RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_MASK     (0x2000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_SHIFT    (13U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_MASK (0x4000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_SHIFT (14U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_MASK (0x8000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_SHIFT (15U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1_MASK     (0x10000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1_SHIFT    (16U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_1_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_1_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2_MASK     (0x20000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2_SHIFT    (17U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_2_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_2_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3_MASK     (0x40000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3_SHIFT    (18U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_3_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_3_MASK)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_MASK (0x100000U)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_SHIFT (20U)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_SHIFT)) & RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_MASK (0x200000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_SHIFT (21U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_MASK   (0x400000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_SHIFT  (22U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_MASK    (0x800000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_SHIFT   (23U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_MASK)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR_MASK      (0x8000000U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR_SHIFT     (27U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_TIMER_CLR_SHIFT)) & RSIM_DSM_CONTROL_DSM_TIMER_CLR_MASK)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN_MASK       (0x80000000U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN_SHIFT      (31U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_TIMER_EN_SHIFT)) & RSIM_DSM_CONTROL_DSM_TIMER_EN_MASK)
+/*! @} */
+
+/*! @name DSM_WAKEUP - Deep Sleep Wakeup Sequence */
+/*! @{ */
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_MASK (0x3FFU)
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_SHIFT (0U)
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_SHIFT)) & RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_MASK)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING_MASK      (0x3F000U)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING_SHIFT     (12U)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_ACTIVE_WARNING_SHIFT)) & RSIM_DSM_WAKEUP_ACTIVE_WARNING_MASK)
+#define RSIM_DSM_WAKEUP_FINE_DELAY_MASK          (0x3F00000U)
+#define RSIM_DSM_WAKEUP_FINE_DELAY_SHIFT         (20U)
+#define RSIM_DSM_WAKEUP_FINE_DELAY(x)            (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_FINE_DELAY_SHIFT)) & RSIM_DSM_WAKEUP_FINE_DELAY_MASK)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY_MASK        (0xF0000000U)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY_SHIFT       (28U)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_COARSE_DELAY_SHIFT)) & RSIM_DSM_WAKEUP_COARSE_DELAY_MASK)
+/*! @} */
+
+/*! @name WOR_DURATION - WOR Deep Sleep Duration */
+/*! @{ */
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION_MASK  (0xFFFFFFU)
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION_SHIFT (0U)
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_DURATION_WOR_DSM_DURATION_SHIFT)) & RSIM_WOR_DURATION_WOR_DSM_DURATION_MASK)
+/*! @} */
+
+/*! @name WOR_WAKE - WOR Deep Sleep Wake Time */
+/*! @{ */
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME_MASK         (0xFFFFFFU)
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME_SHIFT        (0U)
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_WAKE_WOR_WAKE_TIME_SHIFT)) & RSIM_WOR_WAKE_WOR_WAKE_TIME_MASK)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE_MASK         (0x70000000U)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE_SHIFT        (28U)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_WAKE_WOR_FSM_STATE_SHIFT)) & RSIM_WOR_WAKE_WOR_FSM_STATE_MASK)
+/*! @} */
+
+/*! @name MAN_SLEEP - MAN Deep Sleep Time */
+/*! @{ */
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME_MASK       (0xFFFFFFU)
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME_SHIFT      (0U)
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_SLEEP_MAN_SLEEP_TIME_SHIFT)) & RSIM_MAN_SLEEP_MAN_SLEEP_TIME_MASK)
+/*! @} */
+
+/*! @name MAN_WAKE - MAN Deep Sleep Wake Time */
+/*! @{ */
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME_MASK         (0xFFFFFFU)
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME_SHIFT        (0U)
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_WAKE_MAN_WAKE_TIME_SHIFT)) & RSIM_MAN_WAKE_MAN_WAKE_TIME_MASK)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE_MASK         (0x70000000U)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE_SHIFT        (28U)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_WAKE_MAN_FSM_STATE_SHIFT)) & RSIM_MAN_WAKE_MAN_FSM_STATE_MASK)
+/*! @} */
+
+/*! @name RF_OSC_CTRL - Radio Oscillator Control */
+/*! @{ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_MASK (0x3U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_SHIFT (0U)
+/*! BB_XTAL_ALC_COUNT_SEL - rmap_bb_xtal_alc_count_sel_hv[1:0]
+ *  0b00..2048 (64 us @ 32 MHz)
+ *  0b01..4096 (128 us @ 32 MHz)
+ *  0b10..8192 (256 us @ 32 MHz)
+ *  0b11..16384 (512 us @ 32 MHz)
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_MASK     (0x4U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_SHIFT    (2U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_MASK)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_MASK   (0x8U)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_SHIFT  (3U)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_MASK  (0x1F0U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_SHIFT (4U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_MASK (0x200U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_SHIFT (9U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_MASK    (0x400U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_SHIFT   (10U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_MASK (0x800U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_SHIFT (11U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM_MASK         (0x1F000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM_SHIFT        (12U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_GM_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_GM_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_MASK    (0x20000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_SHIFT   (17U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_MASK (0x40000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_SHIFT (18U)
+/*! BB_XTAL_ON_OVRD_ON - rmap_bb_xtal_on_ovrd_on_hv
+ *  0b0..rfctrl_bb_xtal_on_hv is asserted
+ *  0b1..rfctrl_bb_xtal_on_ovrd_hv is asserted
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_MASK (0x300000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_SHIFT (20U)
+/*! BB_XTAL_READY_COUNT_SEL - rmap_bb_xtal_ready_count_sel_hv[1:0]
+ *  0b00..1024 counts (32 us @ 32 MHz)
+ *  0b01..2048 (64 us @ 32 MHz)
+ *  0b10..4096 (128 us @ 32 MHz)
+ *  0b11..8192 (256 us @ 32 MHz)
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_MASK (0x8000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_SHIFT (27U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_MASK (0x10000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_SHIFT (28U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_MASK (0x20000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_SHIFT (29U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_MASK)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_MASK (0x40000000U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_SHIFT (30U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_MASK (0x80000000U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_SHIFT (31U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_MASK)
+/*! @} */
+
+/*! @name ANA_TEST - Radio Analog Test Registers */
+/*! @{ */
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN_MASK       (0x10U)
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN_SHIFT      (4U)
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TEST_XTAL_OUT_BUF_EN_SHIFT)) & RSIM_ANA_TEST_XTAL_OUT_BUF_EN_MASK)
+/*! @} */
+
+/*! @name ANA_TRIM - Radio Analog Trim Registers */
+/*! @{ */
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE_MASK       (0x3U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE_SHIFT      (0U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_LS_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_LS_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM_MASK        (0x38U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM_SHIFT       (3U)
+/*! BB_LDO_LS_TRIM - rmap_bb_ldo_ls_trim_hv[2:0]
+ *  0b000..1.20 V (Default)
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_LS_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_LS_TRIM_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE_MASK       (0xC0U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE_SHIFT      (6U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_XO_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_XO_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM_MASK        (0x700U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM_SHIFT       (8U)
+/*! BB_LDO_XO_TRIM - rmap_bb_ldo_xo_trim_hv[2:0]
+ *  0b000..1.20 V (Default)
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_XO_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_XO_TRIM_MASK)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE_MASK         (0xF800U)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE_SHIFT        (11U)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_XTAL_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_XTAL_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM_MASK          (0xFF0000U)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM_SHIFT         (16U)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM(x)            (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_XTAL_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_XTAL_TRIM_MASK)
+#define RSIM_ANA_TRIM_BG_1V_TRIM_MASK            (0xF000000U)
+#define RSIM_ANA_TRIM_BG_1V_TRIM_SHIFT           (24U)
+/*! BG_1V_TRIM - rmap_bg_1v_trim_hv[3:0]
+ *  0b0000..954.14 mV
+ *  0b0001..959.26 mV
+ *  0b0010..964.38 mV
+ *  0b0011..969.5 mV
+ *  0b0100..974.6 mV
+ *  0b0101..979.7 mV
+ *  0b0110..984.8 mV
+ *  0b0111..989.9 mV
+ *  0b1000..995 mV (Default)
+ *  0b1001..1 V
+ *  0b1010..1.005 V
+ *  0b1011..1.01 V
+ *  0b1100..1.015 V
+ *  0b1101..1.02 V
+ *  0b1110..1.025 V
+ *  0b1111..1.031 V
+ */
+#define RSIM_ANA_TRIM_BG_1V_TRIM(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BG_1V_TRIM_SHIFT)) & RSIM_ANA_TRIM_BG_1V_TRIM_MASK)
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_MASK      (0xF0000000U)
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_SHIFT     (28U)
+/*! BG_IBIAS_5U_TRIM - rmap_bg_ibias_5u_trim_hv[3:0]
+ *  0b0000..3.55 uA
+ *  0b0001..3.73 uA
+ *  0b0010..4.04 uA
+ *  0b0011..4.22 uA
+ *  0b0100..4.39 uA
+ *  0b0101..4.57 uA
+ *  0b0110..4.89 uA
+ *  0b0111..5.06 (Default)
+ *  0b1000..5.23 uA
+ *  0b1001..5.41 uA
+ *  0b1010..5.72 uA
+ *  0b1011..5.9 uA
+ *  0b1100..6.07 uA
+ *  0b1101..6.25 uA
+ *  0b1110..6.56 uA
+ *  0b1111..6.74 uA
+ */
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_SHIFT)) & RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group RSIM_Register_Masks */
+
+
+/* RSIM - Peripheral instance base addresses */
+/** Peripheral RSIM base address */
+#define RSIM_BASE                                (0x4102F000u)
+/** Peripheral RSIM base pointer */
+#define RSIM                                     ((RSIM_Type *)RSIM_BASE)
+/** Array initializer of RSIM peripheral base addresses */
+#define RSIM_BASE_ADDRS                          { RSIM_BASE }
+/** Array initializer of RSIM peripheral base pointers */
+#define RSIM_BASE_PTRS                           { RSIM }
+
+/*!
+ * @}
+ */ /* end of group RSIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- RTC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RTC_Peripheral_Access_Layer RTC Peripheral Access Layer
+ * @{
+ */
+
+/** RTC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t TSR;                               /**< RTC Time Seconds Register, offset: 0x0 */
+  __IO uint32_t TPR;                               /**< RTC Time Prescaler Register, offset: 0x4 */
+  __IO uint32_t TAR;                               /**< RTC Time Alarm Register, offset: 0x8 */
+  __IO uint32_t TCR;                               /**< RTC Time Compensation Register, offset: 0xC */
+  __IO uint32_t CR;                                /**< RTC Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< RTC Status Register, offset: 0x14 */
+  __IO uint32_t LR;                                /**< RTC Lock Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< RTC Interrupt Enable Register, offset: 0x1C */
+  __I  uint32_t TTSR;                              /**< RTC Tamper Time Seconds Register, offset: 0x20 */
+  __IO uint32_t MER;                               /**< RTC Monotonic Enable Register, offset: 0x24 */
+  __IO uint32_t MCLR;                              /**< RTC Monotonic Counter Low Register, offset: 0x28 */
+  __IO uint32_t MCHR;                              /**< RTC Monotonic Counter High Register, offset: 0x2C */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t TDR;                               /**< RTC Tamper Detect Register, offset: 0x34 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t TIR;                               /**< RTC Tamper Interrupt Register, offset: 0x3C */
+  __IO uint32_t PCR[4];                            /**< RTC Pin Configuration Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_2[1968];
+  __IO uint32_t WAR;                               /**< RTC Write Access Register, offset: 0x800 */
+  __IO uint32_t RAR;                               /**< RTC Read Access Register, offset: 0x804 */
+} RTC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- RTC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RTC_Register_Masks RTC Register Masks
+ * @{
+ */
+
+/*! @name TSR - RTC Time Seconds Register */
+/*! @{ */
+#define RTC_TSR_TSR_MASK                         (0xFFFFFFFFU)
+#define RTC_TSR_TSR_SHIFT                        (0U)
+#define RTC_TSR_TSR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TSR_TSR_SHIFT)) & RTC_TSR_TSR_MASK)
+/*! @} */
+
+/*! @name TPR - RTC Time Prescaler Register */
+/*! @{ */
+#define RTC_TPR_TPR_MASK                         (0xFFFFU)
+#define RTC_TPR_TPR_SHIFT                        (0U)
+#define RTC_TPR_TPR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TPR_TPR_SHIFT)) & RTC_TPR_TPR_MASK)
+/*! @} */
+
+/*! @name TAR - RTC Time Alarm Register */
+/*! @{ */
+#define RTC_TAR_TAR_MASK                         (0xFFFFFFFFU)
+#define RTC_TAR_TAR_SHIFT                        (0U)
+#define RTC_TAR_TAR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TAR_TAR_SHIFT)) & RTC_TAR_TAR_MASK)
+/*! @} */
+
+/*! @name TCR - RTC Time Compensation Register */
+/*! @{ */
+#define RTC_TCR_TCR_MASK                         (0xFFU)
+#define RTC_TCR_TCR_SHIFT                        (0U)
+/*! TCR - Time Compensation Register
+ *  0b10000000..Time Prescaler Register overflows every 32896 clock cycles.
+ *  0b10000001..Time Prescaler Register overflows every 32895 clock cycles.
+ *  0b11111111..Time Prescaler Register overflows every 32769 clock cycles.
+ *  0b00000000..Time Prescaler Register overflows every 32768 clock cycles.
+ *  0b00000001..Time Prescaler Register overflows every 32767 clock cycles.
+ *  0b01111110..Time Prescaler Register overflows every 32642 clock cycles.
+ *  0b01111111..Time Prescaler Register overflows every 32641 clock cycles.
+ */
+#define RTC_TCR_TCR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCR_SHIFT)) & RTC_TCR_TCR_MASK)
+#define RTC_TCR_CIR_MASK                         (0xFF00U)
+#define RTC_TCR_CIR_SHIFT                        (8U)
+#define RTC_TCR_CIR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIR_SHIFT)) & RTC_TCR_CIR_MASK)
+#define RTC_TCR_TCV_MASK                         (0xFF0000U)
+#define RTC_TCR_TCV_SHIFT                        (16U)
+#define RTC_TCR_TCV(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCV_SHIFT)) & RTC_TCR_TCV_MASK)
+#define RTC_TCR_CIC_MASK                         (0xFF000000U)
+#define RTC_TCR_CIC_SHIFT                        (24U)
+#define RTC_TCR_CIC(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIC_SHIFT)) & RTC_TCR_CIC_MASK)
+/*! @} */
+
+/*! @name CR - RTC Control Register */
+/*! @{ */
+#define RTC_CR_SWR_MASK                          (0x1U)
+#define RTC_CR_SWR_SHIFT                         (0U)
+/*! SWR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Resets all RTC registers except for the SWR bit and the RTC_WAR and RTC_RAR registers . The SWR bit is cleared by VBAT POR and by software explicitly clearing it.
+ */
+#define RTC_CR_SWR(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_SWR_SHIFT)) & RTC_CR_SWR_MASK)
+#define RTC_CR_WPE_MASK                          (0x2U)
+#define RTC_CR_WPE_SHIFT                         (1U)
+/*! WPE - Wakeup Pin Enable
+ *  0b0..RTC_WAKEUP pin is disabled.
+ *  0b1..RTC_WAKEUP pin is enabled and asserts if the RTC interrupt asserts or if the wakeup pin is forced on.
+ */
+#define RTC_CR_WPE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPE_SHIFT)) & RTC_CR_WPE_MASK)
+#define RTC_CR_SUP_MASK                          (0x4U)
+#define RTC_CR_SUP_SHIFT                         (2U)
+/*! SUP - Supervisor Access
+ *  0b0..Non-supervisor mode write accesses are not supported and generate a bus error.
+ *  0b1..Non-supervisor mode write accesses are supported.
+ */
+#define RTC_CR_SUP(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_SUP_SHIFT)) & RTC_CR_SUP_MASK)
+#define RTC_CR_UM_MASK                           (0x8U)
+#define RTC_CR_UM_SHIFT                          (3U)
+/*! UM - Update Mode
+ *  0b0..Registers cannot be written when locked.
+ *  0b1..Registers can be written when locked under limited conditions.
+ */
+#define RTC_CR_UM(x)                             (((uint32_t)(((uint32_t)(x)) << RTC_CR_UM_SHIFT)) & RTC_CR_UM_MASK)
+#define RTC_CR_WPS_MASK                          (0x10U)
+#define RTC_CR_WPS_SHIFT                         (4U)
+/*! WPS - Wakeup Pin Select
+ *  0b0..RTC_WAKEUP pin asserts (active low, open drain) if the RTC interrupt asserts or the wakeup pin is turned on.
+ *  0b1..RTC_WAKEUP pin outputs the RTC 32kHz clock, provided the wakeup pin is turned on and the 32kHz clock is output to other peripherals.
+ */
+#define RTC_CR_WPS(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPS_SHIFT)) & RTC_CR_WPS_MASK)
+#define RTC_CR_CPS_MASK                          (0x20U)
+#define RTC_CR_CPS_SHIFT                         (5U)
+/*! CPS - Clock Pin Select
+ *  0b0..The prescaler output clock (as configured by TSIC) is output on RTC_CLKOUT.
+ *  0b1..The RTC 32.768 kHz clock is output on RTC_CLKOUT, provided it is output to other peripherals.
+ */
+#define RTC_CR_CPS(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_CPS_SHIFT)) & RTC_CR_CPS_MASK)
+#define RTC_CR_LPOS_MASK                         (0x80U)
+#define RTC_CR_LPOS_SHIFT                        (7U)
+/*! LPOS - LPO Select
+ *  0b0..RTC prescaler increments using 32.768 kHz clock.
+ *  0b1..RTC prescaler increments using 1 kHz LPO, bits [4:0] of the prescaler are ignored.
+ */
+#define RTC_CR_LPOS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_LPOS_SHIFT)) & RTC_CR_LPOS_MASK)
+#define RTC_CR_OSCE_MASK                         (0x100U)
+#define RTC_CR_OSCE_SHIFT                        (8U)
+/*! OSCE - Oscillator Enable
+ *  0b0..32.768 kHz oscillator is disabled.
+ *  0b1..32.768 kHz oscillator is enabled. After setting this bit, wait the oscillator startup time before enabling the time counter to allow the 32.768 kHz clock time to stabilize.
+ */
+#define RTC_CR_OSCE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_OSCE_SHIFT)) & RTC_CR_OSCE_MASK)
+#define RTC_CR_CLKO_MASK                         (0x200U)
+#define RTC_CR_CLKO_SHIFT                        (9U)
+/*! CLKO - Clock Output
+ *  0b0..The 32 kHz clock is output to other peripherals.
+ *  0b1..The 32 kHz clock is not output to other peripherals.
+ */
+#define RTC_CR_CLKO(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_CLKO_SHIFT)) & RTC_CR_CLKO_MASK)
+#define RTC_CR_SC16P_MASK                        (0x400U)
+#define RTC_CR_SC16P_SHIFT                       (10U)
+/*! SC16P - Oscillator 16pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC16P(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC16P_SHIFT)) & RTC_CR_SC16P_MASK)
+#define RTC_CR_SC8P_MASK                         (0x800U)
+#define RTC_CR_SC8P_SHIFT                        (11U)
+/*! SC8P - Oscillator 8pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC8P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC8P_SHIFT)) & RTC_CR_SC8P_MASK)
+#define RTC_CR_SC4P_MASK                         (0x1000U)
+#define RTC_CR_SC4P_SHIFT                        (12U)
+/*! SC4P - Oscillator 4pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC4P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC4P_SHIFT)) & RTC_CR_SC4P_MASK)
+#define RTC_CR_SC2P_MASK                         (0x2000U)
+#define RTC_CR_SC2P_SHIFT                        (13U)
+/*! SC2P - Oscillator 2pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC2P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC2P_SHIFT)) & RTC_CR_SC2P_MASK)
+#define RTC_CR_OSCM_MASK                         (0x8000U)
+#define RTC_CR_OSCM_SHIFT                        (15U)
+/*! OSCM - Oscillator Mode Select
+ *  0b0..Configures the 32.768kHz crystal oscillator for robust operation supporting a wide range of crystals.
+ *  0b1..Configures the 32.768kHz crystal oscillator for low power operation supporting a more limited range of crystals.
+ */
+#define RTC_CR_OSCM(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_OSCM_SHIFT)) & RTC_CR_OSCM_MASK)
+#define RTC_CR_PORS_MASK                         (0x30000U)
+#define RTC_CR_PORS_SHIFT                        (16U)
+/*! PORS - POR Select
+ *  0b00..POR brownout enabled for 120us every 128ms.
+ *  0b01..POR brownout enabled for 120us every 64ms.
+ *  0b10..POR brownout enabled for 120us every 32ms.
+ *  0b11..POR brownout always enabled.
+ */
+#define RTC_CR_PORS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_PORS_SHIFT)) & RTC_CR_PORS_MASK)
+#define RTC_CR_CPE_MASK                          (0x3000000U)
+#define RTC_CR_CPE_SHIFT                         (24U)
+/*! CPE - Clock Pin Enable
+ *  0b00..The RTC_CLKOUT function is disabled.
+ *  0b01..Enable RTC_CLKOUT pin on pin 1.
+ *  0b10..Enable RTC_CLKOUT pin on pin 2.
+ *  0b11..Enable RTC_CLKOUT pin on pin 3.
+ */
+#define RTC_CR_CPE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_CPE_SHIFT)) & RTC_CR_CPE_MASK)
+/*! @} */
+
+/*! @name SR - RTC Status Register */
+/*! @{ */
+#define RTC_SR_TIF_MASK                          (0x1U)
+#define RTC_SR_TIF_SHIFT                         (0U)
+/*! TIF - Time Invalid Flag
+ *  0b0..Time is valid.
+ *  0b1..Time is invalid and time counter is read as zero.
+ */
+#define RTC_SR_TIF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TIF_SHIFT)) & RTC_SR_TIF_MASK)
+#define RTC_SR_TOF_MASK                          (0x2U)
+#define RTC_SR_TOF_SHIFT                         (1U)
+/*! TOF - Time Overflow Flag
+ *  0b0..Time overflow has not occurred.
+ *  0b1..Time overflow has occurred and time counter is read as zero.
+ */
+#define RTC_SR_TOF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TOF_SHIFT)) & RTC_SR_TOF_MASK)
+#define RTC_SR_TAF_MASK                          (0x4U)
+#define RTC_SR_TAF_SHIFT                         (2U)
+/*! TAF - Time Alarm Flag
+ *  0b0..Time alarm has not occurred.
+ *  0b1..Time alarm has occurred.
+ */
+#define RTC_SR_TAF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TAF_SHIFT)) & RTC_SR_TAF_MASK)
+#define RTC_SR_MOF_MASK                          (0x8U)
+#define RTC_SR_MOF_SHIFT                         (3U)
+/*! MOF - Monotonic Overflow Flag
+ *  0b0..Monotonic counter overflow has not occurred.
+ *  0b1..Monotonic counter overflow has occurred and monotonic counter is read as zero.
+ */
+#define RTC_SR_MOF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_MOF_SHIFT)) & RTC_SR_MOF_MASK)
+#define RTC_SR_TCE_MASK                          (0x10U)
+#define RTC_SR_TCE_SHIFT                         (4U)
+/*! TCE - Time Counter Enable
+ *  0b0..Time counter is disabled.
+ *  0b1..Time counter is enabled.
+ */
+#define RTC_SR_TCE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TCE_SHIFT)) & RTC_SR_TCE_MASK)
+#define RTC_SR_TIDF_MASK                         (0x80U)
+#define RTC_SR_TIDF_SHIFT                        (7U)
+/*! TIDF - Tamper Interrupt Detect Flag
+ *  0b0..Tamper interrupt has not asserted.
+ *  0b1..Tamper interrupt has asserted.
+ */
+#define RTC_SR_TIDF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_SR_TIDF_SHIFT)) & RTC_SR_TIDF_MASK)
+/*! @} */
+
+/*! @name LR - RTC Lock Register */
+/*! @{ */
+#define RTC_LR_TCL_MASK                          (0x8U)
+#define RTC_LR_TCL_SHIFT                         (3U)
+/*! TCL - Time Compensation Lock
+ *  0b0..Time Compensation Register is locked and writes are ignored.
+ *  0b1..Time Compensation Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TCL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TCL_SHIFT)) & RTC_LR_TCL_MASK)
+#define RTC_LR_CRL_MASK                          (0x10U)
+#define RTC_LR_CRL_SHIFT                         (4U)
+/*! CRL - Control Register Lock
+ *  0b0..Control Register is locked and writes are ignored.
+ *  0b1..Control Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_CRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_CRL_SHIFT)) & RTC_LR_CRL_MASK)
+#define RTC_LR_SRL_MASK                          (0x20U)
+#define RTC_LR_SRL_SHIFT                         (5U)
+/*! SRL - Status Register Lock
+ *  0b0..Status Register is locked and writes are ignored.
+ *  0b1..Status Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_SRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_SRL_SHIFT)) & RTC_LR_SRL_MASK)
+#define RTC_LR_LRL_MASK                          (0x40U)
+#define RTC_LR_LRL_SHIFT                         (6U)
+/*! LRL - Lock Register Lock
+ *  0b0..Lock Register is locked and writes are ignored.
+ *  0b1..Lock Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_LRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_LRL_SHIFT)) & RTC_LR_LRL_MASK)
+#define RTC_LR_TTSL_MASK                         (0x100U)
+#define RTC_LR_TTSL_SHIFT                        (8U)
+/*! TTSL - Tamper Time Seconds Lock
+ *  0b0..Tamper Time Seconds Register is locked and writes are ignored.
+ *  0b1..Tamper Time Seconds Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TTSL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_TTSL_SHIFT)) & RTC_LR_TTSL_MASK)
+#define RTC_LR_MEL_MASK                          (0x200U)
+#define RTC_LR_MEL_SHIFT                         (9U)
+/*! MEL - Monotonic Enable Lock
+ *  0b0..Monotonic Enable Register is locked and writes are ignored.
+ *  0b1..Monotonic Enable Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MEL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_MEL_SHIFT)) & RTC_LR_MEL_MASK)
+#define RTC_LR_MCLL_MASK                         (0x400U)
+#define RTC_LR_MCLL_SHIFT                        (10U)
+/*! MCLL - Monotonic Counter Low Lock
+ *  0b0..Monotonic Counter Low Register is locked and writes are ignored.
+ *  0b1..Monotonic Counter Low Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MCLL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_MCLL_SHIFT)) & RTC_LR_MCLL_MASK)
+#define RTC_LR_MCHL_MASK                         (0x800U)
+#define RTC_LR_MCHL_SHIFT                        (11U)
+/*! MCHL - Monotonic Counter High Lock
+ *  0b0..Monotonic Counter High Register is locked and writes are ignored.
+ *  0b1..Monotonic Counter High Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MCHL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_MCHL_SHIFT)) & RTC_LR_MCHL_MASK)
+#define RTC_LR_TDL_MASK                          (0x2000U)
+#define RTC_LR_TDL_SHIFT                         (13U)
+/*! TDL - Tamper Detect Lock
+ *  0b0..Tamper Detect Register is locked and writes are ignored.
+ *  0b1..Tamper Detect Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TDL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TDL_SHIFT)) & RTC_LR_TDL_MASK)
+#define RTC_LR_TIL_MASK                          (0x8000U)
+#define RTC_LR_TIL_SHIFT                         (15U)
+/*! TIL - Tamper Interrupt Lock
+ *  0b0..Tamper Interrupt Register is locked and writes are ignored.
+ *  0b1..Tamper Interrupt Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TIL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TIL_SHIFT)) & RTC_LR_TIL_MASK)
+#define RTC_LR_PCL_MASK                          (0xF0000U)
+#define RTC_LR_PCL_SHIFT                         (16U)
+#define RTC_LR_PCL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_PCL_SHIFT)) & RTC_LR_PCL_MASK)
+/*! @} */
+
+/*! @name IER - RTC Interrupt Enable Register */
+/*! @{ */
+#define RTC_IER_TIIE_MASK                        (0x1U)
+#define RTC_IER_TIIE_SHIFT                       (0U)
+/*! TIIE - Time Invalid Interrupt Enable
+ *  0b0..Time invalid flag does not generate an interrupt.
+ *  0b1..Time invalid flag does generate an interrupt.
+ */
+#define RTC_IER_TIIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TIIE_SHIFT)) & RTC_IER_TIIE_MASK)
+#define RTC_IER_TOIE_MASK                        (0x2U)
+#define RTC_IER_TOIE_SHIFT                       (1U)
+/*! TOIE - Time Overflow Interrupt Enable
+ *  0b0..Time overflow flag does not generate an interrupt.
+ *  0b1..Time overflow flag does generate an interrupt.
+ */
+#define RTC_IER_TOIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TOIE_SHIFT)) & RTC_IER_TOIE_MASK)
+#define RTC_IER_TAIE_MASK                        (0x4U)
+#define RTC_IER_TAIE_SHIFT                       (2U)
+/*! TAIE - Time Alarm Interrupt Enable
+ *  0b0..Time alarm flag does not generate an interrupt.
+ *  0b1..Time alarm flag does generate an interrupt.
+ */
+#define RTC_IER_TAIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TAIE_SHIFT)) & RTC_IER_TAIE_MASK)
+#define RTC_IER_MOIE_MASK                        (0x8U)
+#define RTC_IER_MOIE_SHIFT                       (3U)
+/*! MOIE - Monotonic Overflow Interrupt Enable
+ *  0b0..Monotonic overflow flag does not generate an interrupt.
+ *  0b1..Monotonic overflow flag does generate an interrupt.
+ */
+#define RTC_IER_MOIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_MOIE_SHIFT)) & RTC_IER_MOIE_MASK)
+#define RTC_IER_TSIE_MASK                        (0x10U)
+#define RTC_IER_TSIE_SHIFT                       (4U)
+/*! TSIE - Time Seconds Interrupt Enable
+ *  0b0..Seconds interrupt is disabled.
+ *  0b1..Seconds interrupt is enabled.
+ */
+#define RTC_IER_TSIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TSIE_SHIFT)) & RTC_IER_TSIE_MASK)
+#define RTC_IER_WPON_MASK                        (0x80U)
+#define RTC_IER_WPON_SHIFT                       (7U)
+/*! WPON - Wakeup Pin On
+ *  0b0..No effect.
+ *  0b1..If the RTC_WAKEUP pin is enabled, then the pin will assert.
+ */
+#define RTC_IER_WPON(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_WPON_SHIFT)) & RTC_IER_WPON_MASK)
+#define RTC_IER_TSIC_MASK                        (0x70000U)
+#define RTC_IER_TSIC_SHIFT                       (16U)
+/*! TSIC - Timer Seconds Interrupt Configuration
+ *  0b000..1 Hz.
+ *  0b001..2 Hz.
+ *  0b010..4 Hz.
+ *  0b011..8 Hz.
+ *  0b100..16 Hz.
+ *  0b101..32 Hz.
+ *  0b110..64 Hz.
+ *  0b111..128 Hz.
+ */
+#define RTC_IER_TSIC(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TSIC_SHIFT)) & RTC_IER_TSIC_MASK)
+/*! @} */
+
+/*! @name TTSR - RTC Tamper Time Seconds Register */
+/*! @{ */
+#define RTC_TTSR_TTS_MASK                        (0xFFFFFFFFU)
+#define RTC_TTSR_TTS_SHIFT                       (0U)
+#define RTC_TTSR_TTS(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TTSR_TTS_SHIFT)) & RTC_TTSR_TTS_MASK)
+/*! @} */
+
+/*! @name MER - RTC Monotonic Enable Register */
+/*! @{ */
+#define RTC_MER_MCE_MASK                         (0x10U)
+#define RTC_MER_MCE_SHIFT                        (4U)
+/*! MCE - Monotonic Counter Enable
+ *  0b0..Writes to the monotonic counter load the counter with the value written.
+ *  0b1..Writes to the monotonic counter increment the counter.
+ */
+#define RTC_MER_MCE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_MER_MCE_SHIFT)) & RTC_MER_MCE_MASK)
+/*! @} */
+
+/*! @name MCLR - RTC Monotonic Counter Low Register */
+/*! @{ */
+#define RTC_MCLR_MCL_MASK                        (0xFFFFFFFFU)
+#define RTC_MCLR_MCL_SHIFT                       (0U)
+#define RTC_MCLR_MCL(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_MCLR_MCL_SHIFT)) & RTC_MCLR_MCL_MASK)
+/*! @} */
+
+/*! @name MCHR - RTC Monotonic Counter High Register */
+/*! @{ */
+#define RTC_MCHR_MCH_MASK                        (0xFFFFFFFFU)
+#define RTC_MCHR_MCH_SHIFT                       (0U)
+#define RTC_MCHR_MCH(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_MCHR_MCH_SHIFT)) & RTC_MCHR_MCH_MASK)
+/*! @} */
+
+/*! @name TDR - RTC Tamper Detect Register */
+/*! @{ */
+#define RTC_TDR_LCTF_MASK                        (0x10U)
+#define RTC_TDR_LCTF_SHIFT                       (4U)
+/*! LCTF - Loss of Clock Tamper Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Loss of Clock tamper detected.
+ */
+#define RTC_TDR_LCTF(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TDR_LCTF_SHIFT)) & RTC_TDR_LCTF_MASK)
+#define RTC_TDR_STF_MASK                         (0x20U)
+#define RTC_TDR_STF_SHIFT                        (5U)
+/*! STF - Security Tamper Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Security module tamper detected.
+ */
+#define RTC_TDR_STF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_STF_SHIFT)) & RTC_TDR_STF_MASK)
+#define RTC_TDR_FSF_MASK                         (0x40U)
+#define RTC_TDR_FSF_SHIFT                        (6U)
+/*! FSF - Flash Security Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Flash security tamper detected.
+ */
+#define RTC_TDR_FSF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_FSF_SHIFT)) & RTC_TDR_FSF_MASK)
+#define RTC_TDR_TMF_MASK                         (0x80U)
+#define RTC_TDR_TMF_SHIFT                        (7U)
+/*! TMF - Test Mode Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Test mode tamper detected.
+ */
+#define RTC_TDR_TMF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_TMF_SHIFT)) & RTC_TDR_TMF_MASK)
+#define RTC_TDR_TPF_MASK                         (0xF0000U)
+#define RTC_TDR_TPF_SHIFT                        (16U)
+#define RTC_TDR_TPF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_TPF_SHIFT)) & RTC_TDR_TPF_MASK)
+/*! @} */
+
+/*! @name TIR - RTC Tamper Interrupt Register */
+/*! @{ */
+#define RTC_TIR_LCIE_MASK                        (0x10U)
+#define RTC_TIR_LCIE_SHIFT                       (4U)
+/*! LCIE - Loss of Clock Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the loss of clock flag is set.
+ */
+#define RTC_TIR_LCIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_LCIE_SHIFT)) & RTC_TIR_LCIE_MASK)
+#define RTC_TIR_SIE_MASK                         (0x20U)
+#define RTC_TIR_SIE_SHIFT                        (5U)
+/*! SIE - Security Module Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the security module flag is set.
+ */
+#define RTC_TIR_SIE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TIR_SIE_SHIFT)) & RTC_TIR_SIE_MASK)
+#define RTC_TIR_FSIE_MASK                        (0x40U)
+#define RTC_TIR_FSIE_SHIFT                       (6U)
+/*! FSIE - Flash Security Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the flash security flag is set.
+ */
+#define RTC_TIR_FSIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_FSIE_SHIFT)) & RTC_TIR_FSIE_MASK)
+#define RTC_TIR_TMIE_MASK                        (0x80U)
+#define RTC_TIR_TMIE_SHIFT                       (7U)
+/*! TMIE - Test Mode Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the test mode flag is set.
+ */
+#define RTC_TIR_TMIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_TMIE_SHIFT)) & RTC_TIR_TMIE_MASK)
+#define RTC_TIR_TPIE_MASK                        (0xF0000U)
+#define RTC_TIR_TPIE_SHIFT                       (16U)
+#define RTC_TIR_TPIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_TPIE_SHIFT)) & RTC_TIR_TPIE_MASK)
+/*! @} */
+
+/*! @name PCR - RTC Pin Configuration Register */
+/*! @{ */
+#define RTC_PCR_TPE_MASK                         (0x1000000U)
+#define RTC_PCR_TPE_SHIFT                        (24U)
+/*! TPE - Tamper Pull Enable
+ *  0b0..Pull resistor is disabled on tamper pin.
+ *  0b1..Pull resistor is enabled on tamper pin.
+ */
+#define RTC_PCR_TPE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPE_SHIFT)) & RTC_PCR_TPE_MASK)
+#define RTC_PCR_TPS_MASK                         (0x2000000U)
+#define RTC_PCR_TPS_SHIFT                        (25U)
+/*! TPS - Tamper Pull Select
+ *  0b0..Tamper pin pull resistor direction will assert the tamper pin.
+ *  0b1..Tamper pin pull resistor direction will negate the tamper pin.
+ */
+#define RTC_PCR_TPS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPS_SHIFT)) & RTC_PCR_TPS_MASK)
+#define RTC_PCR_TFE_MASK                         (0x4000000U)
+#define RTC_PCR_TFE_SHIFT                        (26U)
+/*! TFE - Tamper Filter Enable
+ *  0b0..Input filter is disabled on the tamper pin.
+ *  0b1..Input filter is enabled on the tamper pin.
+ */
+#define RTC_PCR_TFE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TFE_SHIFT)) & RTC_PCR_TFE_MASK)
+#define RTC_PCR_TPP_MASK                         (0x8000000U)
+#define RTC_PCR_TPP_SHIFT                        (27U)
+/*! TPP - Tamper Pin Polarity
+ *  0b0..Tamper pin is active high.
+ *  0b1..Tamper pin is active low.
+ */
+#define RTC_PCR_TPP(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPP_SHIFT)) & RTC_PCR_TPP_MASK)
+#define RTC_PCR_TPID_MASK                        (0x80000000U)
+#define RTC_PCR_TPID_SHIFT                       (31U)
+/*! TPID - Tamper Pin Input Data
+ *  0b0..Tamper pin input data is logic zero.
+ *  0b1..Tamper pin input data is logic one.
+ */
+#define RTC_PCR_TPID(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPID_SHIFT)) & RTC_PCR_TPID_MASK)
+/*! @} */
+
+/* The count of RTC_PCR */
+#define RTC_PCR_COUNT                            (4U)
+
+/*! @name WAR - RTC Write Access Register */
+/*! @{ */
+#define RTC_WAR_TSRW_MASK                        (0x1U)
+#define RTC_WAR_TSRW_SHIFT                       (0U)
+/*! TSRW - Time Seconds Register Write
+ *  0b0..Writes to the Time Seconds Register are ignored.
+ *  0b1..Writes to the Time Seconds Register complete as normal.
+ */
+#define RTC_WAR_TSRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TSRW_SHIFT)) & RTC_WAR_TSRW_MASK)
+#define RTC_WAR_TPRW_MASK                        (0x2U)
+#define RTC_WAR_TPRW_SHIFT                       (1U)
+/*! TPRW - Time Prescaler Register Write
+ *  0b0..Writes to the Time Prescaler Register are ignored.
+ *  0b1..Writes to the Time Prescaler Register complete as normal.
+ */
+#define RTC_WAR_TPRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TPRW_SHIFT)) & RTC_WAR_TPRW_MASK)
+#define RTC_WAR_TARW_MASK                        (0x4U)
+#define RTC_WAR_TARW_SHIFT                       (2U)
+/*! TARW - Time Alarm Register Write
+ *  0b0..Writes to the Time Alarm Register are ignored.
+ *  0b1..Writes to the Time Alarm Register complete as normal.
+ */
+#define RTC_WAR_TARW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TARW_SHIFT)) & RTC_WAR_TARW_MASK)
+#define RTC_WAR_TCRW_MASK                        (0x8U)
+#define RTC_WAR_TCRW_SHIFT                       (3U)
+/*! TCRW - Time Compensation Register Write
+ *  0b0..Writes to the Time Compensation Register are ignored.
+ *  0b1..Writes to the Time Compensation Register complete as normal.
+ */
+#define RTC_WAR_TCRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TCRW_SHIFT)) & RTC_WAR_TCRW_MASK)
+#define RTC_WAR_CRW_MASK                         (0x10U)
+#define RTC_WAR_CRW_SHIFT                        (4U)
+/*! CRW - Control Register Write
+ *  0b0..Writes to the Control Register are ignored.
+ *  0b1..Writes to the Control Register complete as normal.
+ */
+#define RTC_WAR_CRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_CRW_SHIFT)) & RTC_WAR_CRW_MASK)
+#define RTC_WAR_SRW_MASK                         (0x20U)
+#define RTC_WAR_SRW_SHIFT                        (5U)
+/*! SRW - Status Register Write
+ *  0b0..Writes to the Status Register are ignored.
+ *  0b1..Writes to the Status Register complete as normal.
+ */
+#define RTC_WAR_SRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_SRW_SHIFT)) & RTC_WAR_SRW_MASK)
+#define RTC_WAR_LRW_MASK                         (0x40U)
+#define RTC_WAR_LRW_SHIFT                        (6U)
+/*! LRW - Lock Register Write
+ *  0b0..Writes to the Lock Register are ignored.
+ *  0b1..Writes to the Lock Register complete as normal.
+ */
+#define RTC_WAR_LRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_LRW_SHIFT)) & RTC_WAR_LRW_MASK)
+#define RTC_WAR_IERW_MASK                        (0x80U)
+#define RTC_WAR_IERW_SHIFT                       (7U)
+/*! IERW - Interrupt Enable Register Write
+ *  0b0..Writes to the Interupt Enable Register are ignored.
+ *  0b1..Writes to the Interrupt Enable Register complete as normal.
+ */
+#define RTC_WAR_IERW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_IERW_SHIFT)) & RTC_WAR_IERW_MASK)
+#define RTC_WAR_TTSW_MASK                        (0x100U)
+#define RTC_WAR_TTSW_SHIFT                       (8U)
+/*! TTSW - Tamper Time Seconds Write
+ *  0b0..Writes to the Tamper Time Seconds Register are ignored.
+ *  0b1..Writes to the Tamper Time Seconds Register complete as normal.
+ */
+#define RTC_WAR_TTSW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TTSW_SHIFT)) & RTC_WAR_TTSW_MASK)
+#define RTC_WAR_MERW_MASK                        (0x200U)
+#define RTC_WAR_MERW_SHIFT                       (9U)
+/*! MERW - Monotonic Enable Register Write
+ *  0b0..Writes to the Monotonic Enable Register are ignored.
+ *  0b1..Writes to the Monotonic Enable Register complete as normal.
+ */
+#define RTC_WAR_MERW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MERW_SHIFT)) & RTC_WAR_MERW_MASK)
+#define RTC_WAR_MCLW_MASK                        (0x400U)
+#define RTC_WAR_MCLW_SHIFT                       (10U)
+/*! MCLW - Monotonic Counter Low Write
+ *  0b0..Writes to the Monotonic Counter Low Register are ignored.
+ *  0b1..Writes to the Monotonic Counter Low Register complete as normal.
+ */
+#define RTC_WAR_MCLW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MCLW_SHIFT)) & RTC_WAR_MCLW_MASK)
+#define RTC_WAR_MCHW_MASK                        (0x800U)
+#define RTC_WAR_MCHW_SHIFT                       (11U)
+/*! MCHW - Monotonic Counter High Write
+ *  0b0..Writes to the Monotonic Counter High Register are ignored.
+ *  0b1..Writes to the Monotonic Counter High Register complete as normal.
+ */
+#define RTC_WAR_MCHW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MCHW_SHIFT)) & RTC_WAR_MCHW_MASK)
+#define RTC_WAR_TDRW_MASK                        (0x2000U)
+#define RTC_WAR_TDRW_SHIFT                       (13U)
+/*! TDRW - Tamper Detect Register Write
+ *  0b0..Writes to the Tamper Detect Register are ignored.
+ *  0b1..Writes to the Tamper Detect Register complete as normal.
+ */
+#define RTC_WAR_TDRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TDRW_SHIFT)) & RTC_WAR_TDRW_MASK)
+#define RTC_WAR_TIRW_MASK                        (0x8000U)
+#define RTC_WAR_TIRW_SHIFT                       (15U)
+/*! TIRW - Tamper Interrupt Register Write
+ *  0b0..Writes to the Tamper Interrupt Register are ignored.
+ *  0b1..Writes to the Tamper Interrupt Register complete as normal.
+ */
+#define RTC_WAR_TIRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TIRW_SHIFT)) & RTC_WAR_TIRW_MASK)
+#define RTC_WAR_PCRW_MASK                        (0xF0000U)
+#define RTC_WAR_PCRW_SHIFT                       (16U)
+#define RTC_WAR_PCRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_PCRW_SHIFT)) & RTC_WAR_PCRW_MASK)
+/*! @} */
+
+/*! @name RAR - RTC Read Access Register */
+/*! @{ */
+#define RTC_RAR_TSRR_MASK                        (0x1U)
+#define RTC_RAR_TSRR_SHIFT                       (0U)
+/*! TSRR - Time Seconds Register Read
+ *  0b0..Reads to the Time Seconds Register are ignored.
+ *  0b1..Reads to the Time Seconds Register complete as normal.
+ */
+#define RTC_RAR_TSRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TSRR_SHIFT)) & RTC_RAR_TSRR_MASK)
+#define RTC_RAR_TPRR_MASK                        (0x2U)
+#define RTC_RAR_TPRR_SHIFT                       (1U)
+/*! TPRR - Time Prescaler Register Read
+ *  0b0..Reads to the Time Pprescaler Register are ignored.
+ *  0b1..Reads to the Time Prescaler Register complete as normal.
+ */
+#define RTC_RAR_TPRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TPRR_SHIFT)) & RTC_RAR_TPRR_MASK)
+#define RTC_RAR_TARR_MASK                        (0x4U)
+#define RTC_RAR_TARR_SHIFT                       (2U)
+/*! TARR - Time Alarm Register Read
+ *  0b0..Reads to the Time Alarm Register are ignored.
+ *  0b1..Reads to the Time Alarm Register complete as normal.
+ */
+#define RTC_RAR_TARR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TARR_SHIFT)) & RTC_RAR_TARR_MASK)
+#define RTC_RAR_TCRR_MASK                        (0x8U)
+#define RTC_RAR_TCRR_SHIFT                       (3U)
+/*! TCRR - Time Compensation Register Read
+ *  0b0..Reads to the Time Compensation Register are ignored.
+ *  0b1..Reads to the Time Compensation Register complete as normal.
+ */
+#define RTC_RAR_TCRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TCRR_SHIFT)) & RTC_RAR_TCRR_MASK)
+#define RTC_RAR_CRR_MASK                         (0x10U)
+#define RTC_RAR_CRR_SHIFT                        (4U)
+/*! CRR - Control Register Read
+ *  0b0..Reads to the Control Register are ignored.
+ *  0b1..Reads to the Control Register complete as normal.
+ */
+#define RTC_RAR_CRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_CRR_SHIFT)) & RTC_RAR_CRR_MASK)
+#define RTC_RAR_SRR_MASK                         (0x20U)
+#define RTC_RAR_SRR_SHIFT                        (5U)
+/*! SRR - Status Register Read
+ *  0b0..Reads to the Status Register are ignored.
+ *  0b1..Reads to the Status Register complete as normal.
+ */
+#define RTC_RAR_SRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_SRR_SHIFT)) & RTC_RAR_SRR_MASK)
+#define RTC_RAR_LRR_MASK                         (0x40U)
+#define RTC_RAR_LRR_SHIFT                        (6U)
+/*! LRR - Lock Register Read
+ *  0b0..Reads to the Lock Register are ignored.
+ *  0b1..Reads to the Lock Register complete as normal.
+ */
+#define RTC_RAR_LRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_LRR_SHIFT)) & RTC_RAR_LRR_MASK)
+#define RTC_RAR_IERR_MASK                        (0x80U)
+#define RTC_RAR_IERR_SHIFT                       (7U)
+/*! IERR - Interrupt Enable Register Read
+ *  0b0..Reads to the Interrupt Enable Register are ignored.
+ *  0b1..Reads to the Interrupt Enable Register complete as normal.
+ */
+#define RTC_RAR_IERR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_IERR_SHIFT)) & RTC_RAR_IERR_MASK)
+#define RTC_RAR_TTSR_MASK                        (0x100U)
+#define RTC_RAR_TTSR_SHIFT                       (8U)
+/*! TTSR - Tamper Time Seconds Read
+ *  0b0..Reads to the Tamper Time Seconds Register are ignored.
+ *  0b1..Reads to the Tamper Time Seconds Register complete as normal.
+ */
+#define RTC_RAR_TTSR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TTSR_SHIFT)) & RTC_RAR_TTSR_MASK)
+#define RTC_RAR_MERR_MASK                        (0x200U)
+#define RTC_RAR_MERR_SHIFT                       (9U)
+/*! MERR - Monotonic Enable Register Read
+ *  0b0..Reads to the Monotonic Enable Register are ignored.
+ *  0b1..Reads to the Monotonic Enable Register complete as normal.
+ */
+#define RTC_RAR_MERR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MERR_SHIFT)) & RTC_RAR_MERR_MASK)
+#define RTC_RAR_MCLR_MASK                        (0x400U)
+#define RTC_RAR_MCLR_SHIFT                       (10U)
+/*! MCLR - Monotonic Counter Low Read
+ *  0b0..Reads to the Monotonic Counter Low Register are ignored.
+ *  0b1..Reads to the Monotonic Counter Low Register complete as normal.
+ */
+#define RTC_RAR_MCLR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MCLR_SHIFT)) & RTC_RAR_MCLR_MASK)
+#define RTC_RAR_MCHR_MASK                        (0x800U)
+#define RTC_RAR_MCHR_SHIFT                       (11U)
+/*! MCHR - Monotonic Counter High Read
+ *  0b0..Reads to the Monotonic Counter High Register are ignored.
+ *  0b1..Reads to the Monotonic Counter High Register complete as normal.
+ */
+#define RTC_RAR_MCHR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MCHR_SHIFT)) & RTC_RAR_MCHR_MASK)
+#define RTC_RAR_TDRR_MASK                        (0x2000U)
+#define RTC_RAR_TDRR_SHIFT                       (13U)
+/*! TDRR - Tamper Detect Register Read
+ *  0b0..Reads to the Tamper Detect Register are ignored.
+ *  0b1..Reads to the Tamper Detect Register complete as normal.
+ */
+#define RTC_RAR_TDRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TDRR_SHIFT)) & RTC_RAR_TDRR_MASK)
+#define RTC_RAR_TIRR_MASK                        (0x8000U)
+#define RTC_RAR_TIRR_SHIFT                       (15U)
+/*! TIRR - Tamper Interrupt Register Read
+ *  0b0..Reads to the Tamper Interrupt Register are ignored.
+ *  0b1..Reads to the Tamper Interrupt Register complete as normal.
+ */
+#define RTC_RAR_TIRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TIRR_SHIFT)) & RTC_RAR_TIRR_MASK)
+#define RTC_RAR_PCRR_MASK                        (0xF0000U)
+#define RTC_RAR_PCRR_SHIFT                       (16U)
+#define RTC_RAR_PCRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_PCRR_SHIFT)) & RTC_RAR_PCRR_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group RTC_Register_Masks */
+
+
+/* RTC - Peripheral instance base addresses */
+/** Peripheral RTC base address */
+#define RTC_BASE                                 (0x40031000u)
+/** Peripheral RTC base pointer */
+#define RTC                                      ((RTC_Type *)RTC_BASE)
+/** Array initializer of RTC peripheral base addresses */
+#define RTC_BASE_ADDRS                           { RTC_BASE }
+/** Array initializer of RTC peripheral base pointers */
+#define RTC_BASE_PTRS                            { RTC }
+/** Interrupt vectors for the RTC peripheral type */
+#define RTC_IRQS                                 { RTC_IRQn }
+
+/*!
+ * @}
+ */ /* end of group RTC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SCG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SCG_Peripheral_Access_Layer SCG Peripheral Access Layer
+ * @{
+ */
+
+/** SCG - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __I  uint32_t CSR;                               /**< Clock Status Register, offset: 0x10 */
+  __IO uint32_t RCCR;                              /**< Run Clock Control Register, offset: 0x14 */
+  __IO uint32_t VCCR;                              /**< VLPR Clock Control Register, offset: 0x18 */
+  __IO uint32_t HCCR;                              /**< HSRUN Clock Control Register, offset: 0x1C */
+  __IO uint32_t CLKOUTCNFG;                        /**< SCG CLKOUT Configuration Register, offset: 0x20 */
+       uint8_t RESERVED_1[220];
+  __IO uint32_t SOSCCSR;                           /**< System OSC Control Status Register, offset: 0x100 */
+  __IO uint32_t SOSCDIV;                           /**< System OSC Divide Register, offset: 0x104 */
+       uint8_t RESERVED_2[248];
+  __IO uint32_t SIRCCSR;                           /**< Slow IRC Control Status Register, offset: 0x200 */
+  __IO uint32_t SIRCDIV;                           /**< Slow IRC Divide Register, offset: 0x204 */
+  __IO uint32_t SIRCCFG;                           /**< Slow IRC Configuration Register, offset: 0x208 */
+       uint8_t RESERVED_3[244];
+  __IO uint32_t FIRCCSR;                           /**< Fast IRC Control Status Register, offset: 0x300 */
+  __IO uint32_t FIRCDIV;                           /**< Fast IRC Divide Register, offset: 0x304 */
+  __IO uint32_t FIRCCFG;                           /**< Fast IRC Configuration Register, offset: 0x308 */
+  __IO uint32_t FIRCTCFG;                          /**< Fast IRC Trim Configuration Register, offset: 0x30C */
+       uint8_t RESERVED_4[8];
+  __IO uint32_t FIRCSTAT;                          /**< Fast IRC Status Register, offset: 0x318 */
+       uint8_t RESERVED_5[228];
+  __IO uint32_t ROSCCSR;                           /**< RTC OSC Control Status Register, offset: 0x400 */
+       uint8_t RESERVED_6[252];
+  __IO uint32_t LPFLLCSR;                          /**< Low Power FLL Control Status Register, offset: 0x500 */
+  __IO uint32_t LPFLLDIV;                          /**< Low Power FLL Divide Register, offset: 0x504 */
+  __IO uint32_t LPFLLCFG;                          /**< Low Power FLL Configuration Register, offset: 0x508 */
+  __IO uint32_t LPFLLTCFG;                         /**< Low Power FLL Trim Configuration Register, offset: 0x50C */
+       uint8_t RESERVED_7[4];
+  __IO uint32_t LPFLLSTAT;                         /**< Low Power FLL Status Register, offset: 0x514 */
+} SCG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SCG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SCG_Register_Masks SCG Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SCG_VERID_VERSION_MASK                   (0xFFFFFFFFU)
+#define SCG_VERID_VERSION_SHIFT                  (0U)
+#define SCG_VERID_VERSION(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_VERID_VERSION_SHIFT)) & SCG_VERID_VERSION_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define SCG_PARAM_CLKPRES_MASK                   (0xFFU)
+#define SCG_PARAM_CLKPRES_SHIFT                  (0U)
+/*! CLKPRES - Clock Present
+ *  0b00000000-0b00000001..Reserved.
+ *  0bxxxxxx1x..System OSC (SOSC) is present.
+ *  0bxxxxx1xx..Slow IRC (SIRC) is present.
+ *  0bxxxx1xxx..Fast IRC (FIRC) is present.
+ *  0bxxx1xxxx..RTC OSC (ROSC) is present.
+ *  0bxx1xxxxx..Low Power FLL (LPFLL) is present.
+ */
+#define SCG_PARAM_CLKPRES(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_PARAM_CLKPRES_SHIFT)) & SCG_PARAM_CLKPRES_MASK)
+#define SCG_PARAM_DIVPRES_MASK                   (0xF8000000U)
+#define SCG_PARAM_DIVPRES_SHIFT                  (27U)
+/*! DIVPRES - Divider Present
+ *  0bxxxx1..System DIVSLOW is present.
+ *  0bxxx1x..System DIVBUS is present.
+ *  0bxx1xx..System DIVEXT is present.
+ *  0b1xxxx..System DIVCORE is present.
+ */
+#define SCG_PARAM_DIVPRES(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_PARAM_DIVPRES_SHIFT)) & SCG_PARAM_DIVPRES_MASK)
+/*! @} */
+
+/*! @name CSR - Clock Status Register */
+/*! @{ */
+#define SCG_CSR_DIVSLOW_MASK                     (0xFU)
+#define SCG_CSR_DIVSLOW_SHIFT                    (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVSLOW(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVSLOW_SHIFT)) & SCG_CSR_DIVSLOW_MASK)
+#define SCG_CSR_DIVBUS_MASK                      (0xF0U)
+#define SCG_CSR_DIVBUS_SHIFT                     (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVBUS(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVBUS_SHIFT)) & SCG_CSR_DIVBUS_MASK)
+#define SCG_CSR_DIVEXT_MASK                      (0xF00U)
+#define SCG_CSR_DIVEXT_SHIFT                     (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVEXT(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVEXT_SHIFT)) & SCG_CSR_DIVEXT_MASK)
+#define SCG_CSR_DIVCORE_MASK                     (0xF0000U)
+#define SCG_CSR_DIVCORE_SHIFT                    (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVCORE(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVCORE_SHIFT)) & SCG_CSR_DIVCORE_MASK)
+#define SCG_CSR_SCS_MASK                         (0xF000000U)
+#define SCG_CSR_SCS_SHIFT                        (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_CSR_SCS(x)                           (((uint32_t)(((uint32_t)(x)) << SCG_CSR_SCS_SHIFT)) & SCG_CSR_SCS_MASK)
+/*! @} */
+
+/*! @name RCCR - Run Clock Control Register */
+/*! @{ */
+#define SCG_RCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_RCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVSLOW_SHIFT)) & SCG_RCCR_DIVSLOW_MASK)
+#define SCG_RCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_RCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVBUS_SHIFT)) & SCG_RCCR_DIVBUS_MASK)
+#define SCG_RCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_RCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVEXT_SHIFT)) & SCG_RCCR_DIVEXT_MASK)
+#define SCG_RCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_RCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVCORE_SHIFT)) & SCG_RCCR_DIVCORE_MASK)
+#define SCG_RCCR_SCS_MASK                        (0x7000000U)
+#define SCG_RCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b000..Reserved
+ *  0b001..System OSC (SOSC_CLK)
+ *  0b010..Slow IRC (SIRC_CLK)
+ *  0b011..Fast IRC (FIRC_CLK)
+ *  0b100..RTC OSC (ROSC_CLK)
+ *  0b101..Low Power FLL (LPFLL_CLK)
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define SCG_RCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_SCS_SHIFT)) & SCG_RCCR_SCS_MASK)
+/*! @} */
+
+/*! @name VCCR - VLPR Clock Control Register */
+/*! @{ */
+#define SCG_VCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_VCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVSLOW_SHIFT)) & SCG_VCCR_DIVSLOW_MASK)
+#define SCG_VCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_VCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVBUS_SHIFT)) & SCG_VCCR_DIVBUS_MASK)
+#define SCG_VCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_VCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVEXT_SHIFT)) & SCG_VCCR_DIVEXT_MASK)
+#define SCG_VCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_VCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVCORE_SHIFT)) & SCG_VCCR_DIVCORE_MASK)
+#define SCG_VCCR_SCS_MASK                        (0xF000000U)
+#define SCG_VCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Reserved
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Reserved
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_VCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_SCS_SHIFT)) & SCG_VCCR_SCS_MASK)
+/*! @} */
+
+/*! @name HCCR - HSRUN Clock Control Register */
+/*! @{ */
+#define SCG_HCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_HCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVSLOW_SHIFT)) & SCG_HCCR_DIVSLOW_MASK)
+#define SCG_HCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_HCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVBUS_SHIFT)) & SCG_HCCR_DIVBUS_MASK)
+#define SCG_HCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_HCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVEXT_SHIFT)) & SCG_HCCR_DIVEXT_MASK)
+#define SCG_HCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_HCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVCORE_SHIFT)) & SCG_HCCR_DIVCORE_MASK)
+#define SCG_HCCR_SCS_MASK                        (0xF000000U)
+#define SCG_HCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_HCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_SCS_SHIFT)) & SCG_HCCR_SCS_MASK)
+/*! @} */
+
+/*! @name CLKOUTCNFG - SCG CLKOUT Configuration Register */
+/*! @{ */
+#define SCG_CLKOUTCNFG_CLKOUTSEL_MASK            (0xF000000U)
+#define SCG_CLKOUTCNFG_CLKOUTSEL_SHIFT           (24U)
+/*! CLKOUTSEL - SCG Clkout Select
+ *  0b0000..SCG EXTERNAL Clock
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ *  0b1111..Reserved
+ */
+#define SCG_CLKOUTCNFG_CLKOUTSEL(x)              (((uint32_t)(((uint32_t)(x)) << SCG_CLKOUTCNFG_CLKOUTSEL_SHIFT)) & SCG_CLKOUTCNFG_CLKOUTSEL_MASK)
+/*! @} */
+
+/*! @name SOSCCSR - System OSC Control Status Register */
+/*! @{ */
+#define SCG_SOSCCSR_SOSCEN_MASK                  (0x1U)
+#define SCG_SOSCCSR_SOSCEN_SHIFT                 (0U)
+/*! SOSCEN - System OSC Enable
+ *  0b0..System OSC is disabled
+ *  0b1..System OSC is enabled
+ */
+#define SCG_SOSCCSR_SOSCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCEN_SHIFT)) & SCG_SOSCCSR_SOSCEN_MASK)
+#define SCG_SOSCCSR_SOSCSTEN_MASK                (0x2U)
+#define SCG_SOSCCSR_SOSCSTEN_SHIFT               (1U)
+/*! SOSCSTEN - System OSC Stop Enable
+ *  0b0..System OSC is disabled in Stop modes
+ *  0b1..System OSC is enabled in Stop modes if SOSCEN=1. In VLLS0, system oscillator is disabled even if SOSCSTEN=1 and SOSCEN=1.
+ */
+#define SCG_SOSCCSR_SOSCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCSTEN_SHIFT)) & SCG_SOSCCSR_SOSCSTEN_MASK)
+#define SCG_SOSCCSR_SOSCLPEN_MASK                (0x4U)
+#define SCG_SOSCCSR_SOSCLPEN_SHIFT               (2U)
+/*! SOSCLPEN - System OSC Low Power Enable
+ *  0b0..System OSC is disabled in VLP modes
+ *  0b1..System OSC is enabled in VLP modes
+ */
+#define SCG_SOSCCSR_SOSCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCLPEN_SHIFT)) & SCG_SOSCCSR_SOSCLPEN_MASK)
+#define SCG_SOSCCSR_SOSCCM_MASK                  (0x10000U)
+#define SCG_SOSCCSR_SOSCCM_SHIFT                 (16U)
+/*! SOSCCM - System OSC Clock Monitor
+ *  0b0..System OSC Clock Monitor is disabled
+ *  0b1..System OSC Clock Monitor is enabled
+ */
+#define SCG_SOSCCSR_SOSCCM(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCCM_SHIFT)) & SCG_SOSCCSR_SOSCCM_MASK)
+#define SCG_SOSCCSR_SOSCCMRE_MASK                (0x20000U)
+#define SCG_SOSCCSR_SOSCCMRE_SHIFT               (17U)
+/*! SOSCCMRE - System OSC Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_SOSCCSR_SOSCCMRE(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCCMRE_SHIFT)) & SCG_SOSCCSR_SOSCCMRE_MASK)
+#define SCG_SOSCCSR_LK_MASK                      (0x800000U)
+#define SCG_SOSCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..This Control Status Register can be written.
+ *  0b1..This Control Status Register cannot be written.
+ */
+#define SCG_SOSCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_LK_SHIFT)) & SCG_SOSCCSR_LK_MASK)
+#define SCG_SOSCCSR_SOSCVLD_MASK                 (0x1000000U)
+#define SCG_SOSCCSR_SOSCVLD_SHIFT                (24U)
+/*! SOSCVLD - System OSC Valid
+ *  0b0..System OSC is not enabled or clock is not valid
+ *  0b1..System OSC is enabled and output clock is valid
+ */
+#define SCG_SOSCCSR_SOSCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCVLD_SHIFT)) & SCG_SOSCCSR_SOSCVLD_MASK)
+#define SCG_SOSCCSR_SOSCSEL_MASK                 (0x2000000U)
+#define SCG_SOSCCSR_SOSCSEL_SHIFT                (25U)
+/*! SOSCSEL - System OSC Selected
+ *  0b0..System OSC is not the system clock source
+ *  0b1..System OSC is the system clock source
+ */
+#define SCG_SOSCCSR_SOSCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCSEL_SHIFT)) & SCG_SOSCCSR_SOSCSEL_MASK)
+#define SCG_SOSCCSR_SOSCERR_MASK                 (0x4000000U)
+#define SCG_SOSCCSR_SOSCERR_SHIFT                (26U)
+/*! SOSCERR - System OSC Clock Error
+ *  0b0..System OSC Clock Monitor is disabled or has not detected an error
+ *  0b1..System OSC Clock Monitor is enabled and detected an error
+ */
+#define SCG_SOSCCSR_SOSCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCERR_SHIFT)) & SCG_SOSCCSR_SOSCERR_MASK)
+/*! @} */
+
+/*! @name SOSCDIV - System OSC Divide Register */
+/*! @{ */
+#define SCG_SOSCDIV_SOSCDIV1_MASK                (0x7U)
+#define SCG_SOSCDIV_SOSCDIV1_SHIFT               (0U)
+/*! SOSCDIV1 - System OSC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV1_SHIFT)) & SCG_SOSCDIV_SOSCDIV1_MASK)
+#define SCG_SOSCDIV_SOSCDIV2_MASK                (0x700U)
+#define SCG_SOSCDIV_SOSCDIV2_SHIFT               (8U)
+/*! SOSCDIV2 - System OSC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV2_SHIFT)) & SCG_SOSCDIV_SOSCDIV2_MASK)
+#define SCG_SOSCDIV_SOSCDIV3_MASK                (0x70000U)
+#define SCG_SOSCDIV_SOSCDIV3_SHIFT               (16U)
+/*! SOSCDIV3 - System OSC Clock Divide 3
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV3_SHIFT)) & SCG_SOSCDIV_SOSCDIV3_MASK)
+/*! @} */
+
+/*! @name SIRCCSR - Slow IRC Control Status Register */
+/*! @{ */
+#define SCG_SIRCCSR_SIRCEN_MASK                  (0x1U)
+#define SCG_SIRCCSR_SIRCEN_SHIFT                 (0U)
+/*! SIRCEN - Slow IRC Enable
+ *  0b0..Slow IRC is disabled
+ *  0b1..Slow IRC is enabled
+ */
+#define SCG_SIRCCSR_SIRCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCEN_SHIFT)) & SCG_SIRCCSR_SIRCEN_MASK)
+#define SCG_SIRCCSR_SIRCSTEN_MASK                (0x2U)
+#define SCG_SIRCCSR_SIRCSTEN_SHIFT               (1U)
+/*! SIRCSTEN - Slow IRC Stop Enable
+ *  0b0..Slow IRC is disabled in Stop modes
+ *  0b1..Slow IRC is enabled in Stop modes
+ */
+#define SCG_SIRCCSR_SIRCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCSTEN_SHIFT)) & SCG_SIRCCSR_SIRCSTEN_MASK)
+#define SCG_SIRCCSR_SIRCLPEN_MASK                (0x4U)
+#define SCG_SIRCCSR_SIRCLPEN_SHIFT               (2U)
+/*! SIRCLPEN - Slow IRC Low Power Enable
+ *  0b0..Slow IRC is disabled in VLP modes
+ *  0b1..Slow IRC is enabled in VLP modes
+ */
+#define SCG_SIRCCSR_SIRCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCLPEN_SHIFT)) & SCG_SIRCCSR_SIRCLPEN_MASK)
+#define SCG_SIRCCSR_LK_MASK                      (0x800000U)
+#define SCG_SIRCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_SIRCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_LK_SHIFT)) & SCG_SIRCCSR_LK_MASK)
+#define SCG_SIRCCSR_SIRCVLD_MASK                 (0x1000000U)
+#define SCG_SIRCCSR_SIRCVLD_SHIFT                (24U)
+/*! SIRCVLD - Slow IRC Valid
+ *  0b0..Slow IRC is not enabled or clock is not valid
+ *  0b1..Slow IRC is enabled and output clock is valid
+ */
+#define SCG_SIRCCSR_SIRCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCVLD_SHIFT)) & SCG_SIRCCSR_SIRCVLD_MASK)
+#define SCG_SIRCCSR_SIRCSEL_MASK                 (0x2000000U)
+#define SCG_SIRCCSR_SIRCSEL_SHIFT                (25U)
+/*! SIRCSEL - Slow IRC Selected
+ *  0b0..Slow IRC is not the system clock source
+ *  0b1..Slow IRC is the system clock source
+ */
+#define SCG_SIRCCSR_SIRCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCSEL_SHIFT)) & SCG_SIRCCSR_SIRCSEL_MASK)
+/*! @} */
+
+/*! @name SIRCDIV - Slow IRC Divide Register */
+/*! @{ */
+#define SCG_SIRCDIV_SIRCDIV1_MASK                (0x7U)
+#define SCG_SIRCDIV_SIRCDIV1_SHIFT               (0U)
+/*! SIRCDIV1 - Slow IRC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV1_SHIFT)) & SCG_SIRCDIV_SIRCDIV1_MASK)
+#define SCG_SIRCDIV_SIRCDIV2_MASK                (0x700U)
+#define SCG_SIRCDIV_SIRCDIV2_SHIFT               (8U)
+/*! SIRCDIV2 - Slow IRC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV2_SHIFT)) & SCG_SIRCDIV_SIRCDIV2_MASK)
+#define SCG_SIRCDIV_SIRCDIV3_MASK                (0x70000U)
+#define SCG_SIRCDIV_SIRCDIV3_SHIFT               (16U)
+/*! SIRCDIV3 - Slow IRC Clock Divider 3
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV3_SHIFT)) & SCG_SIRCDIV_SIRCDIV3_MASK)
+/*! @} */
+
+/*! @name SIRCCFG - Slow IRC Configuration Register */
+/*! @{ */
+#define SCG_SIRCCFG_RANGE_MASK                   (0x1U)
+#define SCG_SIRCCFG_RANGE_SHIFT                  (0U)
+/*! RANGE - Frequency Range
+ *  0b0..Slow IRC low range clock (2MHz)
+ *  0b1..Slow IRC high range clock (8 MHz)
+ */
+#define SCG_SIRCCFG_RANGE(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCFG_RANGE_SHIFT)) & SCG_SIRCCFG_RANGE_MASK)
+/*! @} */
+
+/*! @name FIRCCSR - Fast IRC Control Status Register */
+/*! @{ */
+#define SCG_FIRCCSR_FIRCEN_MASK                  (0x1U)
+#define SCG_FIRCCSR_FIRCEN_SHIFT                 (0U)
+/*! FIRCEN - Fast IRC Enable
+ *  0b0..Fast IRC is disabled
+ *  0b1..Fast IRC is enabled
+ */
+#define SCG_FIRCCSR_FIRCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCEN_SHIFT)) & SCG_FIRCCSR_FIRCEN_MASK)
+#define SCG_FIRCCSR_FIRCSTEN_MASK                (0x2U)
+#define SCG_FIRCCSR_FIRCSTEN_SHIFT               (1U)
+/*! FIRCSTEN - Fast IRC Stop Enable
+ *  0b0..Fast IRC is disabled in Stop modes.
+ *  0b1..Fast IRC is enabled in Stop modes
+ */
+#define SCG_FIRCCSR_FIRCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCSTEN_SHIFT)) & SCG_FIRCCSR_FIRCSTEN_MASK)
+#define SCG_FIRCCSR_FIRCLPEN_MASK                (0x4U)
+#define SCG_FIRCCSR_FIRCLPEN_SHIFT               (2U)
+/*! FIRCLPEN - Fast IRC Low Power Enable
+ *  0b0..Fast IRC is disabled in VLP modes
+ *  0b1..Fast IRC is enabled in VLP modes
+ */
+#define SCG_FIRCCSR_FIRCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCLPEN_SHIFT)) & SCG_FIRCCSR_FIRCLPEN_MASK)
+#define SCG_FIRCCSR_FIRCREGOFF_MASK              (0x8U)
+#define SCG_FIRCCSR_FIRCREGOFF_SHIFT             (3U)
+/*! FIRCREGOFF - Fast IRC Regulator Enable
+ *  0b0..Fast IRC Regulator is enabled.
+ *  0b1..Fast IRC Regulator is disabled.
+ */
+#define SCG_FIRCCSR_FIRCREGOFF(x)                (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCREGOFF_SHIFT)) & SCG_FIRCCSR_FIRCREGOFF_MASK)
+#define SCG_FIRCCSR_FIRCTREN_MASK                (0x100U)
+#define SCG_FIRCCSR_FIRCTREN_SHIFT               (8U)
+/*! FIRCTREN - Fast IRC Trim Enable
+ *  0b0..Disable trimming Fast IRC to an external clock source
+ *  0b1..Enable trimming Fast IRC to an external clock source
+ */
+#define SCG_FIRCCSR_FIRCTREN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCTREN_SHIFT)) & SCG_FIRCCSR_FIRCTREN_MASK)
+#define SCG_FIRCCSR_FIRCTRUP_MASK                (0x200U)
+#define SCG_FIRCCSR_FIRCTRUP_SHIFT               (9U)
+/*! FIRCTRUP - Fast IRC Trim Update
+ *  0b0..Disable Fast IRC trimming updates
+ *  0b1..Enable Fast IRC trimming updates
+ */
+#define SCG_FIRCCSR_FIRCTRUP(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCTRUP_SHIFT)) & SCG_FIRCCSR_FIRCTRUP_MASK)
+#define SCG_FIRCCSR_LK_MASK                      (0x800000U)
+#define SCG_FIRCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_FIRCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_LK_SHIFT)) & SCG_FIRCCSR_LK_MASK)
+#define SCG_FIRCCSR_FIRCVLD_MASK                 (0x1000000U)
+#define SCG_FIRCCSR_FIRCVLD_SHIFT                (24U)
+/*! FIRCVLD - Fast IRC Valid status
+ *  0b0..Fast IRC is not enabled or clock is not valid.
+ *  0b1..Fast IRC is enabled and output clock is valid. The clock is valid once there is an output clock from the FIRC analog.
+ */
+#define SCG_FIRCCSR_FIRCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCVLD_SHIFT)) & SCG_FIRCCSR_FIRCVLD_MASK)
+#define SCG_FIRCCSR_FIRCSEL_MASK                 (0x2000000U)
+#define SCG_FIRCCSR_FIRCSEL_SHIFT                (25U)
+/*! FIRCSEL - Fast IRC Selected status
+ *  0b0..Fast IRC is not the system clock source
+ *  0b1..Fast IRC is the system clock source
+ */
+#define SCG_FIRCCSR_FIRCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCSEL_SHIFT)) & SCG_FIRCCSR_FIRCSEL_MASK)
+#define SCG_FIRCCSR_FIRCERR_MASK                 (0x4000000U)
+#define SCG_FIRCCSR_FIRCERR_SHIFT                (26U)
+/*! FIRCERR - Fast IRC Clock Error
+ *  0b0..Error not detected with the Fast IRC trimming.
+ *  0b1..Error detected with the Fast IRC trimming.
+ */
+#define SCG_FIRCCSR_FIRCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCERR_SHIFT)) & SCG_FIRCCSR_FIRCERR_MASK)
+/*! @} */
+
+/*! @name FIRCDIV - Fast IRC Divide Register */
+/*! @{ */
+#define SCG_FIRCDIV_FIRCDIV1_MASK                (0x7U)
+#define SCG_FIRCDIV_FIRCDIV1_SHIFT               (0U)
+/*! FIRCDIV1 - Fast IRC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV1_SHIFT)) & SCG_FIRCDIV_FIRCDIV1_MASK)
+#define SCG_FIRCDIV_FIRCDIV2_MASK                (0x700U)
+#define SCG_FIRCDIV_FIRCDIV2_SHIFT               (8U)
+/*! FIRCDIV2 - Fast IRC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV2_SHIFT)) & SCG_FIRCDIV_FIRCDIV2_MASK)
+#define SCG_FIRCDIV_FIRCDIV3_MASK                (0x70000U)
+#define SCG_FIRCDIV_FIRCDIV3_SHIFT               (16U)
+/*! FIRCDIV3 - Fast IRC Clock Divider 3
+ *  0b000..Clock disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV3_SHIFT)) & SCG_FIRCDIV_FIRCDIV3_MASK)
+/*! @} */
+
+/*! @name FIRCCFG - Fast IRC Configuration Register */
+/*! @{ */
+#define SCG_FIRCCFG_RANGE_MASK                   (0x3U)
+#define SCG_FIRCCFG_RANGE_SHIFT                  (0U)
+/*! RANGE - Frequency Range
+ *  0b00..Fast IRC is trimmed to 48 MHz
+ *  0b01..Fast IRC is trimmed to 52 MHz
+ *  0b10..Fast IRC is trimmed to 56 MHz
+ *  0b11..Fast IRC is trimmed to 60 MHz
+ */
+#define SCG_FIRCCFG_RANGE(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCFG_RANGE_SHIFT)) & SCG_FIRCCFG_RANGE_MASK)
+/*! @} */
+
+/*! @name FIRCTCFG - Fast IRC Trim Configuration Register */
+/*! @{ */
+#define SCG_FIRCTCFG_TRIMSRC_MASK                (0x3U)
+#define SCG_FIRCTCFG_TRIMSRC_SHIFT               (0U)
+/*! TRIMSRC - Trim Source
+ *  0b00..Reserved
+ *  0b01..Reserved
+ *  0b10..System OSC. This option requires that SOSC be divided using the TRIMDIV field to get a frequency slower than 32kHz.
+ *  0b11..RTC OSC (32.768 kHz)
+ */
+#define SCG_FIRCTCFG_TRIMSRC(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCTCFG_TRIMSRC_SHIFT)) & SCG_FIRCTCFG_TRIMSRC_MASK)
+#define SCG_FIRCTCFG_TRIMDIV_MASK                (0x700U)
+#define SCG_FIRCTCFG_TRIMDIV_SHIFT               (8U)
+/*! TRIMDIV - Fast IRC Trim Predivide
+ *  0b000..Divide by 1
+ *  0b001..Divide by 128
+ *  0b010..Divide by 256
+ *  0b011..Divide by 512
+ *  0b100..Divide by 1024
+ *  0b101..Divide by 2048
+ *  0b110..Reserved. Writing this value will result in Divide by 1.
+ *  0b111..Reserved. Writing this value will result in a Divide by 1.
+ */
+#define SCG_FIRCTCFG_TRIMDIV(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCTCFG_TRIMDIV_SHIFT)) & SCG_FIRCTCFG_TRIMDIV_MASK)
+/*! @} */
+
+/*! @name FIRCSTAT - Fast IRC Status Register */
+/*! @{ */
+#define SCG_FIRCSTAT_TRIMFINE_MASK               (0x7FU)
+#define SCG_FIRCSTAT_TRIMFINE_SHIFT              (0U)
+#define SCG_FIRCSTAT_TRIMFINE(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_FIRCSTAT_TRIMFINE_SHIFT)) & SCG_FIRCSTAT_TRIMFINE_MASK)
+#define SCG_FIRCSTAT_TRIMCOAR_MASK               (0x3F00U)
+#define SCG_FIRCSTAT_TRIMCOAR_SHIFT              (8U)
+#define SCG_FIRCSTAT_TRIMCOAR(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_FIRCSTAT_TRIMCOAR_SHIFT)) & SCG_FIRCSTAT_TRIMCOAR_MASK)
+/*! @} */
+
+/*! @name ROSCCSR - RTC OSC Control Status Register */
+/*! @{ */
+#define SCG_ROSCCSR_ROSCCM_MASK                  (0x10000U)
+#define SCG_ROSCCSR_ROSCCM_SHIFT                 (16U)
+/*! ROSCCM - RTC OSC Clock Monitor
+ *  0b0..RTC OSC Clock Monitor is disabled
+ *  0b1..RTC OSC Clock Monitor is enabled
+ */
+#define SCG_ROSCCSR_ROSCCM(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCCM_SHIFT)) & SCG_ROSCCSR_ROSCCM_MASK)
+#define SCG_ROSCCSR_ROSCCMRE_MASK                (0x20000U)
+#define SCG_ROSCCSR_ROSCCMRE_SHIFT               (17U)
+/*! ROSCCMRE - RTC OSC Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_ROSCCSR_ROSCCMRE(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCCMRE_SHIFT)) & SCG_ROSCCSR_ROSCCMRE_MASK)
+#define SCG_ROSCCSR_LK_MASK                      (0x800000U)
+#define SCG_ROSCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_ROSCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_LK_SHIFT)) & SCG_ROSCCSR_LK_MASK)
+#define SCG_ROSCCSR_ROSCVLD_MASK                 (0x1000000U)
+#define SCG_ROSCCSR_ROSCVLD_SHIFT                (24U)
+/*! ROSCVLD - RTC OSC Valid
+ *  0b0..RTC OSC is not enabled or clock is not valid
+ *  0b1..RTC OSC is enabled and output clock is valid
+ */
+#define SCG_ROSCCSR_ROSCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCVLD_SHIFT)) & SCG_ROSCCSR_ROSCVLD_MASK)
+#define SCG_ROSCCSR_ROSCSEL_MASK                 (0x2000000U)
+#define SCG_ROSCCSR_ROSCSEL_SHIFT                (25U)
+/*! ROSCSEL - RTC OSC Selected
+ *  0b0..RTC OSC is not the system clock source
+ *  0b1..RTC OSC is the system clock source
+ */
+#define SCG_ROSCCSR_ROSCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCSEL_SHIFT)) & SCG_ROSCCSR_ROSCSEL_MASK)
+#define SCG_ROSCCSR_ROSCERR_MASK                 (0x4000000U)
+#define SCG_ROSCCSR_ROSCERR_SHIFT                (26U)
+/*! ROSCERR - RTC OSC Clock Error
+ *  0b0..RTC OSC Clock Monitor is disabled or has not detected an error
+ *  0b1..RTC OSC Clock Monitor is enabled and detected an RTC loss of clock error
+ */
+#define SCG_ROSCCSR_ROSCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCERR_SHIFT)) & SCG_ROSCCSR_ROSCERR_MASK)
+/*! @} */
+
+/*! @name LPFLLCSR - Low Power FLL Control Status Register */
+/*! @{ */
+#define SCG_LPFLLCSR_LPFLLEN_MASK                (0x1U)
+#define SCG_LPFLLCSR_LPFLLEN_SHIFT               (0U)
+/*! LPFLLEN - LPFLL Enable
+ *  0b0..LPFLL is disabled
+ *  0b1..LPFLL is enabled
+ */
+#define SCG_LPFLLCSR_LPFLLEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLEN_SHIFT)) & SCG_LPFLLCSR_LPFLLEN_MASK)
+#define SCG_LPFLLCSR_LPFLLSTEN_MASK              (0x2U)
+#define SCG_LPFLLCSR_LPFLLSTEN_SHIFT             (1U)
+/*! LPFLLSTEN - LPFLL Stop Enable
+ *  0b0..LPFLL is disabled in Stop modes.
+ *  0b1..LPFLL is enabled in Stop modes
+ */
+#define SCG_LPFLLCSR_LPFLLSTEN(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLSTEN_SHIFT)) & SCG_LPFLLCSR_LPFLLSTEN_MASK)
+#define SCG_LPFLLCSR_LPFLLTREN_MASK              (0x100U)
+#define SCG_LPFLLCSR_LPFLLTREN_SHIFT             (8U)
+/*! LPFLLTREN - LPFLL Trim Enable
+ *  0b0..Disable trimming LPFLL to an reference clock source
+ *  0b1..Enable trimming LPFLL to an reference clock source
+ */
+#define SCG_LPFLLCSR_LPFLLTREN(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTREN_SHIFT)) & SCG_LPFLLCSR_LPFLLTREN_MASK)
+#define SCG_LPFLLCSR_LPFLLTRUP_MASK              (0x200U)
+#define SCG_LPFLLCSR_LPFLLTRUP_SHIFT             (9U)
+/*! LPFLLTRUP - LPFLL Trim Update
+ *  0b0..Disable LPFLL trimming updates. LPFLL frequency determined by AUTOTRIM written value.
+ *  0b1..Enable LPFLL trimming updates. LPFLL frequency determined by reference clock multiplication
+ */
+#define SCG_LPFLLCSR_LPFLLTRUP(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTRUP_SHIFT)) & SCG_LPFLLCSR_LPFLLTRUP_MASK)
+#define SCG_LPFLLCSR_LPFLLTRMLOCK_MASK           (0x400U)
+#define SCG_LPFLLCSR_LPFLLTRMLOCK_SHIFT          (10U)
+/*! LPFLLTRMLOCK - LPFLL Trim LOCK
+ *  0b0..LPFLL not Locked
+ *  0b1..LPFLL trimmed and Locked
+ */
+#define SCG_LPFLLCSR_LPFLLTRMLOCK(x)             (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTRMLOCK_SHIFT)) & SCG_LPFLLCSR_LPFLLTRMLOCK_MASK)
+#define SCG_LPFLLCSR_LPFLLCM_MASK                (0x10000U)
+#define SCG_LPFLLCSR_LPFLLCM_SHIFT               (16U)
+/*! LPFLLCM - LPFLL Clock Monitor
+ *  0b0..LPFLL Clock Monitor is disabled
+ *  0b1..LPFLL Clock Monitor is enabled
+ */
+#define SCG_LPFLLCSR_LPFLLCM(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLCM_SHIFT)) & SCG_LPFLLCSR_LPFLLCM_MASK)
+#define SCG_LPFLLCSR_LPFLLCMRE_MASK              (0x20000U)
+#define SCG_LPFLLCSR_LPFLLCMRE_SHIFT             (17U)
+/*! LPFLLCMRE - LPFLL Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_LPFLLCSR_LPFLLCMRE(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLCMRE_SHIFT)) & SCG_LPFLLCSR_LPFLLCMRE_MASK)
+#define SCG_LPFLLCSR_LK_MASK                     (0x800000U)
+#define SCG_LPFLLCSR_LK_SHIFT                    (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_LPFLLCSR_LK(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LK_SHIFT)) & SCG_LPFLLCSR_LK_MASK)
+#define SCG_LPFLLCSR_LPFLLVLD_MASK               (0x1000000U)
+#define SCG_LPFLLCSR_LPFLLVLD_SHIFT              (24U)
+/*! LPFLLVLD - LPFLL Valid
+ *  0b0..LPFLL is not enabled or clock is not valid.
+ *  0b1..LPFLL is enabled and output clock is valid.
+ */
+#define SCG_LPFLLCSR_LPFLLVLD(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLVLD_SHIFT)) & SCG_LPFLLCSR_LPFLLVLD_MASK)
+#define SCG_LPFLLCSR_LPFLLSEL_MASK               (0x2000000U)
+#define SCG_LPFLLCSR_LPFLLSEL_SHIFT              (25U)
+/*! LPFLLSEL - LPFLL Selected
+ *  0b0..LPFLL is not the system clock source
+ *  0b1..LPFLL is the system clock source
+ */
+#define SCG_LPFLLCSR_LPFLLSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLSEL_SHIFT)) & SCG_LPFLLCSR_LPFLLSEL_MASK)
+#define SCG_LPFLLCSR_LPFLLERR_MASK               (0x4000000U)
+#define SCG_LPFLLCSR_LPFLLERR_SHIFT              (26U)
+/*! LPFLLERR - LPFLL Clock Error
+ *  0b0..Error not detected with the LPFLL trimming.
+ *  0b1..Error detected with the LPFLL trimming.
+ */
+#define SCG_LPFLLCSR_LPFLLERR(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLERR_SHIFT)) & SCG_LPFLLCSR_LPFLLERR_MASK)
+/*! @} */
+
+/*! @name LPFLLDIV - Low Power FLL Divide Register */
+/*! @{ */
+#define SCG_LPFLLDIV_LPFLLDIV1_MASK              (0x7U)
+#define SCG_LPFLLDIV_LPFLLDIV1_SHIFT             (0U)
+/*! LPFLLDIV1 - LPFLL Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV1(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV1_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV1_MASK)
+#define SCG_LPFLLDIV_LPFLLDIV2_MASK              (0x700U)
+#define SCG_LPFLLDIV_LPFLLDIV2_SHIFT             (8U)
+/*! LPFLLDIV2 - LPFLL Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV2(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV2_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV2_MASK)
+#define SCG_LPFLLDIV_LPFLLDIV3_MASK              (0x70000U)
+#define SCG_LPFLLDIV_LPFLLDIV3_SHIFT             (16U)
+/*! LPFLLDIV3 - LPFLL Clock Divide 3
+ *  0b000..Clock disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV3(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV3_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV3_MASK)
+/*! @} */
+
+/*! @name LPFLLCFG - Low Power FLL Configuration Register */
+/*! @{ */
+#define SCG_LPFLLCFG_FSEL_MASK                   (0x3U)
+#define SCG_LPFLLCFG_FSEL_SHIFT                  (0U)
+/*! FSEL - Frequency Select
+ *  0b00..LPFLL is trimmed to 48 MHz.
+ *  0b01..LPFLL is trimmed to 72 MHz.
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define SCG_LPFLLCFG_FSEL(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCFG_FSEL_SHIFT)) & SCG_LPFLLCFG_FSEL_MASK)
+/*! @} */
+
+/*! @name LPFLLTCFG - Low Power FLL Trim Configuration Register */
+/*! @{ */
+#define SCG_LPFLLTCFG_TRIMSRC_MASK               (0x3U)
+#define SCG_LPFLLTCFG_TRIMSRC_SHIFT              (0U)
+/*! TRIMSRC - Trim Source
+ *  0b00..SIRC
+ *  0b01..FIRC
+ *  0b10..System OSC
+ *  0b11..RTC OSC
+ */
+#define SCG_LPFLLTCFG_TRIMSRC(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_TRIMSRC_SHIFT)) & SCG_LPFLLTCFG_TRIMSRC_MASK)
+#define SCG_LPFLLTCFG_TRIMDIV_MASK               (0x1F00U)
+#define SCG_LPFLLTCFG_TRIMDIV_SHIFT              (8U)
+#define SCG_LPFLLTCFG_TRIMDIV(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_TRIMDIV_SHIFT)) & SCG_LPFLLTCFG_TRIMDIV_MASK)
+#define SCG_LPFLLTCFG_LOCKW2LSB_MASK             (0x10000U)
+#define SCG_LPFLLTCFG_LOCKW2LSB_SHIFT            (16U)
+/*! LOCKW2LSB - Lock LPFLL with 2 LSBS
+ *  0b0..LPFLL locks within 1LSB (0.4%)
+ *  0b1..LPFLL locks within 2LSB (0.8%)
+ */
+#define SCG_LPFLLTCFG_LOCKW2LSB(x)               (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_LOCKW2LSB_SHIFT)) & SCG_LPFLLTCFG_LOCKW2LSB_MASK)
+/*! @} */
+
+/*! @name LPFLLSTAT - Low Power FLL Status Register */
+/*! @{ */
+#define SCG_LPFLLSTAT_AUTOTRIM_MASK              (0xFFU)
+#define SCG_LPFLLSTAT_AUTOTRIM_SHIFT             (0U)
+#define SCG_LPFLLSTAT_AUTOTRIM(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLSTAT_AUTOTRIM_SHIFT)) & SCG_LPFLLSTAT_AUTOTRIM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SCG_Register_Masks */
+
+
+/* SCG - Peripheral instance base addresses */
+/** Peripheral SCG base address */
+#define SCG_BASE                                 (0x4002C000u)
+/** Peripheral SCG base pointer */
+#define SCG                                      ((SCG_Type *)SCG_BASE)
+/** Array initializer of SCG peripheral base addresses */
+#define SCG_BASE_ADDRS                           { SCG_BASE }
+/** Array initializer of SCG peripheral base pointers */
+#define SCG_BASE_PTRS                            { SCG }
+/** Interrupt vectors for the SCG peripheral type */
+#define SCG_IRQS                                 { SCG_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SCG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SEMA42 Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SEMA42_Peripheral_Access_Layer SEMA42 Peripheral Access Layer
+ * @{
+ */
+
+/** SEMA42 - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t GATE3;                              /**< Gate Register, offset: 0x0 */
+  __IO uint8_t GATE2;                              /**< Gate Register, offset: 0x1 */
+  __IO uint8_t GATE1;                              /**< Gate Register, offset: 0x2 */
+  __IO uint8_t GATE0;                              /**< Gate Register, offset: 0x3 */
+  __IO uint8_t GATE7;                              /**< Gate Register, offset: 0x4 */
+  __IO uint8_t GATE6;                              /**< Gate Register, offset: 0x5 */
+  __IO uint8_t GATE5;                              /**< Gate Register, offset: 0x6 */
+  __IO uint8_t GATE4;                              /**< Gate Register, offset: 0x7 */
+  __IO uint8_t GATE11;                             /**< Gate Register, offset: 0x8 */
+  __IO uint8_t GATE10;                             /**< Gate Register, offset: 0x9 */
+  __IO uint8_t GATE9;                              /**< Gate Register, offset: 0xA */
+  __IO uint8_t GATE8;                              /**< Gate Register, offset: 0xB */
+  __IO uint8_t GATE15;                             /**< Gate Register, offset: 0xC */
+  __IO uint8_t GATE14;                             /**< Gate Register, offset: 0xD */
+  __IO uint8_t GATE13;                             /**< Gate Register, offset: 0xE */
+  __IO uint8_t GATE12;                             /**< Gate Register, offset: 0xF */
+       uint8_t RESERVED_0[50];
+  union {                                          /* offset: 0x42 */
+    __I  uint16_t RSTGT_R;                           /**< Reset Gate Read, offset: 0x42 */
+    __O  uint16_t RSTGT_W;                           /**< Reset Gate Write, offset: 0x42 */
+  };
+} SEMA42_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SEMA42 Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SEMA42_Register_Masks SEMA42 Register Masks
+ * @{
+ */
+
+/*! @name GATE3 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE3_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE3_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE3_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE3_GTFSM_SHIFT)) & SEMA42_GATE3_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE2 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE2_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE2_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE2_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE2_GTFSM_SHIFT)) & SEMA42_GATE2_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE1 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE1_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE1_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE1_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE1_GTFSM_SHIFT)) & SEMA42_GATE1_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE0 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE0_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE0_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE0_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE0_GTFSM_SHIFT)) & SEMA42_GATE0_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE7 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE7_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE7_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE7_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE7_GTFSM_SHIFT)) & SEMA42_GATE7_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE6 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE6_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE6_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE6_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE6_GTFSM_SHIFT)) & SEMA42_GATE6_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE5 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE5_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE5_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE5_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE5_GTFSM_SHIFT)) & SEMA42_GATE5_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE4 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE4_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE4_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE4_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE4_GTFSM_SHIFT)) & SEMA42_GATE4_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE11 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE11_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE11_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE11_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE11_GTFSM_SHIFT)) & SEMA42_GATE11_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE10 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE10_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE10_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE10_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE10_GTFSM_SHIFT)) & SEMA42_GATE10_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE9 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE9_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE9_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE9_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE9_GTFSM_SHIFT)) & SEMA42_GATE9_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE8 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE8_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE8_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE8_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE8_GTFSM_SHIFT)) & SEMA42_GATE8_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE15 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE15_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE15_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE15_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE15_GTFSM_SHIFT)) & SEMA42_GATE15_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE14 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE14_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE14_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE14_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE14_GTFSM_SHIFT)) & SEMA42_GATE14_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE13 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE13_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE13_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE13_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE13_GTFSM_SHIFT)) & SEMA42_GATE13_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE12 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE12_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE12_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE12_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE12_GTFSM_SHIFT)) & SEMA42_GATE12_GTFSM_MASK)
+/*! @} */
+
+/*! @name RSTGT_R - Reset Gate Read */
+/*! @{ */
+#define SEMA42_RSTGT_R_RSTGTN_MASK               (0xFFU)
+#define SEMA42_RSTGT_R_RSTGTN_SHIFT              (0U)
+#define SEMA42_RSTGT_R_RSTGTN(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGTN_SHIFT)) & SEMA42_RSTGT_R_RSTGTN_MASK)
+#define SEMA42_RSTGT_R_RSTGMS_MASK               (0xF00U)
+#define SEMA42_RSTGT_R_RSTGMS_SHIFT              (8U)
+#define SEMA42_RSTGT_R_RSTGMS(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGMS_SHIFT)) & SEMA42_RSTGT_R_RSTGMS_MASK)
+#define SEMA42_RSTGT_R_RSTGSM_MASK               (0x3000U)
+#define SEMA42_RSTGT_R_RSTGSM_SHIFT              (12U)
+/*! RSTGSM - RSTGSM
+ *  0b00..Idle, waiting for the first data pattern write.
+ *  0b01..Waiting for the second data pattern write.
+ *  0b10..The 2-write sequence has completed. Generate the specified gate reset(s). After the reset is performed, this machine returns to the idle (waiting for first data pattern write) state. The "01" state persists for only one clock cycle. Software cannot observe this state.
+ *  0b11..This state encoding is never used and therefore reserved.
+ */
+#define SEMA42_RSTGT_R_RSTGSM(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGSM_SHIFT)) & SEMA42_RSTGT_R_RSTGSM_MASK)
+#define SEMA42_RSTGT_R_ROZ_MASK                  (0xC000U)
+#define SEMA42_RSTGT_R_ROZ_SHIFT                 (14U)
+#define SEMA42_RSTGT_R_ROZ(x)                    (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_ROZ_SHIFT)) & SEMA42_RSTGT_R_ROZ_MASK)
+/*! @} */
+
+/*! @name RSTGT_W - Reset Gate Write */
+/*! @{ */
+#define SEMA42_RSTGT_W_RSTGTN_MASK               (0xFFU)
+#define SEMA42_RSTGT_W_RSTGTN_SHIFT              (0U)
+#define SEMA42_RSTGT_W_RSTGTN(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_W_RSTGTN_SHIFT)) & SEMA42_RSTGT_W_RSTGTN_MASK)
+#define SEMA42_RSTGT_W_RSTGDP_MASK               (0xFF00U)
+#define SEMA42_RSTGT_W_RSTGDP_SHIFT              (8U)
+#define SEMA42_RSTGT_W_RSTGDP(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_W_RSTGDP_SHIFT)) & SEMA42_RSTGT_W_RSTGDP_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SEMA42_Register_Masks */
+
+
+/* SEMA42 - Peripheral instance base addresses */
+/** Peripheral SEMA420 base address */
+#define SEMA420_BASE                             (0x4001B000u)
+/** Peripheral SEMA420 base pointer */
+#define SEMA420                                  ((SEMA42_Type *)SEMA420_BASE)
+/** Peripheral SEMA421 base address */
+#define SEMA421_BASE                             (0x4101B000u)
+/** Peripheral SEMA421 base pointer */
+#define SEMA421                                  ((SEMA42_Type *)SEMA421_BASE)
+/** Array initializer of SEMA42 peripheral base addresses */
+#define SEMA42_BASE_ADDRS                        { SEMA420_BASE, SEMA421_BASE }
+/** Array initializer of SEMA42 peripheral base pointers */
+#define SEMA42_BASE_PTRS                         { SEMA420, SEMA421 }
+
+/*!
+ * @}
+ */ /* end of group SEMA42_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SIM_Peripheral_Access_Layer SIM Peripheral Access Layer
+ * @{
+ */
+
+/** SIM - Register Layout Typedef */
+typedef struct {
+       uint8_t RESERVED_0[4];
+  __IO uint32_t CHIPCTRL;                          /**< Chip Control Register, offset: 0x4 */
+       uint8_t RESERVED_1[28];
+  __I  uint32_t SDID;                              /**< System Device Identification Register, offset: 0x24 */
+       uint8_t RESERVED_2[36];
+  __IO uint32_t FCFG1;                             /**< Flash Configuration Register 1, offset: 0x4C */
+  __I  uint32_t FCFG2;                             /**< Flash Configuration Register 2, offset: 0x50 */
+       uint8_t RESERVED_3[4];
+  __I  uint32_t UIDH;                              /**< Unique Identification Register High, offset: 0x58 */
+  __I  uint32_t UIDM;                              /**< Unique Identification Register Mid Middle, offset: 0x5C */
+  __I  uint32_t UIDL;                              /**< Unique Identification Register Mid Low, offset: 0x60 */
+  __I  uint32_t RFADDRL;                           /**< RF Mac Address Low, offset: 0x64 */
+  __I  uint32_t RFADDRH;                           /**< RF MAC Address High, offset: 0x68 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t MISC2;                             /**< MISC2 Register, offset: 0x70 */
+} SIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SIM_Register_Masks SIM Register Masks
+ * @{
+ */
+
+/*! @name CHIPCTRL - Chip Control Register */
+/*! @{ */
+#define SIM_CHIPCTRL_FBSL_MASK                   (0x300U)
+#define SIM_CHIPCTRL_FBSL_SHIFT                  (8U)
+/*! FBSL - FLEXBUS security level
+ *  0b00..All off-chip access(instruction and data) via the Flexbus or sdram are disallowed
+ *  0b01..All off-chip access(instruction and data) via the Flexbus or sdram are disallowed
+ *  0b10..off-chip instruction access are disallowed, data access are allowed
+ *  0b11..off-chip instruction access and data access are allowed
+ */
+#define SIM_CHIPCTRL_FBSL(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_CHIPCTRL_FBSL_SHIFT)) & SIM_CHIPCTRL_FBSL_MASK)
+/*! @} */
+
+/*! @name SDID - System Device Identification Register */
+/*! @{ */
+#define SIM_SDID_PINID_MASK                      (0xFU)
+#define SIM_SDID_PINID_SHIFT                     (0U)
+/*! PINID - PINID
+ *  0b1000..176-pin
+ *  0b1101..191-pin
+ */
+#define SIM_SDID_PINID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_PINID_SHIFT)) & SIM_SDID_PINID_MASK)
+#define SIM_SDID_DIEID_MASK                      (0xF80U)
+#define SIM_SDID_DIEID_SHIFT                     (7U)
+#define SIM_SDID_DIEID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_DIEID_SHIFT)) & SIM_SDID_DIEID_MASK)
+#define SIM_SDID_REVID_MASK                      (0xF000U)
+#define SIM_SDID_REVID_SHIFT                     (12U)
+#define SIM_SDID_REVID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_REVID_SHIFT)) & SIM_SDID_REVID_MASK)
+#define SIM_SDID_SERIESID_MASK                   (0xF00000U)
+#define SIM_SDID_SERIESID_SHIFT                  (20U)
+#define SIM_SDID_SERIESID(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SERIESID_SHIFT)) & SIM_SDID_SERIESID_MASK)
+#define SIM_SDID_SUBFAMID_MASK                   (0xF000000U)
+#define SIM_SDID_SUBFAMID_SHIFT                  (24U)
+/*! SUBFAMID - SUBFAMID
+ *  0b0010..02
+ *  0b0011..03
+ *  0b0100..04
+ */
+#define SIM_SDID_SUBFAMID(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SUBFAMID_SHIFT)) & SIM_SDID_SUBFAMID_MASK)
+#define SIM_SDID_FAMID_MASK                      (0xF0000000U)
+#define SIM_SDID_FAMID_SHIFT                     (28U)
+/*! FAMID - FAMID
+ *  0b0000..RV32M1
+ */
+#define SIM_SDID_FAMID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_FAMID_SHIFT)) & SIM_SDID_FAMID_MASK)
+/*! @} */
+
+/*! @name FCFG1 - Flash Configuration Register 1 */
+/*! @{ */
+#define SIM_FCFG1_FLASHDIS_MASK                  (0x1U)
+#define SIM_FCFG1_FLASHDIS_SHIFT                 (0U)
+/*! FLASHDIS - Flash disable
+ *  0b0..Flash is enabled
+ *  0b1..Flash is disabled
+ */
+#define SIM_FCFG1_FLASHDIS(x)                    (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDIS_SHIFT)) & SIM_FCFG1_FLASHDIS_MASK)
+#define SIM_FCFG1_FLASHDOZE_MASK                 (0x2U)
+#define SIM_FCFG1_FLASHDOZE_SHIFT                (1U)
+/*! FLASHDOZE - Flash Doze
+ *  0b0..Flash remains enabled during Doze mode
+ *  0b1..Flash is disabled for the duration of Doze mode
+ */
+#define SIM_FCFG1_FLASHDOZE(x)                   (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDOZE_SHIFT)) & SIM_FCFG1_FLASHDOZE_MASK)
+#define SIM_FCFG1_FLSAUTODISEN_MASK              (0x4U)
+#define SIM_FCFG1_FLSAUTODISEN_SHIFT             (2U)
+/*! FLSAUTODISEN - Flash auto disable enabled.
+ *  0b0..Disable flash auto disable function
+ *  0b1..Enable flash auto disable function
+ */
+#define SIM_FCFG1_FLSAUTODISEN(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLSAUTODISEN_SHIFT)) & SIM_FCFG1_FLSAUTODISEN_MASK)
+#define SIM_FCFG1_FLSAUTODISWD_MASK              (0x3FF8U)
+#define SIM_FCFG1_FLSAUTODISWD_SHIFT             (3U)
+#define SIM_FCFG1_FLSAUTODISWD(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLSAUTODISWD_SHIFT)) & SIM_FCFG1_FLSAUTODISWD_MASK)
+#define SIM_FCFG1_CORE1_SRAMSIZE_MASK            (0xF0000U)
+#define SIM_FCFG1_CORE1_SRAMSIZE_SHIFT           (16U)
+/*! CORE1_SRAMSIZE
+ *  0b1001..CM0+ has 128 KB SRAM
+ */
+#define SIM_FCFG1_CORE1_SRAMSIZE(x)              (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE1_SRAMSIZE_SHIFT)) & SIM_FCFG1_CORE1_SRAMSIZE_MASK)
+#define SIM_FCFG1_CORE0_SRAMSIZE_MASK            (0xF00000U)
+#define SIM_FCFG1_CORE0_SRAMSIZE_SHIFT           (20U)
+/*! CORE0_SRAMSIZE
+ *  0b1010..CM4 has 256 KB SRAM
+ */
+#define SIM_FCFG1_CORE0_SRAMSIZE(x)              (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE0_SRAMSIZE_SHIFT)) & SIM_FCFG1_CORE0_SRAMSIZE_MASK)
+#define SIM_FCFG1_CORE1_PFSIZE_MASK              (0xF000000U)
+#define SIM_FCFG1_CORE1_PFSIZE_SHIFT             (24U)
+/*! CORE1_PFSIZE
+ *  0b1010..CM0+ has 256 KB flash size.
+ */
+#define SIM_FCFG1_CORE1_PFSIZE(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE1_PFSIZE_SHIFT)) & SIM_FCFG1_CORE1_PFSIZE_MASK)
+#define SIM_FCFG1_CORE0_PFSIZE_MASK              (0xF0000000U)
+#define SIM_FCFG1_CORE0_PFSIZE_SHIFT             (28U)
+/*! CORE0_PFSIZE
+ *  0b1100..CM4 has 1 MB flash size.
+ */
+#define SIM_FCFG1_CORE0_PFSIZE(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE0_PFSIZE_SHIFT)) & SIM_FCFG1_CORE0_PFSIZE_MASK)
+/*! @} */
+
+/*! @name FCFG2 - Flash Configuration Register 2 */
+/*! @{ */
+#define SIM_FCFG2_MAXADDR2_MASK                  (0x3F0000U)
+#define SIM_FCFG2_MAXADDR2_SHIFT                 (16U)
+#define SIM_FCFG2_MAXADDR2(x)                    (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR2_SHIFT)) & SIM_FCFG2_MAXADDR2_MASK)
+#define SIM_FCFG2_MAXADDR01_MASK                 (0x7F000000U)
+#define SIM_FCFG2_MAXADDR01_SHIFT                (24U)
+#define SIM_FCFG2_MAXADDR01(x)                   (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR01_SHIFT)) & SIM_FCFG2_MAXADDR01_MASK)
+#define SIM_FCFG2_SWAP_MASK                      (0x80000000U)
+#define SIM_FCFG2_SWAP_SHIFT                     (31U)
+/*! SWAP - SWAP
+ *  0b0..Logical P-flash Block 0 is located at relative address 0x0000
+ *  0b1..Logical P-flash Block 1 is located at relative address 0x0000
+ */
+#define SIM_FCFG2_SWAP(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_SWAP_SHIFT)) & SIM_FCFG2_SWAP_MASK)
+/*! @} */
+
+/*! @name UIDH - Unique Identification Register High */
+/*! @{ */
+#define SIM_UIDH_UID_MASK                        (0xFFFFU)
+#define SIM_UIDH_UID_SHIFT                       (0U)
+#define SIM_UIDH_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDH_UID_SHIFT)) & SIM_UIDH_UID_MASK)
+/*! @} */
+
+/*! @name UIDM - Unique Identification Register Mid Middle */
+/*! @{ */
+#define SIM_UIDM_UID_MASK                        (0xFFFFFFFFU)
+#define SIM_UIDM_UID_SHIFT                       (0U)
+#define SIM_UIDM_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDM_UID_SHIFT)) & SIM_UIDM_UID_MASK)
+/*! @} */
+
+/*! @name UIDL - Unique Identification Register Mid Low */
+/*! @{ */
+#define SIM_UIDL_UID_MASK                        (0xFFFFFFFFU)
+#define SIM_UIDL_UID_SHIFT                       (0U)
+#define SIM_UIDL_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDL_UID_SHIFT)) & SIM_UIDL_UID_MASK)
+/*! @} */
+
+/*! @name RFADDRL - RF Mac Address Low */
+/*! @{ */
+#define SIM_RFADDRL_MACADDR0_MASK                (0xFFU)
+#define SIM_RFADDRL_MACADDR0_SHIFT               (0U)
+#define SIM_RFADDRL_MACADDR0(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR0_SHIFT)) & SIM_RFADDRL_MACADDR0_MASK)
+#define SIM_RFADDRL_MACADDR1_MASK                (0xFF00U)
+#define SIM_RFADDRL_MACADDR1_SHIFT               (8U)
+#define SIM_RFADDRL_MACADDR1(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR1_SHIFT)) & SIM_RFADDRL_MACADDR1_MASK)
+#define SIM_RFADDRL_MACADDR2_MASK                (0xFF0000U)
+#define SIM_RFADDRL_MACADDR2_SHIFT               (16U)
+#define SIM_RFADDRL_MACADDR2(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR2_SHIFT)) & SIM_RFADDRL_MACADDR2_MASK)
+#define SIM_RFADDRL_MACADDR3_MASK                (0xFF000000U)
+#define SIM_RFADDRL_MACADDR3_SHIFT               (24U)
+#define SIM_RFADDRL_MACADDR3(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR3_SHIFT)) & SIM_RFADDRL_MACADDR3_MASK)
+/*! @} */
+
+/*! @name RFADDRH - RF MAC Address High */
+/*! @{ */
+#define SIM_RFADDRH_MACADDR4_MASK                (0xFFU)
+#define SIM_RFADDRH_MACADDR4_SHIFT               (0U)
+#define SIM_RFADDRH_MACADDR4(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRH_MACADDR4_SHIFT)) & SIM_RFADDRH_MACADDR4_MASK)
+/*! @} */
+
+/*! @name MISC2 - MISC2 Register */
+/*! @{ */
+#define SIM_MISC2_SYSTICK_CLK_EN_MASK            (0x1U)
+#define SIM_MISC2_SYSTICK_CLK_EN_SHIFT           (0U)
+/*! systick_clk_en - Systick clock enable
+ *  0b0..Systick clock is disabled
+ *  0b1..Systick clock is enabled
+ */
+#define SIM_MISC2_SYSTICK_CLK_EN(x)              (((uint32_t)(((uint32_t)(x)) << SIM_MISC2_SYSTICK_CLK_EN_SHIFT)) & SIM_MISC2_SYSTICK_CLK_EN_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SIM_Register_Masks */
+
+
+/* SIM - Peripheral instance base addresses */
+/** Peripheral SIM base address */
+#define SIM_BASE                                 (0x40026000u)
+/** Peripheral SIM base pointer */
+#define SIM                                      ((SIM_Type *)SIM_BASE)
+/** Array initializer of SIM peripheral base addresses */
+#define SIM_BASE_ADDRS                           { SIM_BASE }
+/** Array initializer of SIM peripheral base pointers */
+#define SIM_BASE_PTRS                            { SIM }
+
+/*!
+ * @}
+ */ /* end of group SIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SMC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SMC_Peripheral_Access_Layer SMC Peripheral Access Layer
+ * @{
+ */
+
+/** SMC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t PMPROT;                            /**< Power Mode Protection register, offset: 0x8 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t PMCTRL;                            /**< Power Mode Control register, offset: 0x10 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t PMSTAT;                            /**< Power Mode Status register, offset: 0x18 */
+       uint8_t RESERVED_2[4];
+  __I  uint32_t SRS;                               /**< System Reset Status, offset: 0x20 */
+  __IO uint32_t RPC;                               /**< Reset Pin Control, offset: 0x24 */
+  __IO uint32_t SSRS;                              /**< Sticky System Reset Status, offset: 0x28 */
+  __IO uint32_t SRIE;                              /**< System Reset Interrupt Enable, offset: 0x2C */
+  __IO uint32_t SRIF;                              /**< System Reset Interrupt Flag, offset: 0x30 */
+       uint8_t RESERVED_3[12];
+  __IO uint32_t MR;                                /**< Mode Register, offset: 0x40 */
+       uint8_t RESERVED_4[12];
+  __IO uint32_t FM;                                /**< Force Mode Register, offset: 0x50 */
+       uint8_t RESERVED_5[12];
+  __IO uint32_t SRAMLPR;                           /**< SRAM Low Power Register, offset: 0x60 */
+  __IO uint32_t SRAMDSR;                           /**< SRAM Deep Sleep Register, offset: 0x64 */
+} SMC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SMC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SMC_Register_Masks SMC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SMC_VERID_FEATURE_MASK                   (0xFFFFU)
+#define SMC_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000010101011..Default features supported
+ */
+#define SMC_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_VERID_FEATURE_SHIFT)) & SMC_VERID_FEATURE_MASK)
+#define SMC_VERID_MINOR_MASK                     (0xFF0000U)
+#define SMC_VERID_MINOR_SHIFT                    (16U)
+#define SMC_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_VERID_MINOR_SHIFT)) & SMC_VERID_MINOR_MASK)
+#define SMC_VERID_MAJOR_MASK                     (0xFF000000U)
+#define SMC_VERID_MAJOR_SHIFT                    (24U)
+#define SMC_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_VERID_MAJOR_SHIFT)) & SMC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define SMC_PARAM_PWRD_INDPT_MASK                (0x1U)
+#define SMC_PARAM_PWRD_INDPT_SHIFT               (0U)
+#define SMC_PARAM_PWRD_INDPT(x)                  (((uint32_t)(((uint32_t)(x)) << SMC_PARAM_PWRD_INDPT_SHIFT)) & SMC_PARAM_PWRD_INDPT_MASK)
+/*! @} */
+
+/*! @name PMPROT - Power Mode Protection register */
+/*! @{ */
+#define SMC_PMPROT_AVLLS_MASK                    (0x3U)
+#define SMC_PMPROT_AVLLS_SHIFT                   (0U)
+/*! AVLLS - Allow Very-Low-Leakage Stop Mode
+ *  0b00..VLLS mode is not allowed
+ *  0b01..VLLS0/1 mode is allowed
+ *  0b10..VLLS2/3 mode is allowed
+ *  0b11..VLLS0/1/2/3 mode is allowed
+ */
+#define SMC_PMPROT_AVLLS(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AVLLS_SHIFT)) & SMC_PMPROT_AVLLS_MASK)
+#define SMC_PMPROT_ALLS_MASK                     (0x8U)
+#define SMC_PMPROT_ALLS_SHIFT                    (3U)
+/*! ALLS - Allow Low-Leakage Stop Mode
+ *  0b0..LLS is not allowed
+ *  0b1..LLS is allowed
+ */
+#define SMC_PMPROT_ALLS(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_ALLS_SHIFT)) & SMC_PMPROT_ALLS_MASK)
+#define SMC_PMPROT_AVLP_MASK                     (0x20U)
+#define SMC_PMPROT_AVLP_SHIFT                    (5U)
+/*! AVLP - Allow Very-Low-Power Modes
+ *  0b0..VLPR, VLPW, and VLPS are not allowed.
+ *  0b1..VLPR, VLPW, and VLPS are allowed.
+ */
+#define SMC_PMPROT_AVLP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AVLP_SHIFT)) & SMC_PMPROT_AVLP_MASK)
+#define SMC_PMPROT_AHSRUN_MASK                   (0x80U)
+#define SMC_PMPROT_AHSRUN_SHIFT                  (7U)
+/*! AHSRUN - Allow High Speed Run mode
+ *  0b0..HSRUN is not allowed
+ *  0b1..HSRUN is allowed
+ */
+#define SMC_PMPROT_AHSRUN(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AHSRUN_SHIFT)) & SMC_PMPROT_AHSRUN_MASK)
+/*! @} */
+
+/*! @name PMCTRL - Power Mode Control register */
+/*! @{ */
+#define SMC_PMCTRL_STOPM_MASK                    (0x7U)
+#define SMC_PMCTRL_STOPM_SHIFT                   (0U)
+/*! STOPM - Stop Mode Control
+ *  0b000..Normal Stop (STOP)
+ *  0b001..Reserved
+ *  0b010..Very-Low-Power Stop (VLPS)
+ *  0b011..Low-Leakage Stop (LLS)
+ *  0b100..Very-Low-Leakage Stop with SRAM retention(VLLS2/3)
+ *  0b101..Reserved
+ *  0b110..Very-Low-Leakage Stop without SRAM retention (VLLS0/1)
+ *  0b111..Reserved
+ */
+#define SMC_PMCTRL_STOPM(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_STOPM_SHIFT)) & SMC_PMCTRL_STOPM_MASK)
+#define SMC_PMCTRL_RUNM_MASK                     (0x300U)
+#define SMC_PMCTRL_RUNM_SHIFT                    (8U)
+/*! RUNM - Run Mode Control
+ *  0b00..Normal Run mode (RUN)
+ *  0b01..Reserved
+ *  0b10..Very-Low-Power Run mode (VLPR)
+ *  0b11..High Speed Run mode (HSRUN)
+ */
+#define SMC_PMCTRL_RUNM(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_RUNM_SHIFT)) & SMC_PMCTRL_RUNM_MASK)
+#define SMC_PMCTRL_PSTOPO_MASK                   (0x30000U)
+#define SMC_PMCTRL_PSTOPO_SHIFT                  (16U)
+/*! PSTOPO - Partial Stop Option
+ *  0b00..STOP - Normal Stop mode
+ *  0b01..PSTOP1 - Partial Stop with system and bus clock disabled
+ *  0b10..PSTOP2 - Partial Stop with system clock disabled and bus clock enabled
+ *  0b11..PSTOP3 - Partial Stop with system clock enabled and bus clock enabled
+ */
+#define SMC_PMCTRL_PSTOPO(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_PSTOPO_SHIFT)) & SMC_PMCTRL_PSTOPO_MASK)
+/*! @} */
+
+/*! @name PMSTAT - Power Mode Status register */
+/*! @{ */
+#define SMC_PMSTAT_PMSTAT_MASK                   (0xFFU)
+#define SMC_PMSTAT_PMSTAT_SHIFT                  (0U)
+/*! PMSTAT - Power Mode Status
+ *  0b00000001..Current power mode is RUN.
+ *  0b00000010..Current power mode is any STOP mode.
+ *  0b00000100..Current power mode is VLPR.
+ *  0b10000000..Current power mode is HSRUN
+ */
+#define SMC_PMSTAT_PMSTAT(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMSTAT_PMSTAT_SHIFT)) & SMC_PMSTAT_PMSTAT_MASK)
+#define SMC_PMSTAT_STOPSTAT_MASK                 (0xFF000000U)
+#define SMC_PMSTAT_STOPSTAT_SHIFT                (24U)
+#define SMC_PMSTAT_STOPSTAT(x)                   (((uint32_t)(((uint32_t)(x)) << SMC_PMSTAT_STOPSTAT_SHIFT)) & SMC_PMSTAT_STOPSTAT_MASK)
+/*! @} */
+
+/*! @name SRS - System Reset Status */
+/*! @{ */
+#define SMC_SRS_WAKEUP_MASK                      (0x1U)
+#define SMC_SRS_WAKEUP_SHIFT                     (0U)
+/*! WAKEUP - Wakeup Reset
+ *  0b0..Reset not generated by wakeup from VLLS mode.
+ *  0b1..Reset generated by wakeup from VLLS mode.
+ */
+#define SMC_SRS_WAKEUP(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WAKEUP_SHIFT)) & SMC_SRS_WAKEUP_MASK)
+#define SMC_SRS_POR_MASK                         (0x2U)
+#define SMC_SRS_POR_SHIFT                        (1U)
+/*! POR - POR Reset
+ *  0b0..Reset not generated by POR.
+ *  0b1..Reset generated by POR.
+ */
+#define SMC_SRS_POR(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_POR_SHIFT)) & SMC_SRS_POR_MASK)
+#define SMC_SRS_LVD_MASK                         (0x4U)
+#define SMC_SRS_LVD_SHIFT                        (2U)
+/*! LVD - LVD Reset
+ *  0b0..Reset not generated by LVD.
+ *  0b1..Reset generated by LVD.
+ */
+#define SMC_SRS_LVD(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_LVD_SHIFT)) & SMC_SRS_LVD_MASK)
+#define SMC_SRS_HVD_MASK                         (0x8U)
+#define SMC_SRS_HVD_SHIFT                        (3U)
+/*! HVD - HVD Reset
+ *  0b0..Reset not generated by HVD.
+ *  0b1..Reset generated by HVD.
+ */
+#define SMC_SRS_HVD(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_HVD_SHIFT)) & SMC_SRS_HVD_MASK)
+#define SMC_SRS_WARM_MASK                        (0x10U)
+#define SMC_SRS_WARM_SHIFT                       (4U)
+/*! WARM - Warm Reset
+ *  0b0..Reset not generated by Warm Reset source.
+ *  0b1..Reset generated by Warm Reset source.
+ */
+#define SMC_SRS_WARM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WARM_SHIFT)) & SMC_SRS_WARM_MASK)
+#define SMC_SRS_FATAL_MASK                       (0x20U)
+#define SMC_SRS_FATAL_SHIFT                      (5U)
+/*! FATAL - Fatal Reset
+ *  0b0..Reset was not generated by a fatal reset source.
+ *  0b1..Reset was generated by a fatal reset source.
+ */
+#define SMC_SRS_FATAL(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_FATAL_SHIFT)) & SMC_SRS_FATAL_MASK)
+#define SMC_SRS_CORE_MASK                        (0x80U)
+#define SMC_SRS_CORE_SHIFT                       (7U)
+/*! CORE - Core Reset
+ *  0b0..Reset source was not core only reset.
+ *  0b1..Reset source was core reset and reset the core only.
+ */
+#define SMC_SRS_CORE(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE_SHIFT)) & SMC_SRS_CORE_MASK)
+#define SMC_SRS_PIN_MASK                         (0x100U)
+#define SMC_SRS_PIN_SHIFT                        (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset was not generated from the assertion of RESET_B pin.
+ *  0b1..Reset was generated from the assertion of RESET_B pin.
+ */
+#define SMC_SRS_PIN(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_PIN_SHIFT)) & SMC_SRS_PIN_MASK)
+#define SMC_SRS_MDM_MASK                         (0x200U)
+#define SMC_SRS_MDM_SHIFT                        (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset was not generated from the MDM reset request.
+ *  0b1..Reset was generated from the MDM reset request.
+ */
+#define SMC_SRS_MDM(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_MDM_SHIFT)) & SMC_SRS_MDM_MASK)
+#define SMC_SRS_RSTACK_MASK                      (0x400U)
+#define SMC_SRS_RSTACK_SHIFT                     (10U)
+/*! RSTACK - Reset Timeout
+ *  0b0..Reset not generated from Reset Controller Timeout.
+ *  0b1..Reset generated from Reset Controller Timeout.
+ */
+#define SMC_SRS_RSTACK(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_RSTACK_SHIFT)) & SMC_SRS_RSTACK_MASK)
+#define SMC_SRS_STOPACK_MASK                     (0x800U)
+#define SMC_SRS_STOPACK_SHIFT                    (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset not generated by Stop Controller Timeout.
+ *  0b1..Reset generated by Stop Controller Timeout.
+ */
+#define SMC_SRS_STOPACK(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRS_STOPACK_SHIFT)) & SMC_SRS_STOPACK_MASK)
+#define SMC_SRS_SCG_MASK                         (0x1000U)
+#define SMC_SRS_SCG_SHIFT                        (12U)
+/*! SCG - SCG Reset
+ *  0b0..Reset is not generated from an SCG loss of lock or loss of clock.
+ *  0b1..Reset is generated from an SCG loss of lock or loss of clock.
+ */
+#define SMC_SRS_SCG(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_SCG_SHIFT)) & SMC_SRS_SCG_MASK)
+#define SMC_SRS_WDOG_MASK                        (0x2000U)
+#define SMC_SRS_WDOG_SHIFT                       (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset is not generated from the WatchDog timeout.
+ *  0b1..Reset is generated from the WatchDog timeout.
+ */
+#define SMC_SRS_WDOG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WDOG_SHIFT)) & SMC_SRS_WDOG_MASK)
+#define SMC_SRS_SW_MASK                          (0x4000U)
+#define SMC_SRS_SW_SHIFT                         (14U)
+/*! SW - Software Reset
+ *  0b0..Reset not generated by software request from core.
+ *  0b1..Reset generated by software request from core.
+ */
+#define SMC_SRS_SW(x)                            (((uint32_t)(((uint32_t)(x)) << SMC_SRS_SW_SHIFT)) & SMC_SRS_SW_MASK)
+#define SMC_SRS_LOCKUP_MASK                      (0x8000U)
+#define SMC_SRS_LOCKUP_SHIFT                     (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset not generated by core lockup or exception.
+ *  0b1..Reset generated by core lockup or exception.
+ */
+#define SMC_SRS_LOCKUP(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_LOCKUP_SHIFT)) & SMC_SRS_LOCKUP_MASK)
+#define SMC_SRS_CORE0_MASK                       (0x10000U)
+#define SMC_SRS_CORE0_SHIFT                      (16U)
+/*! CORE0 - Core0 System Reset
+ *  0b0..Reset not generated from Core0 system reset source.
+ *  0b1..Reset generated from Core0 system reset source.
+ */
+#define SMC_SRS_CORE0(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE0_SHIFT)) & SMC_SRS_CORE0_MASK)
+#define SMC_SRS_CORE1_MASK                       (0x20000U)
+#define SMC_SRS_CORE1_SHIFT                      (17U)
+/*! CORE1 - Core1 System Reset
+ *  0b0..Reset not generated from Core1 system reset source.
+ *  0b1..Reset generated from Core1 system reset source.
+ */
+#define SMC_SRS_CORE1(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE1_SHIFT)) & SMC_SRS_CORE1_MASK)
+#define SMC_SRS_JTAG_MASK                        (0x10000000U)
+#define SMC_SRS_JTAG_SHIFT                       (28U)
+/*! JTAG - JTAG System Reset
+ *  0b0..Reset not generated by JTAG system reset.
+ *  0b1..Reset generated by JTAG system reset.
+ */
+#define SMC_SRS_JTAG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_JTAG_SHIFT)) & SMC_SRS_JTAG_MASK)
+/*! @} */
+
+/*! @name RPC - Reset Pin Control */
+/*! @{ */
+#define SMC_RPC_FILTCFG_MASK                     (0x1FU)
+#define SMC_RPC_FILTCFG_SHIFT                    (0U)
+#define SMC_RPC_FILTCFG(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_RPC_FILTCFG_SHIFT)) & SMC_RPC_FILTCFG_MASK)
+#define SMC_RPC_FILTEN_MASK                      (0x100U)
+#define SMC_RPC_FILTEN_SHIFT                     (8U)
+/*! FILTEN - Filter Enable
+ *  0b0..Slow clock reset pin filter disabled.
+ *  0b1..Slow clock reset pin filter enabled in Run modes.
+ */
+#define SMC_RPC_FILTEN(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_RPC_FILTEN_SHIFT)) & SMC_RPC_FILTEN_MASK)
+#define SMC_RPC_LPOFEN_MASK                      (0x200U)
+#define SMC_RPC_LPOFEN_SHIFT                     (9U)
+/*! LPOFEN - LPO Filter Enable
+ *  0b0..LPO clock reset pin filter disabled.
+ *  0b1..LPO clock reset pin filter enabled in all modes.
+ */
+#define SMC_RPC_LPOFEN(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_RPC_LPOFEN_SHIFT)) & SMC_RPC_LPOFEN_MASK)
+/*! @} */
+
+/*! @name SSRS - Sticky System Reset Status */
+/*! @{ */
+#define SMC_SSRS_WAKEUP_MASK                     (0x1U)
+#define SMC_SSRS_WAKEUP_SHIFT                    (0U)
+/*! WAKEUP - Wakeup Reset
+ *  0b0..Reset not generated by wakeup from VLLS mode.
+ *  0b1..Reset generated by wakeup from VLLS mode.
+ */
+#define SMC_SSRS_WAKEUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WAKEUP_SHIFT)) & SMC_SSRS_WAKEUP_MASK)
+#define SMC_SSRS_POR_MASK                        (0x2U)
+#define SMC_SSRS_POR_SHIFT                       (1U)
+/*! POR - POR Reset
+ *  0b0..Reset not generated by POR.
+ *  0b1..Reset generated by POR.
+ */
+#define SMC_SSRS_POR(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_POR_SHIFT)) & SMC_SSRS_POR_MASK)
+#define SMC_SSRS_LVD_MASK                        (0x4U)
+#define SMC_SSRS_LVD_SHIFT                       (2U)
+/*! LVD - LVD Reset
+ *  0b0..Reset not generated by LVD.
+ *  0b1..Reset generated by LVD.
+ */
+#define SMC_SSRS_LVD(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_LVD_SHIFT)) & SMC_SSRS_LVD_MASK)
+#define SMC_SSRS_HVD_MASK                        (0x8U)
+#define SMC_SSRS_HVD_SHIFT                       (3U)
+/*! HVD - HVD Reset
+ *  0b0..Reset not generated by HVD.
+ *  0b1..Reset generated by HVD.
+ */
+#define SMC_SSRS_HVD(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_HVD_SHIFT)) & SMC_SSRS_HVD_MASK)
+#define SMC_SSRS_WARM_MASK                       (0x10U)
+#define SMC_SSRS_WARM_SHIFT                      (4U)
+/*! WARM - Warm Reset
+ *  0b0..Reset not generated by system reset source.
+ *  0b1..Reset generated by system reset source.
+ */
+#define SMC_SSRS_WARM(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WARM_SHIFT)) & SMC_SSRS_WARM_MASK)
+#define SMC_SSRS_FATAL_MASK                      (0x20U)
+#define SMC_SSRS_FATAL_SHIFT                     (5U)
+/*! FATAL - Fatal Reset
+ *  0b0..Reset was not generated by a fatal reset source.
+ *  0b1..Reset was generated by a fatal reset source.
+ */
+#define SMC_SSRS_FATAL(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_FATAL_SHIFT)) & SMC_SSRS_FATAL_MASK)
+#define SMC_SSRS_PIN_MASK                        (0x100U)
+#define SMC_SSRS_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset was not generated from the RESET_B pin.
+ *  0b1..Reset was generated from the RESET_B pin.
+ */
+#define SMC_SSRS_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_PIN_SHIFT)) & SMC_SSRS_PIN_MASK)
+#define SMC_SSRS_MDM_MASK                        (0x200U)
+#define SMC_SSRS_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset was not generated from the MDM reset request.
+ *  0b1..Reset was generated from the MDM reset request.
+ */
+#define SMC_SSRS_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_MDM_SHIFT)) & SMC_SSRS_MDM_MASK)
+#define SMC_SSRS_RSTACK_MASK                     (0x400U)
+#define SMC_SSRS_RSTACK_SHIFT                    (10U)
+/*! RSTACK - Reset Timeout
+ *  0b0..Reset not generated from Reset Controller Timeout.
+ *  0b1..Reset generated from Reset Controller Timeout.
+ */
+#define SMC_SSRS_RSTACK(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_RSTACK_SHIFT)) & SMC_SSRS_RSTACK_MASK)
+#define SMC_SSRS_STOPACK_MASK                    (0x800U)
+#define SMC_SSRS_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset not generated by Stop Controller Timeout.
+ *  0b1..Reset generated by Stop Controller Timeout.
+ */
+#define SMC_SSRS_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_STOPACK_SHIFT)) & SMC_SSRS_STOPACK_MASK)
+#define SMC_SSRS_SCG_MASK                        (0x1000U)
+#define SMC_SSRS_SCG_SHIFT                       (12U)
+/*! SCG - SCG Reset
+ *  0b0..Reset is not generated from an SCG loss of lock or loss of clock.
+ *  0b1..Reset is generated from an SCG loss of lock or loss of clock.
+ */
+#define SMC_SSRS_SCG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_SCG_SHIFT)) & SMC_SSRS_SCG_MASK)
+#define SMC_SSRS_WDOG_MASK                       (0x2000U)
+#define SMC_SSRS_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset is not generated from the WatchDog timeout.
+ *  0b1..Reset is generated from the WatchDog timeout.
+ */
+#define SMC_SSRS_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WDOG_SHIFT)) & SMC_SSRS_WDOG_MASK)
+#define SMC_SSRS_SW_MASK                         (0x4000U)
+#define SMC_SSRS_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Reset not generated by software request from core.
+ *  0b1..Reset generated by software request from core.
+ */
+#define SMC_SSRS_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_SW_SHIFT)) & SMC_SSRS_SW_MASK)
+#define SMC_SSRS_LOCKUP_MASK                     (0x8000U)
+#define SMC_SSRS_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset not generated by core lockup.
+ *  0b1..Reset generated by core lockup.
+ */
+#define SMC_SSRS_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_LOCKUP_SHIFT)) & SMC_SSRS_LOCKUP_MASK)
+#define SMC_SSRS_CORE0_MASK                      (0x10000U)
+#define SMC_SSRS_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Reset not generated from Core0 reset source.
+ *  0b1..Reset generated from Core0 reset source.
+ */
+#define SMC_SSRS_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_CORE0_SHIFT)) & SMC_SSRS_CORE0_MASK)
+#define SMC_SSRS_CORE1_MASK                      (0x20000U)
+#define SMC_SSRS_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Reset not generated from Core1 reset source.
+ *  0b1..Reset generated from Core1 reset source.
+ */
+#define SMC_SSRS_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_CORE1_SHIFT)) & SMC_SSRS_CORE1_MASK)
+#define SMC_SSRS_JTAG_MASK                       (0x10000000U)
+#define SMC_SSRS_JTAG_SHIFT                      (28U)
+/*! JTAG - JTAG System Reset
+ *  0b0..Reset not generated by JTAG system reset.
+ *  0b1..Reset generated by JTAG system reset.
+ */
+#define SMC_SSRS_JTAG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_JTAG_SHIFT)) & SMC_SSRS_JTAG_MASK)
+/*! @} */
+
+/*! @name SRIE - System Reset Interrupt Enable */
+/*! @{ */
+#define SMC_SRIE_PIN_MASK                        (0x100U)
+#define SMC_SRIE_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_PIN_SHIFT)) & SMC_SRIE_PIN_MASK)
+#define SMC_SRIE_MDM_MASK                        (0x200U)
+#define SMC_SRIE_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_MDM_SHIFT)) & SMC_SRIE_MDM_MASK)
+#define SMC_SRIE_STOPACK_MASK                    (0x800U)
+#define SMC_SRIE_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_STOPACK_SHIFT)) & SMC_SRIE_STOPACK_MASK)
+#define SMC_SRIE_WDOG_MASK                       (0x2000U)
+#define SMC_SRIE_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_WDOG_SHIFT)) & SMC_SRIE_WDOG_MASK)
+#define SMC_SRIE_SW_MASK                         (0x4000U)
+#define SMC_SRIE_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_SW_SHIFT)) & SMC_SRIE_SW_MASK)
+#define SMC_SRIE_LOCKUP_MASK                     (0x8000U)
+#define SMC_SRIE_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_LOCKUP_SHIFT)) & SMC_SRIE_LOCKUP_MASK)
+#define SMC_SRIE_CORE0_MASK                      (0x10000U)
+#define SMC_SRIE_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_CORE0_SHIFT)) & SMC_SRIE_CORE0_MASK)
+#define SMC_SRIE_CORE1_MASK                      (0x20000U)
+#define SMC_SRIE_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_CORE1_SHIFT)) & SMC_SRIE_CORE1_MASK)
+/*! @} */
+
+/*! @name SRIF - System Reset Interrupt Flag */
+/*! @{ */
+#define SMC_SRIF_PIN_MASK                        (0x100U)
+#define SMC_SRIF_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_PIN_SHIFT)) & SMC_SRIF_PIN_MASK)
+#define SMC_SRIF_MDM_MASK                        (0x200U)
+#define SMC_SRIF_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_MDM_SHIFT)) & SMC_SRIF_MDM_MASK)
+#define SMC_SRIF_STOPACK_MASK                    (0x800U)
+#define SMC_SRIF_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_STOPACK_SHIFT)) & SMC_SRIF_STOPACK_MASK)
+#define SMC_SRIF_WDOG_MASK                       (0x2000U)
+#define SMC_SRIF_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_WDOG_SHIFT)) & SMC_SRIF_WDOG_MASK)
+#define SMC_SRIF_SW_MASK                         (0x4000U)
+#define SMC_SRIF_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_SW_SHIFT)) & SMC_SRIF_SW_MASK)
+#define SMC_SRIF_LOCKUP_MASK                     (0x8000U)
+#define SMC_SRIF_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_LOCKUP_SHIFT)) & SMC_SRIF_LOCKUP_MASK)
+#define SMC_SRIF_CORE0_MASK                      (0x10000U)
+#define SMC_SRIF_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_CORE0_SHIFT)) & SMC_SRIF_CORE0_MASK)
+#define SMC_SRIF_CORE1_MASK                      (0x20000U)
+#define SMC_SRIF_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_CORE1_SHIFT)) & SMC_SRIF_CORE1_MASK)
+/*! @} */
+
+/*! @name MR - Mode Register */
+/*! @{ */
+#define SMC_MR_BOOTCFG_MASK                      (0x3U)
+#define SMC_MR_BOOTCFG_SHIFT                     (0U)
+/*! BOOTCFG - Boot Configuration
+ *  0b00..Boot from Flash.
+ *  0b01..Boot from ROM due to BOOTCFG0 pin assertion.
+ *  0b10..Boot from ROM due to FOPT configuration.
+ *  0b11..Boot from ROM due to both BOOTCFG0 pin assertion and FOPT configuration.
+ */
+#define SMC_MR_BOOTCFG(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_MR_BOOTCFG_SHIFT)) & SMC_MR_BOOTCFG_MASK)
+/*! @} */
+
+/*! @name FM - Force Mode Register */
+/*! @{ */
+#define SMC_FM_FORCECFG_MASK                     (0x3U)
+#define SMC_FM_FORCECFG_SHIFT                    (0U)
+/*! FORCECFG - Boot Configuration
+ *  0b00..No effect.
+ *  0b01..Assert corresponding bit in Mode Register on next system reset.
+ */
+#define SMC_FM_FORCECFG(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_FM_FORCECFG_SHIFT)) & SMC_FM_FORCECFG_MASK)
+/*! @} */
+
+/*! @name SRAMLPR - SRAM Low Power Register */
+/*! @{ */
+#define SMC_SRAMLPR_LPE_MASK                     (0xFFFFFFFFU)
+#define SMC_SRAMLPR_LPE_SHIFT                    (0U)
+#define SMC_SRAMLPR_LPE(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRAMLPR_LPE_SHIFT)) & SMC_SRAMLPR_LPE_MASK)
+/*! @} */
+
+/*! @name SRAMDSR - SRAM Deep Sleep Register */
+/*! @{ */
+#define SMC_SRAMDSR_DSE_MASK                     (0xFFFFFFFFU)
+#define SMC_SRAMDSR_DSE_SHIFT                    (0U)
+#define SMC_SRAMDSR_DSE(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRAMDSR_DSE_SHIFT)) & SMC_SRAMDSR_DSE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SMC_Register_Masks */
+
+
+/* SMC - Peripheral instance base addresses */
+/** Peripheral SMC0 base address */
+#define SMC0_BASE                                (0x40020000u)
+/** Peripheral SMC0 base pointer */
+#define SMC0                                     ((SMC_Type *)SMC0_BASE)
+/** Peripheral SMC1 base address */
+#define SMC1_BASE                                (0x41020000u)
+/** Peripheral SMC1 base pointer */
+#define SMC1                                     ((SMC_Type *)SMC1_BASE)
+/** Array initializer of SMC peripheral base addresses */
+#define SMC_BASE_ADDRS                           { SMC0_BASE, SMC1_BASE }
+/** Array initializer of SMC peripheral base pointers */
+#define SMC_BASE_PTRS                            { SMC0, SMC1 }
+/** Interrupt vectors for the SMC peripheral type */
+#define SMC_IRQS                                 { CMC0_IRQn, NotAvail_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SMC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SPM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SPM_Peripheral_Access_Layer SPM Peripheral Access Layer
+ * @{
+ */
+
+/** SPM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+       uint8_t RESERVED_0[4];
+  __I  uint32_t RSR;                               /**< Regulator Status Register, offset: 0x8 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t RCTRL;                             /**< Run Control Register, offset: 0x10 */
+  __IO uint32_t LPCTRL;                            /**< Low Power Control Register, offset: 0x14 */
+       uint8_t RESERVED_2[232];
+  __IO uint32_t CORERCNFG;                         /**< CORE LDO RUN Configuration Register, offset: 0x100 */
+  __IO uint32_t CORELPCNFG;                        /**< CORE LDO Low Power Configuration register, offset: 0x104 */
+  __IO uint32_t CORESC;                            /**< Core LDO Status And Control register, offset: 0x108 */
+  __IO uint32_t LVDSC1;                            /**< Low Voltage Detect Status and Control 1 register, offset: 0x10C */
+  __IO uint32_t LVDSC2;                            /**< Low Voltage Detect Status and Control 2 register, offset: 0x110 */
+  __IO uint32_t HVDSC1;                            /**< High Voltage Detect Status And Control 1 register, offset: 0x114 */
+       uint8_t RESERVED_3[232];
+  __IO uint32_t RFLDOLPCNFG;                       /**< RF LDO Low Power Configuration register, offset: 0x200 */
+  __IO uint32_t RFLDOSC;                           /**< RF LDO Status And Control register, offset: 0x204 */
+       uint8_t RESERVED_4[252];
+  __IO uint32_t DCDCSC;                            /**< DCDC Status Control Register, offset: 0x304 */
+       uint8_t RESERVED_5[4];
+  __IO uint32_t DCDCC1;                            /**< DCDC Control Register 1, offset: 0x30C */
+  __IO uint32_t DCDCC2;                            /**< DCDC Control Register 2, offset: 0x310 */
+  __IO uint32_t DCDCC3;                            /**< DCDC Control Register 3, offset: 0x314 */
+  __IO uint32_t DCDCC4;                            /**< DCDC Control Register 4, offset: 0x318 */
+       uint8_t RESERVED_6[4];
+  __IO uint32_t DCDCC6;                            /**< DCDC Control Register 6, offset: 0x320 */
+       uint8_t RESERVED_7[232];
+  __IO uint32_t LPREQPINCNTRL;                     /**< LP Request Pin Control Register, offset: 0x40C */
+} SPM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SPM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SPM_Register_Masks SPM Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SPM_VERID_FEATURE_MASK                   (0xFFFFU)
+#define SPM_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented.
+ */
+#define SPM_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_VERID_FEATURE_SHIFT)) & SPM_VERID_FEATURE_MASK)
+#define SPM_VERID_MINOR_MASK                     (0xFF0000U)
+#define SPM_VERID_MINOR_SHIFT                    (16U)
+#define SPM_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_VERID_MINOR_SHIFT)) & SPM_VERID_MINOR_MASK)
+#define SPM_VERID_MAJOR_MASK                     (0xFF000000U)
+#define SPM_VERID_MAJOR_SHIFT                    (24U)
+#define SPM_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_VERID_MAJOR_SHIFT)) & SPM_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name RSR - Regulator Status Register */
+/*! @{ */
+#define SPM_RSR_REGSEL_MASK                      (0x7U)
+#define SPM_RSR_REGSEL_SHIFT                     (0U)
+#define SPM_RSR_REGSEL(x)                        (((uint32_t)(((uint32_t)(x)) << SPM_RSR_REGSEL_SHIFT)) & SPM_RSR_REGSEL_MASK)
+#define SPM_RSR_MCUPMSTAT_MASK                   (0x1F0000U)
+#define SPM_RSR_MCUPMSTAT_SHIFT                  (16U)
+/*! MCUPMSTAT - MCU Power Mode Status
+ *  0b00000..Reserved
+ *  0b00001..Last Low Power mode is STOP.
+ *  0b00010..Last Low Power mode is VLPS.
+ *  0b00100..Last Low Power mode is LLS.
+ *  0b01000..Last Low Power mode is VLLS23.
+ *  0b10000..Last Low Power mode is VLLS01.
+ */
+#define SPM_RSR_MCUPMSTAT(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_RSR_MCUPMSTAT_SHIFT)) & SPM_RSR_MCUPMSTAT_MASK)
+#define SPM_RSR_RFPMSTAT_MASK                    (0x7000000U)
+#define SPM_RSR_RFPMSTAT_SHIFT                   (24U)
+/*! RFPMSTAT - RADIO Power Mode Status
+ *  0b000..Reserved
+ *  0b001..Current Power mode is VLPS.
+ *  0b010..Current Power mode is LLS.
+ *  0b100..Current Power mode is VLLS.
+ */
+#define SPM_RSR_RFPMSTAT(x)                      (((uint32_t)(((uint32_t)(x)) << SPM_RSR_RFPMSTAT_SHIFT)) & SPM_RSR_RFPMSTAT_MASK)
+#define SPM_RSR_RFRUNFORCE_MASK                  (0x8000000U)
+#define SPM_RSR_RFRUNFORCE_SHIFT                 (27U)
+/*! RFRUNFORCE - RADIO Run Force Power Mode Status
+ *  0b0..Radio Run Force Regulator Off
+ *  0b1..Radio Run Force Regulator On.
+ */
+#define SPM_RSR_RFRUNFORCE(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RSR_RFRUNFORCE_SHIFT)) & SPM_RSR_RFRUNFORCE_MASK)
+/*! @} */
+
+/*! @name RCTRL - Run Control Register */
+/*! @{ */
+#define SPM_RCTRL_REGSEL_MASK                    (0x7U)
+#define SPM_RCTRL_REGSEL_SHIFT                   (0U)
+#define SPM_RCTRL_REGSEL(x)                      (((uint32_t)(((uint32_t)(x)) << SPM_RCTRL_REGSEL_SHIFT)) & SPM_RCTRL_REGSEL_MASK)
+/*! @} */
+
+/*! @name LPCTRL - Low Power Control Register */
+/*! @{ */
+#define SPM_LPCTRL_REGSEL_MASK                   (0x7U)
+#define SPM_LPCTRL_REGSEL_SHIFT                  (0U)
+#define SPM_LPCTRL_REGSEL(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_LPCTRL_REGSEL_SHIFT)) & SPM_LPCTRL_REGSEL_MASK)
+/*! @} */
+
+/*! @name CORERCNFG - CORE LDO RUN Configuration Register */
+/*! @{ */
+#define SPM_CORERCNFG_VDDIOVDDMEN_MASK           (0x10000U)
+#define SPM_CORERCNFG_VDDIOVDDMEN_SHIFT          (16U)
+/*! VDDIOVDDMEN - VDDIOVDDMEN
+ *  0b0..VDDIO voltage monitor disabled in run modes.
+ *  0b1..VDDIO voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_VDDIOVDDMEN(x)             (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_VDDIOVDDMEN_SHIFT)) & SPM_CORERCNFG_VDDIOVDDMEN_MASK)
+#define SPM_CORERCNFG_USBVDDMEN_MASK             (0x20000U)
+#define SPM_CORERCNFG_USBVDDMEN_SHIFT            (17U)
+/*! USBVDDMEN - USBVDDMEN
+ *  0b0..USB voltage monitor disabled in run modes.
+ *  0b1..USB voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_USBVDDMEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_USBVDDMEN_SHIFT)) & SPM_CORERCNFG_USBVDDMEN_MASK)
+#define SPM_CORERCNFG_RTCVDDMEN_MASK             (0x40000U)
+#define SPM_CORERCNFG_RTCVDDMEN_SHIFT            (18U)
+/*! RTCVDDMEN - RTCVDDMEN
+ *  0b0..RTC voltage monitor disabled in run modes.
+ *  0b1..RTC voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_RTCVDDMEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_RTCVDDMEN_SHIFT)) & SPM_CORERCNFG_RTCVDDMEN_MASK)
+/*! @} */
+
+/*! @name CORELPCNFG - CORE LDO Low Power Configuration register */
+/*! @{ */
+#define SPM_CORELPCNFG_LPSEL_MASK                (0x2U)
+#define SPM_CORELPCNFG_LPSEL_SHIFT               (1U)
+/*! LPSEL - LPSEL
+ *  0b0..Core LDO enters low power state in VLP/Stop modes.
+ *  0b1..Core LDO remains in high power state in VLP/Stop modes. If LPSEL = 1 in a low power mode then BGEN must also be set to 1.
+ */
+#define SPM_CORELPCNFG_LPSEL(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPSEL_SHIFT)) & SPM_CORELPCNFG_LPSEL_MASK)
+#define SPM_CORELPCNFG_BGEN_MASK                 (0x4U)
+#define SPM_CORELPCNFG_BGEN_SHIFT                (2U)
+/*! BGEN - Bandgap Enable In Low Power Mode Operation
+ *  0b0..Bandgap is disabled in STOP/VLP/LLS and VLLS modes.
+ *  0b1..Bandgap remains enabled in STOP/VLP/LLS and VLLS modes.
+ */
+#define SPM_CORELPCNFG_BGEN(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGEN_SHIFT)) & SPM_CORELPCNFG_BGEN_MASK)
+#define SPM_CORELPCNFG_BGBEN_MASK                (0x8U)
+#define SPM_CORELPCNFG_BGBEN_SHIFT               (3U)
+/*! BGBEN - Bandgap Buffer Enable
+ *  0b0..Bandgap buffer not enabled
+ *  0b1..Bandgap buffer enabled BGEN must be set when this bit is also set.
+ */
+#define SPM_CORELPCNFG_BGBEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGBEN_SHIFT)) & SPM_CORELPCNFG_BGBEN_MASK)
+#define SPM_CORELPCNFG_BGBDS_MASK                (0x10U)
+#define SPM_CORELPCNFG_BGBDS_SHIFT               (4U)
+/*! BGBDS - Bandgap Buffer Drive Select
+ *  0b0..Low Drive
+ *  0b1..High Drive
+ */
+#define SPM_CORELPCNFG_BGBDS(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGBDS_SHIFT)) & SPM_CORELPCNFG_BGBDS_MASK)
+#define SPM_CORELPCNFG_LPOEN_MASK                (0x80U)
+#define SPM_CORELPCNFG_LPOEN_SHIFT               (7U)
+/*! LPOEN - LPO Enabled
+ *  0b0..LPO is disabled in VLLS modes.
+ *  0b1..LPO remains enabled in VLLS modes.
+ */
+#define SPM_CORELPCNFG_LPOEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPOEN_SHIFT)) & SPM_CORELPCNFG_LPOEN_MASK)
+#define SPM_CORELPCNFG_POREN_MASK                (0x100U)
+#define SPM_CORELPCNFG_POREN_SHIFT               (8U)
+/*! POREN - POR Enabled
+ *  0b0..POR brownout is disabled in VLLS0/1 mode.
+ *  0b1..POR brownout remains enabled in VLLS0/1 mode.
+ */
+#define SPM_CORELPCNFG_POREN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_POREN_SHIFT)) & SPM_CORELPCNFG_POREN_MASK)
+#define SPM_CORELPCNFG_LVDEN_MASK                (0x200U)
+#define SPM_CORELPCNFG_LVDEN_SHIFT               (9U)
+/*! LVDEN - LVD Enabled
+ *  0b0..LVD/HVD is disabled in low power modes.
+ *  0b1..LVD/HVD remains enabled in low power modes. BGEN must be set when this bit is also set.
+ */
+#define SPM_CORELPCNFG_LVDEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LVDEN_SHIFT)) & SPM_CORELPCNFG_LVDEN_MASK)
+#define SPM_CORELPCNFG_LPHIDRIVE_MASK            (0x4000U)
+#define SPM_CORELPCNFG_LPHIDRIVE_SHIFT           (14U)
+/*! LPHIDRIVE - LPHIDRIVE
+ *  0b0..High Drive disabled.
+ *  0b1..High Drive enabled.
+ */
+#define SPM_CORELPCNFG_LPHIDRIVE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPHIDRIVE_SHIFT)) & SPM_CORELPCNFG_LPHIDRIVE_MASK)
+#define SPM_CORELPCNFG_ALLREFEN_MASK             (0x8000U)
+#define SPM_CORELPCNFG_ALLREFEN_SHIFT            (15U)
+/*! ALLREFEN - All Reference Enable. This bit only has an affect in VLLS0/1.
+ *  0b0..All references are disabled in VLLS.
+ *  0b1..All references are enabled in VLLS0/1.
+ */
+#define SPM_CORELPCNFG_ALLREFEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_ALLREFEN_SHIFT)) & SPM_CORELPCNFG_ALLREFEN_MASK)
+#define SPM_CORELPCNFG_VDDIOVDDMEN_MASK          (0x10000U)
+#define SPM_CORELPCNFG_VDDIOVDDMEN_SHIFT         (16U)
+/*! VDDIOVDDMEN - VDDIOVDDMEN
+ *  0b0..VDDIO voltage monitor disabled in lp modes.
+ *  0b1..VDDIO voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_VDDIOVDDMEN(x)            (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_VDDIOVDDMEN_SHIFT)) & SPM_CORELPCNFG_VDDIOVDDMEN_MASK)
+#define SPM_CORELPCNFG_USBVDDMEN_MASK            (0x20000U)
+#define SPM_CORELPCNFG_USBVDDMEN_SHIFT           (17U)
+/*! USBVDDMEN - USBVDDMEN
+ *  0b0..USB voltage monitor disabled in lp modes.
+ *  0b1..USB voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_USBVDDMEN(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_USBVDDMEN_SHIFT)) & SPM_CORELPCNFG_USBVDDMEN_MASK)
+#define SPM_CORELPCNFG_RTCVDDMEN_MASK            (0x40000U)
+#define SPM_CORELPCNFG_RTCVDDMEN_SHIFT           (18U)
+/*! RTCVDDMEN - RTCVDDMEN
+ *  0b0..RTC voltage monitor disabled in lp modes.
+ *  0b1..RTC voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_RTCVDDMEN(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_RTCVDDMEN_SHIFT)) & SPM_CORELPCNFG_RTCVDDMEN_MASK)
+/*! @} */
+
+/*! @name CORESC - Core LDO Status And Control register */
+/*! @{ */
+#define SPM_CORESC_REGONS_MASK                   (0x4U)
+#define SPM_CORESC_REGONS_SHIFT                  (2U)
+/*! REGONS - CORE LDO Regulator in Run Regulation Status
+ *  0b0..Regulator is in low power state or in transition to/from it.
+ *  0b1..Regulator is in high power state.
+ */
+#define SPM_CORESC_REGONS(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_REGONS_SHIFT)) & SPM_CORESC_REGONS_MASK)
+#define SPM_CORESC_ACKISO_MASK                   (0x8U)
+#define SPM_CORESC_ACKISO_SHIFT                  (3U)
+/*! ACKISO - Acknowledge Isolation
+ *  0b0..Peripherals and I/O pads are in normal run state.
+ *  0b1..Certain peripherals and I/O pads are in a isolated and latched state.
+ */
+#define SPM_CORESC_ACKISO(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_ACKISO_SHIFT)) & SPM_CORESC_ACKISO_MASK)
+#define SPM_CORESC_TRIM_MASK                     (0x3F00U)
+#define SPM_CORESC_TRIM_SHIFT                    (8U)
+#define SPM_CORESC_TRIM(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_TRIM_SHIFT)) & SPM_CORESC_TRIM_MASK)
+#define SPM_CORESC_VDDIOOVRIDE_MASK              (0x10000U)
+#define SPM_CORESC_VDDIOOVRIDE_SHIFT             (16U)
+/*! VDDIOOVRIDE - VDDIOOVRIDE
+ *  0b0..VDDIOOK status set to 1'b0.
+ *  0b1..VDDIOOK status set to 1'b1.
+ */
+#define SPM_CORESC_VDDIOOVRIDE(x)                (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_VDDIOOVRIDE_SHIFT)) & SPM_CORESC_VDDIOOVRIDE_MASK)
+#define SPM_CORESC_USBOVRIDE_MASK                (0x20000U)
+#define SPM_CORESC_USBOVRIDE_SHIFT               (17U)
+/*! USBOVRIDE - USBOVRIDE
+ *  0b0..USBVDDOK status set to 1'b0.
+ *  0b1..USBVDDOK status set to 1'b1.
+ */
+#define SPM_CORESC_USBOVRIDE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_USBOVRIDE_SHIFT)) & SPM_CORESC_USBOVRIDE_MASK)
+#define SPM_CORESC_RTCOVRIDE_MASK                (0x40000U)
+#define SPM_CORESC_RTCOVRIDE_SHIFT               (18U)
+/*! RTCOVRIDE - RTCOVRIDE
+ *  0b0..RTCVDDOK status set to 1'b0.
+ *  0b1..RTCVDDOK status set to 1'b1.
+ */
+#define SPM_CORESC_RTCOVRIDE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_RTCOVRIDE_SHIFT)) & SPM_CORESC_RTCOVRIDE_MASK)
+#define SPM_CORESC_VDDIOOK_MASK                  (0x1000000U)
+#define SPM_CORESC_VDDIOOK_SHIFT                 (24U)
+#define SPM_CORESC_VDDIOOK(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_VDDIOOK_SHIFT)) & SPM_CORESC_VDDIOOK_MASK)
+#define SPM_CORESC_USBVDDOK_MASK                 (0x2000000U)
+#define SPM_CORESC_USBVDDOK_SHIFT                (25U)
+#define SPM_CORESC_USBVDDOK(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_USBVDDOK_SHIFT)) & SPM_CORESC_USBVDDOK_MASK)
+#define SPM_CORESC_RTCVDDOK_MASK                 (0x4000000U)
+#define SPM_CORESC_RTCVDDOK_SHIFT                (26U)
+#define SPM_CORESC_RTCVDDOK(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_RTCVDDOK_SHIFT)) & SPM_CORESC_RTCVDDOK_MASK)
+/*! @} */
+
+/*! @name LVDSC1 - Low Voltage Detect Status and Control 1 register */
+/*! @{ */
+#define SPM_LVDSC1_COREVDD_LVDRE_MASK            (0x10U)
+#define SPM_LVDSC1_COREVDD_LVDRE_SHIFT           (4U)
+/*! COREVDD_LVDRE - Core Low-Voltage Detect Reset Enable
+ *  0b0..COREVDD_LVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when CORE_LVDF = 1
+ */
+#define SPM_LVDSC1_COREVDD_LVDRE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDRE_SHIFT)) & SPM_LVDSC1_COREVDD_LVDRE_MASK)
+#define SPM_LVDSC1_COREVDD_LVDIE_MASK            (0x20U)
+#define SPM_LVDSC1_COREVDD_LVDIE_SHIFT           (5U)
+/*! COREVDD_LVDIE - Low-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when LVDF = 1
+ */
+#define SPM_LVDSC1_COREVDD_LVDIE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDIE_SHIFT)) & SPM_LVDSC1_COREVDD_LVDIE_MASK)
+#define SPM_LVDSC1_COREVDD_LVDACK_MASK           (0x40U)
+#define SPM_LVDSC1_COREVDD_LVDACK_SHIFT          (6U)
+#define SPM_LVDSC1_COREVDD_LVDACK(x)             (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDACK_SHIFT)) & SPM_LVDSC1_COREVDD_LVDACK_MASK)
+#define SPM_LVDSC1_COREVDD_LVDF_MASK             (0x80U)
+#define SPM_LVDSC1_COREVDD_LVDF_SHIFT            (7U)
+/*! COREVDD_LVDF - Low-Voltage Detect Flag
+ *  0b0..Low-voltage event not detected
+ *  0b1..Low-voltage event detected
+ */
+#define SPM_LVDSC1_COREVDD_LVDF(x)               (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDF_SHIFT)) & SPM_LVDSC1_COREVDD_LVDF_MASK)
+#define SPM_LVDSC1_VDD_LVDV_MASK                 (0x30000U)
+#define SPM_LVDSC1_VDD_LVDV_SHIFT                (16U)
+/*! VDD_LVDV - VDD Low-Voltage Detect Voltage Select
+ *  0b00..Low trip point selected (V LVD = V LVDL )
+ *  0b01..High trip point selected (V LVD = V LVDH )
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define SPM_LVDSC1_VDD_LVDV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDV_SHIFT)) & SPM_LVDSC1_VDD_LVDV_MASK)
+#define SPM_LVDSC1_VDD_LVDRE_MASK                (0x100000U)
+#define SPM_LVDSC1_VDD_LVDRE_SHIFT               (20U)
+/*! VDD_LVDRE - VDD Low-Voltage Detect Reset Enable
+ *  0b0..VDD_LVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when VDD_LVDF = 1
+ */
+#define SPM_LVDSC1_VDD_LVDRE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDRE_SHIFT)) & SPM_LVDSC1_VDD_LVDRE_MASK)
+#define SPM_LVDSC1_VDD_LVDIE_MASK                (0x200000U)
+#define SPM_LVDSC1_VDD_LVDIE_SHIFT               (21U)
+/*! VDD_LVDIE - VDD Low-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when VDD_LVDF = 1
+ */
+#define SPM_LVDSC1_VDD_LVDIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDIE_SHIFT)) & SPM_LVDSC1_VDD_LVDIE_MASK)
+#define SPM_LVDSC1_VDD_LVDACK_MASK               (0x400000U)
+#define SPM_LVDSC1_VDD_LVDACK_SHIFT              (22U)
+#define SPM_LVDSC1_VDD_LVDACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDACK_SHIFT)) & SPM_LVDSC1_VDD_LVDACK_MASK)
+#define SPM_LVDSC1_VDD_LVDF_MASK                 (0x800000U)
+#define SPM_LVDSC1_VDD_LVDF_SHIFT                (23U)
+/*! VDD_LVDF - VDD Low-Voltage Detect Flag
+ *  0b0..Low-voltage event not detected
+ *  0b1..Low-voltage event detected
+ */
+#define SPM_LVDSC1_VDD_LVDF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDF_SHIFT)) & SPM_LVDSC1_VDD_LVDF_MASK)
+/*! @} */
+
+/*! @name LVDSC2 - Low Voltage Detect Status and Control 2 register */
+/*! @{ */
+#define SPM_LVDSC2_VDD_LVWV_MASK                 (0x30000U)
+#define SPM_LVDSC2_VDD_LVWV_SHIFT                (16U)
+/*! VDD_LVWV - VDD Low-Voltage Warning Voltage Select
+ *  0b00..Low trip point selected (V LVW = VLVW1)
+ *  0b01..Mid 1 trip point selected (V LVW = VLVW2)
+ *  0b10..Mid 2 trip point selected (V LVW = VLVW3)
+ *  0b11..High trip point selected (V LVW = VLVW4)
+ */
+#define SPM_LVDSC2_VDD_LVWV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWV_SHIFT)) & SPM_LVDSC2_VDD_LVWV_MASK)
+#define SPM_LVDSC2_VDD_LVWIE_MASK                (0x200000U)
+#define SPM_LVDSC2_VDD_LVWIE_SHIFT               (21U)
+/*! VDD_LVWIE - VDD Low-Voltage Warning Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when VDD_LVWF = 1
+ */
+#define SPM_LVDSC2_VDD_LVWIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWIE_SHIFT)) & SPM_LVDSC2_VDD_LVWIE_MASK)
+#define SPM_LVDSC2_VDD_LVWACK_MASK               (0x400000U)
+#define SPM_LVDSC2_VDD_LVWACK_SHIFT              (22U)
+#define SPM_LVDSC2_VDD_LVWACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWACK_SHIFT)) & SPM_LVDSC2_VDD_LVWACK_MASK)
+#define SPM_LVDSC2_VDD_LVWF_MASK                 (0x800000U)
+#define SPM_LVDSC2_VDD_LVWF_SHIFT                (23U)
+/*! VDD_LVWF - VDD Low-Voltage Warning Flag
+ *  0b0..Low-voltage warning event not detected
+ *  0b1..Low-voltage warning event detected
+ */
+#define SPM_LVDSC2_VDD_LVWF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWF_SHIFT)) & SPM_LVDSC2_VDD_LVWF_MASK)
+/*! @} */
+
+/*! @name HVDSC1 - High Voltage Detect Status And Control 1 register */
+/*! @{ */
+#define SPM_HVDSC1_VDD_HVDV_MASK                 (0x10000U)
+#define SPM_HVDSC1_VDD_HVDV_SHIFT                (16U)
+/*! VDD_HVDV - VDD High-Voltage Detect Voltage Select
+ *  0b0..Low trip point selected (V VDD = V VDD_HVDL )
+ *  0b1..High trip point selected (V VDD = V VDD_HVDH )
+ */
+#define SPM_HVDSC1_VDD_HVDV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDV_SHIFT)) & SPM_HVDSC1_VDD_HVDV_MASK)
+#define SPM_HVDSC1_VDD_HVDRE_MASK                (0x100000U)
+#define SPM_HVDSC1_VDD_HVDRE_SHIFT               (20U)
+/*! VDD_HVDRE - VDD High-Voltage Detect Reset Enable
+ *  0b0..VDD HVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when VDD_HVDF = 1
+ */
+#define SPM_HVDSC1_VDD_HVDRE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDRE_SHIFT)) & SPM_HVDSC1_VDD_HVDRE_MASK)
+#define SPM_HVDSC1_VDD_HVDIE_MASK                (0x200000U)
+#define SPM_HVDSC1_VDD_HVDIE_SHIFT               (21U)
+/*! VDD_HVDIE - VDD High-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when HVDF = 1
+ */
+#define SPM_HVDSC1_VDD_HVDIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDIE_SHIFT)) & SPM_HVDSC1_VDD_HVDIE_MASK)
+#define SPM_HVDSC1_VDD_HVDACK_MASK               (0x400000U)
+#define SPM_HVDSC1_VDD_HVDACK_SHIFT              (22U)
+#define SPM_HVDSC1_VDD_HVDACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDACK_SHIFT)) & SPM_HVDSC1_VDD_HVDACK_MASK)
+#define SPM_HVDSC1_VDD_HVDF_MASK                 (0x800000U)
+#define SPM_HVDSC1_VDD_HVDF_SHIFT                (23U)
+/*! VDD_HVDF - VDD High-Voltage Detect Flag
+ *  0b0..Vdd High-voltage event not detected
+ *  0b1..Vdd High-voltage event detected
+ */
+#define SPM_HVDSC1_VDD_HVDF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDF_SHIFT)) & SPM_HVDSC1_VDD_HVDF_MASK)
+/*! @} */
+
+/*! @name RFLDOLPCNFG - RF LDO Low Power Configuration register */
+/*! @{ */
+#define SPM_RFLDOLPCNFG_LPSEL_MASK               (0x2U)
+#define SPM_RFLDOLPCNFG_LPSEL_SHIFT              (1U)
+/*! LPSEL - LPSEL
+ *  0b0..RF LDO regulator enters low power state in VLP/Stop modes.
+ *  0b1..RF LDO regulator remains in high power state in VLP/Stop modes.
+ */
+#define SPM_RFLDOLPCNFG_LPSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOLPCNFG_LPSEL_SHIFT)) & SPM_RFLDOLPCNFG_LPSEL_MASK)
+/*! @} */
+
+/*! @name RFLDOSC - RF LDO Status And Control register */
+/*! @{ */
+#define SPM_RFLDOSC_IOREGVSEL_MASK               (0x1U)
+#define SPM_RFLDOSC_IOREGVSEL_SHIFT              (0U)
+/*! IOREGVSEL - IO Regulator Voltage Select
+ *  0b0..Regulate to 1.8V.
+ *  0b1..Regulate to 1.5V.
+ */
+#define SPM_RFLDOSC_IOREGVSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOREGVSEL_SHIFT)) & SPM_RFLDOSC_IOREGVSEL_MASK)
+#define SPM_RFLDOSC_VDD1P8SEL_MASK               (0x10U)
+#define SPM_RFLDOSC_VDD1P8SEL_SHIFT              (4U)
+/*! VDD1P8SEL - VDD 1p8 SNS Pin Select
+ *  0b0..VDD1p8_SNS0 selected.
+ *  0b1..VDD1p8_SNS1 selected.
+ */
+#define SPM_RFLDOSC_VDD1P8SEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_VDD1P8SEL_SHIFT)) & SPM_RFLDOSC_VDD1P8SEL_MASK)
+#define SPM_RFLDOSC_ISINKEN_MASK                 (0x20U)
+#define SPM_RFLDOSC_ISINKEN_SHIFT                (5U)
+/*! ISINKEN - ISINKEN
+ *  0b0..Disable current sink feature of low power regulator.
+ *  0b1..Enable current sink feature of low power regulator.
+ */
+#define SPM_RFLDOSC_ISINKEN(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_ISINKEN_SHIFT)) & SPM_RFLDOSC_ISINKEN_MASK)
+#define SPM_RFLDOSC_IOTRIM_MASK                  (0x1F00U)
+#define SPM_RFLDOSC_IOTRIM_SHIFT                 (8U)
+#define SPM_RFLDOSC_IOTRIM(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOTRIM_SHIFT)) & SPM_RFLDOSC_IOTRIM_MASK)
+#define SPM_RFLDOSC_IOSSSEL_MASK                 (0x70000U)
+#define SPM_RFLDOSC_IOSSSEL_SHIFT                (16U)
+/*! IOSSSEL - IO 1.8 Reg Soft Start Select
+ *  0b000..Soft Start duration set to 110us.
+ *  0b001..Soft Start duration set to 95us.
+ *  0b010..Soft Start duration set to 60us.
+ *  0b011..Soft Start duration set to 48us.
+ *  0b100..Soft Start duration set to 38us.
+ *  0b101..Soft Start duration set to 30us.
+ *  0b110..Soft Start duration set to 24us.
+ *  0b111..Soft Start duration set to 17us.
+ */
+#define SPM_RFLDOSC_IOSSSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOSSSEL_SHIFT)) & SPM_RFLDOSC_IOSSSEL_MASK)
+#define SPM_RFLDOSC_SSDONE_MASK                  (0x1000000U)
+#define SPM_RFLDOSC_SSDONE_SHIFT                 (24U)
+#define SPM_RFLDOSC_SSDONE(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_SSDONE_SHIFT)) & SPM_RFLDOSC_SSDONE_MASK)
+#define SPM_RFLDOSC_IOSPARE_OUT_MASK             (0xC000000U)
+#define SPM_RFLDOSC_IOSPARE_OUT_SHIFT            (26U)
+#define SPM_RFLDOSC_IOSPARE_OUT(x)               (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOSPARE_OUT_SHIFT)) & SPM_RFLDOSC_IOSPARE_OUT_MASK)
+/*! @} */
+
+/*! @name DCDCSC - DCDC Status Control Register */
+/*! @{ */
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_MASK (0x2U)
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_SHIFT (1U)
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_SHIFT)) & SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_MASK)
+#define SPM_DCDCSC_DCDC_SEL_CLK_MASK             (0x4U)
+#define SPM_DCDCSC_DCDC_SEL_CLK_SHIFT            (2U)
+#define SPM_DCDCSC_DCDC_SEL_CLK(x)               (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_SEL_CLK_SHIFT)) & SPM_DCDCSC_DCDC_SEL_CLK_MASK)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT_MASK         (0x8U)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT_SHIFT        (3U)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_PWD_OSC_INT_SHIFT)) & SPM_DCDCSC_DCDC_PWD_OSC_INT_MASK)
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_MASK       (0xC00U)
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_SHIFT      (10U)
+/*! DCDC_VBAT_DIV_CTRL - DCDC_VBAT_DIV_CTRL
+ *  0b00..OFF
+ *  0b01..VBAT
+ *  0b10..VBAT / 2
+ *  0b11..VBAT / 4
+ */
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL(x)         (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_SHIFT)) & SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_MASK)
+#define SPM_DCDCSC_DCDC_LESS_I_MASK              (0x2000000U)
+#define SPM_DCDCSC_DCDC_LESS_I_SHIFT             (25U)
+#define SPM_DCDCSC_DCDC_LESS_I(x)                (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_LESS_I_SHIFT)) & SPM_DCDCSC_DCDC_LESS_I_MASK)
+#define SPM_DCDCSC_PWD_CMP_OFFSET_MASK           (0x4000000U)
+#define SPM_DCDCSC_PWD_CMP_OFFSET_SHIFT          (26U)
+#define SPM_DCDCSC_PWD_CMP_OFFSET(x)             (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_PWD_CMP_OFFSET_SHIFT)) & SPM_DCDCSC_PWD_CMP_OFFSET_MASK)
+#define SPM_DCDCSC_CLKFLT_FAULT_MASK             (0x40000000U)
+#define SPM_DCDCSC_CLKFLT_FAULT_SHIFT            (30U)
+#define SPM_DCDCSC_CLKFLT_FAULT(x)               (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_CLKFLT_FAULT_SHIFT)) & SPM_DCDCSC_CLKFLT_FAULT_MASK)
+#define SPM_DCDCSC_DCDC_STS_DC_OK_MASK           (0x80000000U)
+#define SPM_DCDCSC_DCDC_STS_DC_OK_SHIFT          (31U)
+#define SPM_DCDCSC_DCDC_STS_DC_OK(x)             (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_STS_DC_OK_SHIFT)) & SPM_DCDCSC_DCDC_STS_DC_OK_MASK)
+/*! @} */
+
+/*! @name DCDCC1 - DCDC Control Register 1 */
+/*! @{ */
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN_MASK         (0x7FU)
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN_SHIFT        (0U)
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_POSLIMIT_BUCK_IN_SHIFT)) & SPM_DCDCC1_POSLIMIT_BUCK_IN_MASK)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_MASK (0x4000000U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_SHIFT (26U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_SHIFT)) & SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_MASK)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_MASK (0x8000000U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_SHIFT (27U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_SHIFT)) & SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_MASK)
+/*! @} */
+
+/*! @name DCDCC2 - DCDC Control Register 2 */
+/*! @{ */
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_MASK  (0x2000U)
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_SHIFT (13U)
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_SHIFT)) & SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_MASK)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_MASK (0x8000U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_SHIFT (15U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_SHIFT)) & SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_MASK)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_MASK (0x3FF0000U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_SHIFT (16U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL(x)  (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_SHIFT)) & SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_MASK)
+/*! @} */
+
+/*! @name DCDCC3 - DCDC Control Register 3 */
+/*! @{ */
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_MASK     (0x1U)
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_SHIFT    (0U)
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS(x)       (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_SHIFT)) & SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_MASK)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE_MASK          (0x1CU)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE_SHIFT         (2U)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE(x)            (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VBAT_VALUE_SHIFT)) & SPM_DCDCC3_DCDC_VBAT_VALUE_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_MASK    (0xF0000U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_SHIFT   (16U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN(x)      (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_MASK   (0x1000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_SHIFT  (24U)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK(x)     (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_MASK (0x2000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_SHIFT (25U)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_MASK  (0x4000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_SHIFT (26U)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_MASK    (0x8000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_SHIFT   (27U)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS(x)      (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_MASK (0x40000000U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_SHIFT (30U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_MASK (0x80000000U)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_SHIFT (31U)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_MASK)
+/*! @} */
+
+/*! @name DCDCC4 - DCDC Control Register 4 */
+/*! @{ */
+#define SPM_DCDCC4_INTEGRATOR_VALUE_MASK         (0x7FFFFU)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SHIFT        (0U)
+#define SPM_DCDCC4_INTEGRATOR_VALUE(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_INTEGRATOR_VALUE_SHIFT)) & SPM_DCDCC4_INTEGRATOR_VALUE_MASK)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_MASK  (0x80000U)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_SHIFT (19U)
+/*! INTEGRATOR_VALUE_SELECT - INTEGRATOR VALUE SELECT
+ *  0b0..Select the saved value in hardware
+ *  0b1..Select the integrator value in this register
+ */
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_SHIFT)) & SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_MASK)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP_MASK        (0x100000U)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP_SHIFT       (20U)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP(x)          (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_PULSE_RUN_SPEEDUP_SHIFT)) & SPM_DCDCC4_PULSE_RUN_SPEEDUP_MASK)
+/*! @} */
+
+/*! @name DCDCC6 - DCDC Control Register 6 */
+/*! @{ */
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_MASK      (0x1FU)
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_SHIFT     (0U)
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG(x)        (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_SHIFT)) & SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_MASK)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_MASK (0xF00U)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_SHIFT (8U)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_SHIFT)) & SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_MASK)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM_MASK          (0xF000000U)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM_SHIFT         (24U)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM(x)            (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_HSVDD_TRIM_SHIFT)) & SPM_DCDCC6_DCDC_HSVDD_TRIM_MASK)
+/*! @} */
+
+/*! @name LPREQPINCNTRL - LP Request Pin Control Register */
+/*! @{ */
+#define SPM_LPREQPINCNTRL_LPREQOE_MASK           (0x1U)
+#define SPM_LPREQPINCNTRL_LPREQOE_SHIFT          (0U)
+/*! LPREQOE - Low Power Request Output Enable Register
+ *  0b0..Low Power request output pin not enabled.
+ *  0b1..Low Power request output pin enabled.
+ */
+#define SPM_LPREQPINCNTRL_LPREQOE(x)             (((uint32_t)(((uint32_t)(x)) << SPM_LPREQPINCNTRL_LPREQOE_SHIFT)) & SPM_LPREQPINCNTRL_LPREQOE_MASK)
+#define SPM_LPREQPINCNTRL_POLARITY_MASK          (0x2U)
+#define SPM_LPREQPINCNTRL_POLARITY_SHIFT         (1U)
+/*! POLARITY - Low Power Request Output Pin Polarity Control Register
+ *  0b0..High true polarity.
+ *  0b1..Low true polarity.
+ */
+#define SPM_LPREQPINCNTRL_POLARITY(x)            (((uint32_t)(((uint32_t)(x)) << SPM_LPREQPINCNTRL_POLARITY_SHIFT)) & SPM_LPREQPINCNTRL_POLARITY_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SPM_Register_Masks */
+
+
+/* SPM - Peripheral instance base addresses */
+/** Peripheral SPM base address */
+#define SPM_BASE                                 (0x40028000u)
+/** Peripheral SPM base pointer */
+#define SPM                                      ((SPM_Type *)SPM_BASE)
+/** Array initializer of SPM peripheral base addresses */
+#define SPM_BASE_ADDRS                           { SPM_BASE }
+/** Array initializer of SPM peripheral base pointers */
+#define SPM_BASE_PTRS                            { SPM }
+/** Interrupt vectors for the SPM peripheral type */
+#define SPM_IRQS                                 { SPM_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SPM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TPM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TPM_Peripheral_Access_Layer TPM Peripheral Access Layer
+ * @{
+ */
+
+/** TPM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t GLOBAL;                            /**< TPM Global Register, offset: 0x8 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t SC;                                /**< Status and Control, offset: 0x10 */
+  __IO uint32_t CNT;                               /**< Counter, offset: 0x14 */
+  __IO uint32_t MOD;                               /**< Modulo, offset: 0x18 */
+  __IO uint32_t STATUS;                            /**< Capture and Compare Status, offset: 0x1C */
+  struct {                                         /* offset: 0x20, array step: 0x8 */
+    __IO uint32_t CnSC;                              /**< Channel (n) Status and Control, array offset: 0x20, array step: 0x8 */
+    __IO uint32_t CnV;                               /**< Channel (n) Value, array offset: 0x24, array step: 0x8 */
+  } CONTROLS[6];
+       uint8_t RESERVED_1[20];
+  __IO uint32_t COMBINE;                           /**< Combine Channel Register, offset: 0x64 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t TRIG;                              /**< Channel Trigger, offset: 0x6C */
+  __IO uint32_t POL;                               /**< Channel Polarity, offset: 0x70 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t FILTER;                            /**< Filter Control, offset: 0x78 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t QDCTRL;                            /**< Quadrature Decoder Control and Status, offset: 0x80 */
+  __IO uint32_t CONF;                              /**< Configuration, offset: 0x84 */
+} TPM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TPM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TPM_Register_Masks TPM Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define TPM_VERID_FEATURE_MASK                   (0xFFFFU)
+#define TPM_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Identification Number
+ *  0b0000000000000001..Standard feature set.
+ *  0b0000000000000011..Standard feature set with Filter and Combine registers implemented.
+ *  0b0000000000000111..Standard feature set with Filter, Combine and Quadrature registers implemented.
+ */
+#define TPM_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_VERID_FEATURE_SHIFT)) & TPM_VERID_FEATURE_MASK)
+#define TPM_VERID_MINOR_MASK                     (0xFF0000U)
+#define TPM_VERID_MINOR_SHIFT                    (16U)
+#define TPM_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_VERID_MINOR_SHIFT)) & TPM_VERID_MINOR_MASK)
+#define TPM_VERID_MAJOR_MASK                     (0xFF000000U)
+#define TPM_VERID_MAJOR_SHIFT                    (24U)
+#define TPM_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_VERID_MAJOR_SHIFT)) & TPM_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define TPM_PARAM_CHAN_MASK                      (0xFFU)
+#define TPM_PARAM_CHAN_SHIFT                     (0U)
+#define TPM_PARAM_CHAN(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_CHAN_SHIFT)) & TPM_PARAM_CHAN_MASK)
+#define TPM_PARAM_TRIG_MASK                      (0xFF00U)
+#define TPM_PARAM_TRIG_SHIFT                     (8U)
+#define TPM_PARAM_TRIG(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_TRIG_SHIFT)) & TPM_PARAM_TRIG_MASK)
+#define TPM_PARAM_WIDTH_MASK                     (0xFF0000U)
+#define TPM_PARAM_WIDTH_SHIFT                    (16U)
+#define TPM_PARAM_WIDTH(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_WIDTH_SHIFT)) & TPM_PARAM_WIDTH_MASK)
+/*! @} */
+
+/*! @name GLOBAL - TPM Global Register */
+/*! @{ */
+#define TPM_GLOBAL_NOUPDATE_MASK                 (0x1U)
+#define TPM_GLOBAL_NOUPDATE_SHIFT                (0U)
+/*! NOUPDATE - No Update
+ *  0b0..Internal double buffered registers update as normal.
+ *  0b1..Internal double buffered registers do not update.
+ */
+#define TPM_GLOBAL_NOUPDATE(x)                   (((uint32_t)(((uint32_t)(x)) << TPM_GLOBAL_NOUPDATE_SHIFT)) & TPM_GLOBAL_NOUPDATE_MASK)
+#define TPM_GLOBAL_RST_MASK                      (0x2U)
+#define TPM_GLOBAL_RST_SHIFT                     (1U)
+/*! RST - Software Reset
+ *  0b0..Module is not reset.
+ *  0b1..Module is reset.
+ */
+#define TPM_GLOBAL_RST(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_GLOBAL_RST_SHIFT)) & TPM_GLOBAL_RST_MASK)
+/*! @} */
+
+/*! @name SC - Status and Control */
+/*! @{ */
+#define TPM_SC_PS_MASK                           (0x7U)
+#define TPM_SC_PS_SHIFT                          (0U)
+/*! PS - Prescale Factor Selection
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define TPM_SC_PS(x)                             (((uint32_t)(((uint32_t)(x)) << TPM_SC_PS_SHIFT)) & TPM_SC_PS_MASK)
+#define TPM_SC_CMOD_MASK                         (0x18U)
+#define TPM_SC_CMOD_SHIFT                        (3U)
+/*! CMOD - Clock Mode Selection
+ *  0b00..TPM counter is disabled
+ *  0b01..TPM counter increments on every TPM counter clock
+ *  0b10..TPM counter increments on rising edge of TPM_EXTCLK synchronized to the TPM counter clock
+ *  0b11..TPM counter increments on rising edge of the selected external input trigger.
+ */
+#define TPM_SC_CMOD(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_SC_CMOD_SHIFT)) & TPM_SC_CMOD_MASK)
+#define TPM_SC_CPWMS_MASK                        (0x20U)
+#define TPM_SC_CPWMS_SHIFT                       (5U)
+/*! CPWMS - Center-Aligned PWM Select
+ *  0b0..TPM counter operates in up counting mode.
+ *  0b1..TPM counter operates in up-down counting mode.
+ */
+#define TPM_SC_CPWMS(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_SC_CPWMS_SHIFT)) & TPM_SC_CPWMS_MASK)
+#define TPM_SC_TOIE_MASK                         (0x40U)
+#define TPM_SC_TOIE_SHIFT                        (6U)
+/*! TOIE - Timer Overflow Interrupt Enable
+ *  0b0..Disable TOF interrupts. Use software polling or DMA request.
+ *  0b1..Enable TOF interrupts. An interrupt is generated when TOF equals one.
+ */
+#define TPM_SC_TOIE(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_SC_TOIE_SHIFT)) & TPM_SC_TOIE_MASK)
+#define TPM_SC_TOF_MASK                          (0x80U)
+#define TPM_SC_TOF_SHIFT                         (7U)
+/*! TOF - Timer Overflow Flag
+ *  0b0..TPM counter has not overflowed.
+ *  0b1..TPM counter has overflowed.
+ */
+#define TPM_SC_TOF(x)                            (((uint32_t)(((uint32_t)(x)) << TPM_SC_TOF_SHIFT)) & TPM_SC_TOF_MASK)
+#define TPM_SC_DMA_MASK                          (0x100U)
+#define TPM_SC_DMA_SHIFT                         (8U)
+/*! DMA - DMA Enable
+ *  0b0..Disables DMA transfers.
+ *  0b1..Enables DMA transfers.
+ */
+#define TPM_SC_DMA(x)                            (((uint32_t)(((uint32_t)(x)) << TPM_SC_DMA_SHIFT)) & TPM_SC_DMA_MASK)
+/*! @} */
+
+/*! @name CNT - Counter */
+/*! @{ */
+#define TPM_CNT_COUNT_MASK                       (0xFFFFU)
+#define TPM_CNT_COUNT_SHIFT                      (0U)
+#define TPM_CNT_COUNT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CNT_COUNT_SHIFT)) & TPM_CNT_COUNT_MASK)
+/*! @} */
+
+/*! @name MOD - Modulo */
+/*! @{ */
+#define TPM_MOD_MOD_MASK                         (0xFFFFU)
+#define TPM_MOD_MOD_SHIFT                        (0U)
+#define TPM_MOD_MOD(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_MOD_MOD_SHIFT)) & TPM_MOD_MOD_MASK)
+/*! @} */
+
+/*! @name STATUS - Capture and Compare Status */
+/*! @{ */
+#define TPM_STATUS_CH0F_MASK                     (0x1U)
+#define TPM_STATUS_CH0F_SHIFT                    (0U)
+/*! CH0F - Channel 0 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH0F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH0F_SHIFT)) & TPM_STATUS_CH0F_MASK)
+#define TPM_STATUS_CH1F_MASK                     (0x2U)
+#define TPM_STATUS_CH1F_SHIFT                    (1U)
+/*! CH1F - Channel 1 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH1F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH1F_SHIFT)) & TPM_STATUS_CH1F_MASK)
+#define TPM_STATUS_CH2F_MASK                     (0x4U)
+#define TPM_STATUS_CH2F_SHIFT                    (2U)
+/*! CH2F - Channel 2 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH2F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH2F_SHIFT)) & TPM_STATUS_CH2F_MASK)
+#define TPM_STATUS_CH3F_MASK                     (0x8U)
+#define TPM_STATUS_CH3F_SHIFT                    (3U)
+/*! CH3F - Channel 3 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH3F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH3F_SHIFT)) & TPM_STATUS_CH3F_MASK)
+#define TPM_STATUS_CH4F_MASK                     (0x10U)
+#define TPM_STATUS_CH4F_SHIFT                    (4U)
+/*! CH4F - Channel 4 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH4F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH4F_SHIFT)) & TPM_STATUS_CH4F_MASK)
+#define TPM_STATUS_CH5F_MASK                     (0x20U)
+#define TPM_STATUS_CH5F_SHIFT                    (5U)
+/*! CH5F - Channel 5 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH5F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH5F_SHIFT)) & TPM_STATUS_CH5F_MASK)
+#define TPM_STATUS_TOF_MASK                      (0x100U)
+#define TPM_STATUS_TOF_SHIFT                     (8U)
+/*! TOF - Timer Overflow Flag
+ *  0b0..TPM counter has not overflowed.
+ *  0b1..TPM counter has overflowed.
+ */
+#define TPM_STATUS_TOF(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_TOF_SHIFT)) & TPM_STATUS_TOF_MASK)
+/*! @} */
+
+/*! @name CnSC - Channel (n) Status and Control */
+/*! @{ */
+#define TPM_CnSC_DMA_MASK                        (0x1U)
+#define TPM_CnSC_DMA_SHIFT                       (0U)
+/*! DMA - DMA Enable
+ *  0b0..Disable DMA transfers.
+ *  0b1..Enable DMA transfers.
+ */
+#define TPM_CnSC_DMA(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_DMA_SHIFT)) & TPM_CnSC_DMA_MASK)
+#define TPM_CnSC_ELSA_MASK                       (0x4U)
+#define TPM_CnSC_ELSA_SHIFT                      (2U)
+#define TPM_CnSC_ELSA(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_ELSA_SHIFT)) & TPM_CnSC_ELSA_MASK)
+#define TPM_CnSC_ELSB_MASK                       (0x8U)
+#define TPM_CnSC_ELSB_SHIFT                      (3U)
+#define TPM_CnSC_ELSB(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_ELSB_SHIFT)) & TPM_CnSC_ELSB_MASK)
+#define TPM_CnSC_MSA_MASK                        (0x10U)
+#define TPM_CnSC_MSA_SHIFT                       (4U)
+#define TPM_CnSC_MSA(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_MSA_SHIFT)) & TPM_CnSC_MSA_MASK)
+#define TPM_CnSC_MSB_MASK                        (0x20U)
+#define TPM_CnSC_MSB_SHIFT                       (5U)
+#define TPM_CnSC_MSB(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_MSB_SHIFT)) & TPM_CnSC_MSB_MASK)
+#define TPM_CnSC_CHIE_MASK                       (0x40U)
+#define TPM_CnSC_CHIE_SHIFT                      (6U)
+/*! CHIE - Channel Interrupt Enable
+ *  0b0..Disable channel interrupts.
+ *  0b1..Enable channel interrupts.
+ */
+#define TPM_CnSC_CHIE(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_CHIE_SHIFT)) & TPM_CnSC_CHIE_MASK)
+#define TPM_CnSC_CHF_MASK                        (0x80U)
+#define TPM_CnSC_CHF_SHIFT                       (7U)
+/*! CHF - Channel Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_CnSC_CHF(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_CHF_SHIFT)) & TPM_CnSC_CHF_MASK)
+/*! @} */
+
+/* The count of TPM_CnSC */
+#define TPM_CnSC_COUNT                           (6U)
+
+/*! @name CnV - Channel (n) Value */
+/*! @{ */
+#define TPM_CnV_VAL_MASK                         (0xFFFFU)
+#define TPM_CnV_VAL_SHIFT                        (0U)
+#define TPM_CnV_VAL(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_CnV_VAL_SHIFT)) & TPM_CnV_VAL_MASK)
+/*! @} */
+
+/* The count of TPM_CnV */
+#define TPM_CnV_COUNT                            (6U)
+
+/*! @name COMBINE - Combine Channel Register */
+/*! @{ */
+#define TPM_COMBINE_COMBINE0_MASK                (0x1U)
+#define TPM_COMBINE_COMBINE0_SHIFT               (0U)
+/*! COMBINE0 - Combine Channels 0 and 1
+ *  0b0..Channels 0 and 1 are independent.
+ *  0b1..Channels 0 and 1 are combined.
+ */
+#define TPM_COMBINE_COMBINE0(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE0_SHIFT)) & TPM_COMBINE_COMBINE0_MASK)
+#define TPM_COMBINE_COMSWAP0_MASK                (0x2U)
+#define TPM_COMBINE_COMSWAP0_SHIFT               (1U)
+/*! COMSWAP0 - Combine Channel 0 and 1 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP0(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP0_SHIFT)) & TPM_COMBINE_COMSWAP0_MASK)
+#define TPM_COMBINE_COMBINE1_MASK                (0x100U)
+#define TPM_COMBINE_COMBINE1_SHIFT               (8U)
+/*! COMBINE1 - Combine Channels 2 and 3
+ *  0b0..Channels 2 and 3 are independent.
+ *  0b1..Channels 2 and 3 are combined.
+ */
+#define TPM_COMBINE_COMBINE1(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE1_SHIFT)) & TPM_COMBINE_COMBINE1_MASK)
+#define TPM_COMBINE_COMSWAP1_MASK                (0x200U)
+#define TPM_COMBINE_COMSWAP1_SHIFT               (9U)
+/*! COMSWAP1 - Combine Channels 2 and 3 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP1(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP1_SHIFT)) & TPM_COMBINE_COMSWAP1_MASK)
+#define TPM_COMBINE_COMBINE2_MASK                (0x10000U)
+#define TPM_COMBINE_COMBINE2_SHIFT               (16U)
+/*! COMBINE2 - Combine Channels 4 and 5
+ *  0b0..Channels 4 and 5 are independent.
+ *  0b1..Channels 4 and 5 are combined.
+ */
+#define TPM_COMBINE_COMBINE2(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE2_SHIFT)) & TPM_COMBINE_COMBINE2_MASK)
+#define TPM_COMBINE_COMSWAP2_MASK                (0x20000U)
+#define TPM_COMBINE_COMSWAP2_SHIFT               (17U)
+/*! COMSWAP2 - Combine Channels 4 and 5 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP2(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP2_SHIFT)) & TPM_COMBINE_COMSWAP2_MASK)
+/*! @} */
+
+/*! @name TRIG - Channel Trigger */
+/*! @{ */
+#define TPM_TRIG_TRIG0_MASK                      (0x1U)
+#define TPM_TRIG_TRIG0_SHIFT                     (0U)
+/*! TRIG0 - Channel 0 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 0.
+ */
+#define TPM_TRIG_TRIG0(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG0_SHIFT)) & TPM_TRIG_TRIG0_MASK)
+#define TPM_TRIG_TRIG1_MASK                      (0x2U)
+#define TPM_TRIG_TRIG1_SHIFT                     (1U)
+/*! TRIG1 - Channel 1 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 1.
+ */
+#define TPM_TRIG_TRIG1(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG1_SHIFT)) & TPM_TRIG_TRIG1_MASK)
+#define TPM_TRIG_TRIG2_MASK                      (0x4U)
+#define TPM_TRIG_TRIG2_SHIFT                     (2U)
+/*! TRIG2 - Channel 2 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 2.
+ */
+#define TPM_TRIG_TRIG2(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG2_SHIFT)) & TPM_TRIG_TRIG2_MASK)
+#define TPM_TRIG_TRIG3_MASK                      (0x8U)
+#define TPM_TRIG_TRIG3_SHIFT                     (3U)
+/*! TRIG3 - Channel 3 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 3.
+ */
+#define TPM_TRIG_TRIG3(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG3_SHIFT)) & TPM_TRIG_TRIG3_MASK)
+#define TPM_TRIG_TRIG4_MASK                      (0x10U)
+#define TPM_TRIG_TRIG4_SHIFT                     (4U)
+/*! TRIG4 - Channel 4 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 4.
+ */
+#define TPM_TRIG_TRIG4(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG4_SHIFT)) & TPM_TRIG_TRIG4_MASK)
+#define TPM_TRIG_TRIG5_MASK                      (0x20U)
+#define TPM_TRIG_TRIG5_SHIFT                     (5U)
+/*! TRIG5 - Channel 5 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 5.
+ */
+#define TPM_TRIG_TRIG5(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG5_SHIFT)) & TPM_TRIG_TRIG5_MASK)
+/*! @} */
+
+/*! @name POL - Channel Polarity */
+/*! @{ */
+#define TPM_POL_POL0_MASK                        (0x1U)
+#define TPM_POL_POL0_SHIFT                       (0U)
+/*! POL0 - Channel 0 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL0(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL0_SHIFT)) & TPM_POL_POL0_MASK)
+#define TPM_POL_POL1_MASK                        (0x2U)
+#define TPM_POL_POL1_SHIFT                       (1U)
+/*! POL1 - Channel 1 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL1(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL1_SHIFT)) & TPM_POL_POL1_MASK)
+#define TPM_POL_POL2_MASK                        (0x4U)
+#define TPM_POL_POL2_SHIFT                       (2U)
+/*! POL2 - Channel 2 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL2(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL2_SHIFT)) & TPM_POL_POL2_MASK)
+#define TPM_POL_POL3_MASK                        (0x8U)
+#define TPM_POL_POL3_SHIFT                       (3U)
+/*! POL3 - Channel 3 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL3(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL3_SHIFT)) & TPM_POL_POL3_MASK)
+#define TPM_POL_POL4_MASK                        (0x10U)
+#define TPM_POL_POL4_SHIFT                       (4U)
+/*! POL4 - Channel 4 Polarity
+ *  0b0..The channel polarity is active high
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL4(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL4_SHIFT)) & TPM_POL_POL4_MASK)
+#define TPM_POL_POL5_MASK                        (0x20U)
+#define TPM_POL_POL5_SHIFT                       (5U)
+/*! POL5 - Channel 5 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL5(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL5_SHIFT)) & TPM_POL_POL5_MASK)
+/*! @} */
+
+/*! @name FILTER - Filter Control */
+/*! @{ */
+#define TPM_FILTER_CH0FVAL_MASK                  (0xFU)
+#define TPM_FILTER_CH0FVAL_SHIFT                 (0U)
+#define TPM_FILTER_CH0FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH0FVAL_SHIFT)) & TPM_FILTER_CH0FVAL_MASK)
+#define TPM_FILTER_CH1FVAL_MASK                  (0xF0U)
+#define TPM_FILTER_CH1FVAL_SHIFT                 (4U)
+#define TPM_FILTER_CH1FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH1FVAL_SHIFT)) & TPM_FILTER_CH1FVAL_MASK)
+#define TPM_FILTER_CH2FVAL_MASK                  (0xF00U)
+#define TPM_FILTER_CH2FVAL_SHIFT                 (8U)
+#define TPM_FILTER_CH2FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH2FVAL_SHIFT)) & TPM_FILTER_CH2FVAL_MASK)
+#define TPM_FILTER_CH3FVAL_MASK                  (0xF000U)
+#define TPM_FILTER_CH3FVAL_SHIFT                 (12U)
+#define TPM_FILTER_CH3FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH3FVAL_SHIFT)) & TPM_FILTER_CH3FVAL_MASK)
+#define TPM_FILTER_CH4FVAL_MASK                  (0xF0000U)
+#define TPM_FILTER_CH4FVAL_SHIFT                 (16U)
+#define TPM_FILTER_CH4FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH4FVAL_SHIFT)) & TPM_FILTER_CH4FVAL_MASK)
+#define TPM_FILTER_CH5FVAL_MASK                  (0xF00000U)
+#define TPM_FILTER_CH5FVAL_SHIFT                 (20U)
+#define TPM_FILTER_CH5FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH5FVAL_SHIFT)) & TPM_FILTER_CH5FVAL_MASK)
+/*! @} */
+
+/*! @name QDCTRL - Quadrature Decoder Control and Status */
+/*! @{ */
+#define TPM_QDCTRL_QUADEN_MASK                   (0x1U)
+#define TPM_QDCTRL_QUADEN_SHIFT                  (0U)
+/*! QUADEN - QUADEN
+ *  0b0..Quadrature decoder mode is disabled.
+ *  0b1..Quadrature decoder mode is enabled.
+ */
+#define TPM_QDCTRL_QUADEN(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADEN_SHIFT)) & TPM_QDCTRL_QUADEN_MASK)
+#define TPM_QDCTRL_TOFDIR_MASK                   (0x2U)
+#define TPM_QDCTRL_TOFDIR_SHIFT                  (1U)
+/*! TOFDIR - TOFDIR
+ *  0b0..TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (zero) to its maximum value (MOD register).
+ *  0b1..TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (zero).
+ */
+#define TPM_QDCTRL_TOFDIR(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_TOFDIR_SHIFT)) & TPM_QDCTRL_TOFDIR_MASK)
+#define TPM_QDCTRL_QUADIR_MASK                   (0x4U)
+#define TPM_QDCTRL_QUADIR_SHIFT                  (2U)
+/*! QUADIR - Counter Direction in Quadrature Decode Mode
+ *  0b0..Counter direction is decreasing (counter decrement).
+ *  0b1..Counter direction is increasing (counter increment).
+ */
+#define TPM_QDCTRL_QUADIR(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADIR_SHIFT)) & TPM_QDCTRL_QUADIR_MASK)
+#define TPM_QDCTRL_QUADMODE_MASK                 (0x8U)
+#define TPM_QDCTRL_QUADMODE_SHIFT                (3U)
+/*! QUADMODE - Quadrature Decoder Mode
+ *  0b0..Phase encoding mode.
+ *  0b1..Count and direction encoding mode.
+ */
+#define TPM_QDCTRL_QUADMODE(x)                   (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADMODE_SHIFT)) & TPM_QDCTRL_QUADMODE_MASK)
+/*! @} */
+
+/*! @name CONF - Configuration */
+/*! @{ */
+#define TPM_CONF_DOZEEN_MASK                     (0x20U)
+#define TPM_CONF_DOZEEN_SHIFT                    (5U)
+/*! DOZEEN - Doze Enable
+ *  0b0..Internal TPM counter continues in Doze mode.
+ *  0b1..Internal TPM counter is paused and does not increment during Doze mode. Trigger inputs and input capture events are ignored, and PWM outputs are forced to their default state.
+ */
+#define TPM_CONF_DOZEEN(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_DOZEEN_SHIFT)) & TPM_CONF_DOZEEN_MASK)
+#define TPM_CONF_DBGMODE_MASK                    (0xC0U)
+#define TPM_CONF_DBGMODE_SHIFT                   (6U)
+/*! DBGMODE - Debug Mode
+ *  0b00..TPM counter is paused and does not increment during debug mode. Trigger inputs and input capture events are ignored, and PWM outputs are forced to their default state.
+ *  0b11..TPM counter continues in debug mode.
+ */
+#define TPM_CONF_DBGMODE(x)                      (((uint32_t)(((uint32_t)(x)) << TPM_CONF_DBGMODE_SHIFT)) & TPM_CONF_DBGMODE_MASK)
+#define TPM_CONF_GTBSYNC_MASK                    (0x100U)
+#define TPM_CONF_GTBSYNC_SHIFT                   (8U)
+/*! GTBSYNC - Global Time Base Synchronization
+ *  0b0..Global timebase synchronization disabled.
+ *  0b1..Global timebase synchronization enabled.
+ */
+#define TPM_CONF_GTBSYNC(x)                      (((uint32_t)(((uint32_t)(x)) << TPM_CONF_GTBSYNC_SHIFT)) & TPM_CONF_GTBSYNC_MASK)
+#define TPM_CONF_GTBEEN_MASK                     (0x200U)
+#define TPM_CONF_GTBEEN_SHIFT                    (9U)
+/*! GTBEEN - Global time base enable
+ *  0b0..All channels use the internally generated TPM counter as their timebase
+ *  0b1..All channels use an externally generated global timebase as their timebase
+ */
+#define TPM_CONF_GTBEEN(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_GTBEEN_SHIFT)) & TPM_CONF_GTBEEN_MASK)
+#define TPM_CONF_CSOT_MASK                       (0x10000U)
+#define TPM_CONF_CSOT_SHIFT                      (16U)
+/*! CSOT - Counter Start on Trigger
+ *  0b0..TPM counter starts to increment immediately, once it is enabled.
+ *  0b1..TPM counter only starts to increment when it a rising edge on the selected input trigger is detected, after it has been enabled or after it has stopped due to overflow.
+ */
+#define TPM_CONF_CSOT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CSOT_SHIFT)) & TPM_CONF_CSOT_MASK)
+#define TPM_CONF_CSOO_MASK                       (0x20000U)
+#define TPM_CONF_CSOO_SHIFT                      (17U)
+/*! CSOO - Counter Stop On Overflow
+ *  0b0..TPM counter continues incrementing or decrementing after overflow
+ *  0b1..TPM counter stops incrementing or decrementing after overflow.
+ */
+#define TPM_CONF_CSOO(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CSOO_SHIFT)) & TPM_CONF_CSOO_MASK)
+#define TPM_CONF_CROT_MASK                       (0x40000U)
+#define TPM_CONF_CROT_SHIFT                      (18U)
+/*! CROT - Counter Reload On Trigger
+ *  0b0..Counter is not reloaded due to a rising edge on the selected input trigger
+ *  0b1..Counter is reloaded when a rising edge is detected on the selected input trigger
+ */
+#define TPM_CONF_CROT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CROT_SHIFT)) & TPM_CONF_CROT_MASK)
+#define TPM_CONF_CPOT_MASK                       (0x80000U)
+#define TPM_CONF_CPOT_SHIFT                      (19U)
+#define TPM_CONF_CPOT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CPOT_SHIFT)) & TPM_CONF_CPOT_MASK)
+#define TPM_CONF_TRGPOL_MASK                     (0x400000U)
+#define TPM_CONF_TRGPOL_SHIFT                    (22U)
+/*! TRGPOL - Trigger Polarity
+ *  0b0..Trigger is active high.
+ *  0b1..Trigger is active low.
+ */
+#define TPM_CONF_TRGPOL(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGPOL_SHIFT)) & TPM_CONF_TRGPOL_MASK)
+#define TPM_CONF_TRGSRC_MASK                     (0x800000U)
+#define TPM_CONF_TRGSRC_SHIFT                    (23U)
+/*! TRGSRC - Trigger Source
+ *  0b0..Trigger source selected by TRGSEL is external.
+ *  0b1..Trigger source selected by TRGSEL is internal (channel pin input capture).
+ */
+#define TPM_CONF_TRGSRC(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGSRC_SHIFT)) & TPM_CONF_TRGSRC_MASK)
+#define TPM_CONF_TRGSEL_MASK                     (0x3000000U)
+#define TPM_CONF_TRGSEL_SHIFT                    (24U)
+/*! TRGSEL - Trigger Select
+ *  0b01..Channel 0 pin input capture
+ *  0b10..Channel 1 pin input capture
+ *  0b11..Channel 0 or Channel 1 pin input capture
+ */
+#define TPM_CONF_TRGSEL(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGSEL_SHIFT)) & TPM_CONF_TRGSEL_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TPM_Register_Masks */
+
+
+/* TPM - Peripheral instance base addresses */
+/** Peripheral TPM0 base address */
+#define TPM0_BASE                                (0x40035000u)
+/** Peripheral TPM0 base pointer */
+#define TPM0                                     ((TPM_Type *)TPM0_BASE)
+/** Peripheral TPM1 base address */
+#define TPM1_BASE                                (0x40036000u)
+/** Peripheral TPM1 base pointer */
+#define TPM1                                     ((TPM_Type *)TPM1_BASE)
+/** Peripheral TPM2 base address */
+#define TPM2_BASE                                (0x40037000u)
+/** Peripheral TPM2 base pointer */
+#define TPM2                                     ((TPM_Type *)TPM2_BASE)
+/** Peripheral TPM3 base address */
+#define TPM3_BASE                                (0x4102D000u)
+/** Peripheral TPM3 base pointer */
+#define TPM3                                     ((TPM_Type *)TPM3_BASE)
+/** Array initializer of TPM peripheral base addresses */
+#define TPM_BASE_ADDRS                           { TPM0_BASE, TPM1_BASE, TPM2_BASE, TPM3_BASE }
+/** Array initializer of TPM peripheral base pointers */
+#define TPM_BASE_PTRS                            { TPM0, TPM1, TPM2, TPM3 }
+/** Interrupt vectors for the TPM peripheral type */
+#define TPM_IRQS                                 { TPM0_IRQn, TPM1_IRQn, TPM2_IRQn, TPM3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group TPM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TRGMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRGMUX_Peripheral_Access_Layer TRGMUX Peripheral Access Layer
+ * @{
+ */
+
+/** TRGMUX - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t TRGCFG[25];                        /**< TRGMUX TRGMUX_DMAMUX0 Register..TRGMUX TRGMUX_LPDAC0 Register, array offset: 0x0, array step: 0x4 */
+} TRGMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TRGMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRGMUX_Register_Masks TRGMUX Register Masks
+ * @{
+ */
+
+/*! @name TRGCFG - TRGMUX TRGMUX_DMAMUX0 Register..TRGMUX TRGMUX_LPDAC0 Register */
+/*! @{ */
+#define TRGMUX_TRGCFG_SEL0_MASK                  (0x3FU)
+#define TRGMUX_TRGCFG_SEL0_SHIFT                 (0U)
+#define TRGMUX_TRGCFG_SEL0(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL0_SHIFT)) & TRGMUX_TRGCFG_SEL0_MASK)
+#define TRGMUX_TRGCFG_SEL1_MASK                  (0x3F00U)
+#define TRGMUX_TRGCFG_SEL1_SHIFT                 (8U)
+#define TRGMUX_TRGCFG_SEL1(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL1_SHIFT)) & TRGMUX_TRGCFG_SEL1_MASK)
+#define TRGMUX_TRGCFG_SEL2_MASK                  (0x3F0000U)
+#define TRGMUX_TRGCFG_SEL2_SHIFT                 (16U)
+#define TRGMUX_TRGCFG_SEL2(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL2_SHIFT)) & TRGMUX_TRGCFG_SEL2_MASK)
+#define TRGMUX_TRGCFG_SEL3_MASK                  (0x3F000000U)
+#define TRGMUX_TRGCFG_SEL3_SHIFT                 (24U)
+#define TRGMUX_TRGCFG_SEL3(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL3_SHIFT)) & TRGMUX_TRGCFG_SEL3_MASK)
+#define TRGMUX_TRGCFG_LK_MASK                    (0x80000000U)
+#define TRGMUX_TRGCFG_LK_SHIFT                   (31U)
+/*! LK - TRGMUX register lock.
+ *  0b0..Register can be written.
+ *  0b1..Register cannot be written until the next system Reset.
+ */
+#define TRGMUX_TRGCFG_LK(x)                      (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_LK_SHIFT)) & TRGMUX_TRGCFG_LK_MASK)
+/*! @} */
+
+/* The count of TRGMUX_TRGCFG */
+#define TRGMUX_TRGCFG_COUNT                      (25U)
+
+
+/*!
+ * @}
+ */ /* end of group TRGMUX_Register_Masks */
+
+
+/* TRGMUX - Peripheral instance base addresses */
+/** Peripheral TRGMUX0 base address */
+#define TRGMUX0_BASE                             (0x40029000u)
+/** Peripheral TRGMUX0 base pointer */
+#define TRGMUX0                                  ((TRGMUX_Type *)TRGMUX0_BASE)
+/** Peripheral TRGMUX1 base address */
+#define TRGMUX1_BASE                             (0x41025000u)
+/** Peripheral TRGMUX1 base pointer */
+#define TRGMUX1                                  ((TRGMUX_Type *)TRGMUX1_BASE)
+/** Array initializer of TRGMUX peripheral base addresses */
+#define TRGMUX_BASE_ADDRS                        { TRGMUX0_BASE, TRGMUX1_BASE }
+/** Array initializer of TRGMUX peripheral base pointers */
+#define TRGMUX_BASE_PTRS                         { TRGMUX0, TRGMUX1 }
+
+/*!
+ * @}
+ */ /* end of group TRGMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TRNG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRNG_Peripheral_Access_Layer TRNG Peripheral Access Layer
+ * @{
+ */
+
+/** TRNG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t MCTL;                              /**< Miscellaneous Control Register, offset: 0x0 */
+  __IO uint32_t SCMISC;                            /**< Statistical Check Miscellaneous Register, offset: 0x4 */
+  __IO uint32_t PKRRNG;                            /**< Poker Range Register, offset: 0x8 */
+  union {                                          /* offset: 0xC */
+    __IO uint32_t PKRMAX;                            /**< Poker Maximum Limit Register, offset: 0xC */
+    __I  uint32_t PKRSQ;                             /**< Poker Square Calculation Result Register, offset: 0xC */
+  };
+  __IO uint32_t SDCTL;                             /**< Seed Control Register, offset: 0x10 */
+  union {                                          /* offset: 0x14 */
+    __IO uint32_t SBLIM;                             /**< Sparse Bit Limit Register, offset: 0x14 */
+    __I  uint32_t TOTSAM;                            /**< Total Samples Register, offset: 0x14 */
+  };
+  __IO uint32_t FRQMIN;                            /**< Frequency Count Minimum Limit Register, offset: 0x18 */
+  union {                                          /* offset: 0x1C */
+    __I  uint32_t FRQCNT;                            /**< Frequency Count Register, offset: 0x1C */
+    __IO uint32_t FRQMAX;                            /**< Frequency Count Maximum Limit Register, offset: 0x1C */
+  };
+  union {                                          /* offset: 0x20 */
+    __I  uint32_t SCMC;                              /**< Statistical Check Monobit Count Register, offset: 0x20 */
+    __IO uint32_t SCML;                              /**< Statistical Check Monobit Limit Register, offset: 0x20 */
+  };
+  union {                                          /* offset: 0x24 */
+    __I  uint32_t SCR1C;                             /**< Statistical Check Run Length 1 Count Register, offset: 0x24 */
+    __IO uint32_t SCR1L;                             /**< Statistical Check Run Length 1 Limit Register, offset: 0x24 */
+  };
+  union {                                          /* offset: 0x28 */
+    __I  uint32_t SCR2C;                             /**< Statistical Check Run Length 2 Count Register, offset: 0x28 */
+    __IO uint32_t SCR2L;                             /**< Statistical Check Run Length 2 Limit Register, offset: 0x28 */
+  };
+  union {                                          /* offset: 0x2C */
+    __I  uint32_t SCR3C;                             /**< Statistical Check Run Length 3 Count Register, offset: 0x2C */
+    __IO uint32_t SCR3L;                             /**< Statistical Check Run Length 3 Limit Register, offset: 0x2C */
+  };
+  union {                                          /* offset: 0x30 */
+    __I  uint32_t SCR4C;                             /**< Statistical Check Run Length 4 Count Register, offset: 0x30 */
+    __IO uint32_t SCR4L;                             /**< Statistical Check Run Length 4 Limit Register, offset: 0x30 */
+  };
+  union {                                          /* offset: 0x34 */
+    __I  uint32_t SCR5C;                             /**< Statistical Check Run Length 5 Count Register, offset: 0x34 */
+    __IO uint32_t SCR5L;                             /**< Statistical Check Run Length 5 Limit Register, offset: 0x34 */
+  };
+  union {                                          /* offset: 0x38 */
+    __I  uint32_t SCR6PC;                            /**< Statistical Check Run Length 6+ Count Register, offset: 0x38 */
+    __IO uint32_t SCR6PL;                            /**< Statistical Check Run Length 6+ Limit Register, offset: 0x38 */
+  };
+  __I  uint32_t STATUS;                            /**< Status Register, offset: 0x3C */
+  __I  uint32_t ENT[16];                           /**< Entropy Read Register, array offset: 0x40, array step: 0x4 */
+  __I  uint32_t PKRCNT10;                          /**< Statistical Check Poker Count 1 and 0 Register, offset: 0x80 */
+  __I  uint32_t PKRCNT32;                          /**< Statistical Check Poker Count 3 and 2 Register, offset: 0x84 */
+  __I  uint32_t PKRCNT54;                          /**< Statistical Check Poker Count 5 and 4 Register, offset: 0x88 */
+  __I  uint32_t PKRCNT76;                          /**< Statistical Check Poker Count 7 and 6 Register, offset: 0x8C */
+  __I  uint32_t PKRCNT98;                          /**< Statistical Check Poker Count 9 and 8 Register, offset: 0x90 */
+  __I  uint32_t PKRCNTBA;                          /**< Statistical Check Poker Count B and A Register, offset: 0x94 */
+  __I  uint32_t PKRCNTDC;                          /**< Statistical Check Poker Count D and C Register, offset: 0x98 */
+  __I  uint32_t PKRCNTFE;                          /**< Statistical Check Poker Count F and E Register, offset: 0x9C */
+  __IO uint32_t SEC_CFG;                           /**< Security Configuration Register, offset: 0xA0 */
+  __IO uint32_t INT_CTRL;                          /**< Interrupt Control Register, offset: 0xA4 */
+  __IO uint32_t INT_MASK;                          /**< Mask Register, offset: 0xA8 */
+  __I  uint32_t INT_STATUS;                        /**< Interrupt Status Register, offset: 0xAC */
+       uint8_t RESERVED_0[64];
+  __I  uint32_t VID1;                              /**< Version ID Register (MS), offset: 0xF0 */
+  __I  uint32_t VID2;                              /**< Version ID Register (LS), offset: 0xF4 */
+} TRNG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TRNG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRNG_Register_Masks TRNG Register Masks
+ * @{
+ */
+
+/*! @name MCTL - Miscellaneous Control Register */
+/*! @{ */
+#define TRNG_MCTL_SAMP_MODE_MASK                 (0x3U)
+#define TRNG_MCTL_SAMP_MODE_SHIFT                (0U)
+/*! SAMP_MODE
+ *  0b00..use Von Neumann data into both Entropy shifter and Statistical Checker
+ *  0b01..use raw data into both Entropy shifter and Statistical Checker
+ *  0b10..use Von Neumann data into Entropy shifter. Use raw data into Statistical Checker
+ *  0b11..undefined/reserved.
+ */
+#define TRNG_MCTL_SAMP_MODE(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_SAMP_MODE_SHIFT)) & TRNG_MCTL_SAMP_MODE_MASK)
+#define TRNG_MCTL_OSC_DIV_MASK                   (0xCU)
+#define TRNG_MCTL_OSC_DIV_SHIFT                  (2U)
+/*! OSC_DIV
+ *  0b00..use ring oscillator with no divide
+ *  0b01..use ring oscillator divided-by-2
+ *  0b10..use ring oscillator divided-by-4
+ *  0b11..use ring oscillator divided-by-8
+ */
+#define TRNG_MCTL_OSC_DIV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_OSC_DIV_SHIFT)) & TRNG_MCTL_OSC_DIV_MASK)
+#define TRNG_MCTL_UNUSED4_MASK                   (0x10U)
+#define TRNG_MCTL_UNUSED4_SHIFT                  (4U)
+#define TRNG_MCTL_UNUSED4(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_UNUSED4_SHIFT)) & TRNG_MCTL_UNUSED4_MASK)
+#define TRNG_MCTL_TRNG_ACC_MASK                  (0x20U)
+#define TRNG_MCTL_TRNG_ACC_SHIFT                 (5U)
+#define TRNG_MCTL_TRNG_ACC(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TRNG_ACC_SHIFT)) & TRNG_MCTL_TRNG_ACC_MASK)
+#define TRNG_MCTL_RST_DEF_MASK                   (0x40U)
+#define TRNG_MCTL_RST_DEF_SHIFT                  (6U)
+#define TRNG_MCTL_RST_DEF(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_RST_DEF_SHIFT)) & TRNG_MCTL_RST_DEF_MASK)
+#define TRNG_MCTL_FOR_SCLK_MASK                  (0x80U)
+#define TRNG_MCTL_FOR_SCLK_SHIFT                 (7U)
+#define TRNG_MCTL_FOR_SCLK(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FOR_SCLK_SHIFT)) & TRNG_MCTL_FOR_SCLK_MASK)
+#define TRNG_MCTL_FCT_FAIL_MASK                  (0x100U)
+#define TRNG_MCTL_FCT_FAIL_SHIFT                 (8U)
+#define TRNG_MCTL_FCT_FAIL(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FCT_FAIL_SHIFT)) & TRNG_MCTL_FCT_FAIL_MASK)
+#define TRNG_MCTL_FCT_VAL_MASK                   (0x200U)
+#define TRNG_MCTL_FCT_VAL_SHIFT                  (9U)
+#define TRNG_MCTL_FCT_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FCT_VAL_SHIFT)) & TRNG_MCTL_FCT_VAL_MASK)
+#define TRNG_MCTL_ENT_VAL_MASK                   (0x400U)
+#define TRNG_MCTL_ENT_VAL_SHIFT                  (10U)
+#define TRNG_MCTL_ENT_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_ENT_VAL_SHIFT)) & TRNG_MCTL_ENT_VAL_MASK)
+#define TRNG_MCTL_TST_OUT_MASK                   (0x800U)
+#define TRNG_MCTL_TST_OUT_SHIFT                  (11U)
+#define TRNG_MCTL_TST_OUT(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TST_OUT_SHIFT)) & TRNG_MCTL_TST_OUT_MASK)
+#define TRNG_MCTL_ERR_MASK                       (0x1000U)
+#define TRNG_MCTL_ERR_SHIFT                      (12U)
+#define TRNG_MCTL_ERR(x)                         (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_ERR_SHIFT)) & TRNG_MCTL_ERR_MASK)
+#define TRNG_MCTL_TSTOP_OK_MASK                  (0x2000U)
+#define TRNG_MCTL_TSTOP_OK_SHIFT                 (13U)
+#define TRNG_MCTL_TSTOP_OK(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TSTOP_OK_SHIFT)) & TRNG_MCTL_TSTOP_OK_MASK)
+#define TRNG_MCTL_PRGM_MASK                      (0x10000U)
+#define TRNG_MCTL_PRGM_SHIFT                     (16U)
+#define TRNG_MCTL_PRGM(x)                        (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_PRGM_SHIFT)) & TRNG_MCTL_PRGM_MASK)
+/*! @} */
+
+/*! @name SCMISC - Statistical Check Miscellaneous Register */
+/*! @{ */
+#define TRNG_SCMISC_LRUN_MAX_MASK                (0xFFU)
+#define TRNG_SCMISC_LRUN_MAX_SHIFT               (0U)
+#define TRNG_SCMISC_LRUN_MAX(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCMISC_LRUN_MAX_SHIFT)) & TRNG_SCMISC_LRUN_MAX_MASK)
+#define TRNG_SCMISC_RTY_CT_MASK                  (0xF0000U)
+#define TRNG_SCMISC_RTY_CT_SHIFT                 (16U)
+#define TRNG_SCMISC_RTY_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCMISC_RTY_CT_SHIFT)) & TRNG_SCMISC_RTY_CT_MASK)
+/*! @} */
+
+/*! @name PKRRNG - Poker Range Register */
+/*! @{ */
+#define TRNG_PKRRNG_PKR_RNG_MASK                 (0xFFFFU)
+#define TRNG_PKRRNG_PKR_RNG_SHIFT                (0U)
+#define TRNG_PKRRNG_PKR_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_PKRRNG_PKR_RNG_SHIFT)) & TRNG_PKRRNG_PKR_RNG_MASK)
+/*! @} */
+
+/*! @name PKRMAX - Poker Maximum Limit Register */
+/*! @{ */
+#define TRNG_PKRMAX_PKR_MAX_MASK                 (0xFFFFFFU)
+#define TRNG_PKRMAX_PKR_MAX_SHIFT                (0U)
+#define TRNG_PKRMAX_PKR_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_PKRMAX_PKR_MAX_SHIFT)) & TRNG_PKRMAX_PKR_MAX_MASK)
+/*! @} */
+
+/*! @name PKRSQ - Poker Square Calculation Result Register */
+/*! @{ */
+#define TRNG_PKRSQ_PKR_SQ_MASK                   (0xFFFFFFU)
+#define TRNG_PKRSQ_PKR_SQ_SHIFT                  (0U)
+#define TRNG_PKRSQ_PKR_SQ(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_PKRSQ_PKR_SQ_SHIFT)) & TRNG_PKRSQ_PKR_SQ_MASK)
+/*! @} */
+
+/*! @name SDCTL - Seed Control Register */
+/*! @{ */
+#define TRNG_SDCTL_SAMP_SIZE_MASK                (0xFFFFU)
+#define TRNG_SDCTL_SAMP_SIZE_SHIFT               (0U)
+#define TRNG_SDCTL_SAMP_SIZE(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SDCTL_SAMP_SIZE_SHIFT)) & TRNG_SDCTL_SAMP_SIZE_MASK)
+#define TRNG_SDCTL_ENT_DLY_MASK                  (0xFFFF0000U)
+#define TRNG_SDCTL_ENT_DLY_SHIFT                 (16U)
+#define TRNG_SDCTL_ENT_DLY(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SDCTL_ENT_DLY_SHIFT)) & TRNG_SDCTL_ENT_DLY_MASK)
+/*! @} */
+
+/*! @name SBLIM - Sparse Bit Limit Register */
+/*! @{ */
+#define TRNG_SBLIM_SB_LIM_MASK                   (0x3FFU)
+#define TRNG_SBLIM_SB_LIM_SHIFT                  (0U)
+#define TRNG_SBLIM_SB_LIM(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_SBLIM_SB_LIM_SHIFT)) & TRNG_SBLIM_SB_LIM_MASK)
+/*! @} */
+
+/*! @name TOTSAM - Total Samples Register */
+/*! @{ */
+#define TRNG_TOTSAM_TOT_SAM_MASK                 (0xFFFFFU)
+#define TRNG_TOTSAM_TOT_SAM_SHIFT                (0U)
+#define TRNG_TOTSAM_TOT_SAM(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_TOTSAM_TOT_SAM_SHIFT)) & TRNG_TOTSAM_TOT_SAM_MASK)
+/*! @} */
+
+/*! @name FRQMIN - Frequency Count Minimum Limit Register */
+/*! @{ */
+#define TRNG_FRQMIN_FRQ_MIN_MASK                 (0x3FFFFFU)
+#define TRNG_FRQMIN_FRQ_MIN_SHIFT                (0U)
+#define TRNG_FRQMIN_FRQ_MIN(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_FRQMIN_FRQ_MIN_SHIFT)) & TRNG_FRQMIN_FRQ_MIN_MASK)
+/*! @} */
+
+/*! @name FRQCNT - Frequency Count Register */
+/*! @{ */
+#define TRNG_FRQCNT_FRQ_CT_MASK                  (0x3FFFFFU)
+#define TRNG_FRQCNT_FRQ_CT_SHIFT                 (0U)
+#define TRNG_FRQCNT_FRQ_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_FRQCNT_FRQ_CT_SHIFT)) & TRNG_FRQCNT_FRQ_CT_MASK)
+/*! @} */
+
+/*! @name FRQMAX - Frequency Count Maximum Limit Register */
+/*! @{ */
+#define TRNG_FRQMAX_FRQ_MAX_MASK                 (0x3FFFFFU)
+#define TRNG_FRQMAX_FRQ_MAX_SHIFT                (0U)
+#define TRNG_FRQMAX_FRQ_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_FRQMAX_FRQ_MAX_SHIFT)) & TRNG_FRQMAX_FRQ_MAX_MASK)
+/*! @} */
+
+/*! @name SCMC - Statistical Check Monobit Count Register */
+/*! @{ */
+#define TRNG_SCMC_MONO_CT_MASK                   (0xFFFFU)
+#define TRNG_SCMC_MONO_CT_SHIFT                  (0U)
+#define TRNG_SCMC_MONO_CT(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_SCMC_MONO_CT_SHIFT)) & TRNG_SCMC_MONO_CT_MASK)
+/*! @} */
+
+/*! @name SCML - Statistical Check Monobit Limit Register */
+/*! @{ */
+#define TRNG_SCML_MONO_MAX_MASK                  (0xFFFFU)
+#define TRNG_SCML_MONO_MAX_SHIFT                 (0U)
+#define TRNG_SCML_MONO_MAX(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCML_MONO_MAX_SHIFT)) & TRNG_SCML_MONO_MAX_MASK)
+#define TRNG_SCML_MONO_RNG_MASK                  (0xFFFF0000U)
+#define TRNG_SCML_MONO_RNG_SHIFT                 (16U)
+#define TRNG_SCML_MONO_RNG(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCML_MONO_RNG_SHIFT)) & TRNG_SCML_MONO_RNG_MASK)
+/*! @} */
+
+/*! @name SCR1C - Statistical Check Run Length 1 Count Register */
+/*! @{ */
+#define TRNG_SCR1C_R1_0_CT_MASK                  (0x7FFFU)
+#define TRNG_SCR1C_R1_0_CT_SHIFT                 (0U)
+#define TRNG_SCR1C_R1_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1C_R1_0_CT_SHIFT)) & TRNG_SCR1C_R1_0_CT_MASK)
+#define TRNG_SCR1C_R1_1_CT_MASK                  (0x7FFF0000U)
+#define TRNG_SCR1C_R1_1_CT_SHIFT                 (16U)
+#define TRNG_SCR1C_R1_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1C_R1_1_CT_SHIFT)) & TRNG_SCR1C_R1_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR1L - Statistical Check Run Length 1 Limit Register */
+/*! @{ */
+#define TRNG_SCR1L_RUN1_MAX_MASK                 (0x7FFFU)
+#define TRNG_SCR1L_RUN1_MAX_SHIFT                (0U)
+#define TRNG_SCR1L_RUN1_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1L_RUN1_MAX_SHIFT)) & TRNG_SCR1L_RUN1_MAX_MASK)
+#define TRNG_SCR1L_RUN1_RNG_MASK                 (0x7FFF0000U)
+#define TRNG_SCR1L_RUN1_RNG_SHIFT                (16U)
+#define TRNG_SCR1L_RUN1_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1L_RUN1_RNG_SHIFT)) & TRNG_SCR1L_RUN1_RNG_MASK)
+/*! @} */
+
+/*! @name SCR2C - Statistical Check Run Length 2 Count Register */
+/*! @{ */
+#define TRNG_SCR2C_R2_0_CT_MASK                  (0x3FFFU)
+#define TRNG_SCR2C_R2_0_CT_SHIFT                 (0U)
+#define TRNG_SCR2C_R2_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2C_R2_0_CT_SHIFT)) & TRNG_SCR2C_R2_0_CT_MASK)
+#define TRNG_SCR2C_R2_1_CT_MASK                  (0x3FFF0000U)
+#define TRNG_SCR2C_R2_1_CT_SHIFT                 (16U)
+#define TRNG_SCR2C_R2_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2C_R2_1_CT_SHIFT)) & TRNG_SCR2C_R2_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR2L - Statistical Check Run Length 2 Limit Register */
+/*! @{ */
+#define TRNG_SCR2L_RUN2_MAX_MASK                 (0x3FFFU)
+#define TRNG_SCR2L_RUN2_MAX_SHIFT                (0U)
+#define TRNG_SCR2L_RUN2_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2L_RUN2_MAX_SHIFT)) & TRNG_SCR2L_RUN2_MAX_MASK)
+#define TRNG_SCR2L_RUN2_RNG_MASK                 (0x3FFF0000U)
+#define TRNG_SCR2L_RUN2_RNG_SHIFT                (16U)
+#define TRNG_SCR2L_RUN2_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2L_RUN2_RNG_SHIFT)) & TRNG_SCR2L_RUN2_RNG_MASK)
+/*! @} */
+
+/*! @name SCR3C - Statistical Check Run Length 3 Count Register */
+/*! @{ */
+#define TRNG_SCR3C_R3_0_CT_MASK                  (0x1FFFU)
+#define TRNG_SCR3C_R3_0_CT_SHIFT                 (0U)
+#define TRNG_SCR3C_R3_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3C_R3_0_CT_SHIFT)) & TRNG_SCR3C_R3_0_CT_MASK)
+#define TRNG_SCR3C_R3_1_CT_MASK                  (0x1FFF0000U)
+#define TRNG_SCR3C_R3_1_CT_SHIFT                 (16U)
+#define TRNG_SCR3C_R3_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3C_R3_1_CT_SHIFT)) & TRNG_SCR3C_R3_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR3L - Statistical Check Run Length 3 Limit Register */
+/*! @{ */
+#define TRNG_SCR3L_RUN3_MAX_MASK                 (0x1FFFU)
+#define TRNG_SCR3L_RUN3_MAX_SHIFT                (0U)
+#define TRNG_SCR3L_RUN3_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3L_RUN3_MAX_SHIFT)) & TRNG_SCR3L_RUN3_MAX_MASK)
+#define TRNG_SCR3L_RUN3_RNG_MASK                 (0x1FFF0000U)
+#define TRNG_SCR3L_RUN3_RNG_SHIFT                (16U)
+#define TRNG_SCR3L_RUN3_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3L_RUN3_RNG_SHIFT)) & TRNG_SCR3L_RUN3_RNG_MASK)
+/*! @} */
+
+/*! @name SCR4C - Statistical Check Run Length 4 Count Register */
+/*! @{ */
+#define TRNG_SCR4C_R4_0_CT_MASK                  (0xFFFU)
+#define TRNG_SCR4C_R4_0_CT_SHIFT                 (0U)
+#define TRNG_SCR4C_R4_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4C_R4_0_CT_SHIFT)) & TRNG_SCR4C_R4_0_CT_MASK)
+#define TRNG_SCR4C_R4_1_CT_MASK                  (0xFFF0000U)
+#define TRNG_SCR4C_R4_1_CT_SHIFT                 (16U)
+#define TRNG_SCR4C_R4_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4C_R4_1_CT_SHIFT)) & TRNG_SCR4C_R4_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR4L - Statistical Check Run Length 4 Limit Register */
+/*! @{ */
+#define TRNG_SCR4L_RUN4_MAX_MASK                 (0xFFFU)
+#define TRNG_SCR4L_RUN4_MAX_SHIFT                (0U)
+#define TRNG_SCR4L_RUN4_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4L_RUN4_MAX_SHIFT)) & TRNG_SCR4L_RUN4_MAX_MASK)
+#define TRNG_SCR4L_RUN4_RNG_MASK                 (0xFFF0000U)
+#define TRNG_SCR4L_RUN4_RNG_SHIFT                (16U)
+#define TRNG_SCR4L_RUN4_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4L_RUN4_RNG_SHIFT)) & TRNG_SCR4L_RUN4_RNG_MASK)
+/*! @} */
+
+/*! @name SCR5C - Statistical Check Run Length 5 Count Register */
+/*! @{ */
+#define TRNG_SCR5C_R5_0_CT_MASK                  (0x7FFU)
+#define TRNG_SCR5C_R5_0_CT_SHIFT                 (0U)
+#define TRNG_SCR5C_R5_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5C_R5_0_CT_SHIFT)) & TRNG_SCR5C_R5_0_CT_MASK)
+#define TRNG_SCR5C_R5_1_CT_MASK                  (0x7FF0000U)
+#define TRNG_SCR5C_R5_1_CT_SHIFT                 (16U)
+#define TRNG_SCR5C_R5_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5C_R5_1_CT_SHIFT)) & TRNG_SCR5C_R5_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR5L - Statistical Check Run Length 5 Limit Register */
+/*! @{ */
+#define TRNG_SCR5L_RUN5_MAX_MASK                 (0x7FFU)
+#define TRNG_SCR5L_RUN5_MAX_SHIFT                (0U)
+#define TRNG_SCR5L_RUN5_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5L_RUN5_MAX_SHIFT)) & TRNG_SCR5L_RUN5_MAX_MASK)
+#define TRNG_SCR5L_RUN5_RNG_MASK                 (0x7FF0000U)
+#define TRNG_SCR5L_RUN5_RNG_SHIFT                (16U)
+#define TRNG_SCR5L_RUN5_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5L_RUN5_RNG_SHIFT)) & TRNG_SCR5L_RUN5_RNG_MASK)
+/*! @} */
+
+/*! @name SCR6PC - Statistical Check Run Length 6+ Count Register */
+/*! @{ */
+#define TRNG_SCR6PC_R6P_0_CT_MASK                (0x7FFU)
+#define TRNG_SCR6PC_R6P_0_CT_SHIFT               (0U)
+#define TRNG_SCR6PC_R6P_0_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PC_R6P_0_CT_SHIFT)) & TRNG_SCR6PC_R6P_0_CT_MASK)
+#define TRNG_SCR6PC_R6P_1_CT_MASK                (0x7FF0000U)
+#define TRNG_SCR6PC_R6P_1_CT_SHIFT               (16U)
+#define TRNG_SCR6PC_R6P_1_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PC_R6P_1_CT_SHIFT)) & TRNG_SCR6PC_R6P_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR6PL - Statistical Check Run Length 6+ Limit Register */
+/*! @{ */
+#define TRNG_SCR6PL_RUN6P_MAX_MASK               (0x7FFU)
+#define TRNG_SCR6PL_RUN6P_MAX_SHIFT              (0U)
+#define TRNG_SCR6PL_RUN6P_MAX(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PL_RUN6P_MAX_SHIFT)) & TRNG_SCR6PL_RUN6P_MAX_MASK)
+#define TRNG_SCR6PL_RUN6P_RNG_MASK               (0x7FF0000U)
+#define TRNG_SCR6PL_RUN6P_RNG_SHIFT              (16U)
+#define TRNG_SCR6PL_RUN6P_RNG(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PL_RUN6P_RNG_SHIFT)) & TRNG_SCR6PL_RUN6P_RNG_MASK)
+/*! @} */
+
+/*! @name STATUS - Status Register */
+/*! @{ */
+#define TRNG_STATUS_TF1BR0_MASK                  (0x1U)
+#define TRNG_STATUS_TF1BR0_SHIFT                 (0U)
+#define TRNG_STATUS_TF1BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF1BR0_SHIFT)) & TRNG_STATUS_TF1BR0_MASK)
+#define TRNG_STATUS_TF1BR1_MASK                  (0x2U)
+#define TRNG_STATUS_TF1BR1_SHIFT                 (1U)
+#define TRNG_STATUS_TF1BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF1BR1_SHIFT)) & TRNG_STATUS_TF1BR1_MASK)
+#define TRNG_STATUS_TF2BR0_MASK                  (0x4U)
+#define TRNG_STATUS_TF2BR0_SHIFT                 (2U)
+#define TRNG_STATUS_TF2BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF2BR0_SHIFT)) & TRNG_STATUS_TF2BR0_MASK)
+#define TRNG_STATUS_TF2BR1_MASK                  (0x8U)
+#define TRNG_STATUS_TF2BR1_SHIFT                 (3U)
+#define TRNG_STATUS_TF2BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF2BR1_SHIFT)) & TRNG_STATUS_TF2BR1_MASK)
+#define TRNG_STATUS_TF3BR0_MASK                  (0x10U)
+#define TRNG_STATUS_TF3BR0_SHIFT                 (4U)
+#define TRNG_STATUS_TF3BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF3BR0_SHIFT)) & TRNG_STATUS_TF3BR0_MASK)
+#define TRNG_STATUS_TF3BR1_MASK                  (0x20U)
+#define TRNG_STATUS_TF3BR1_SHIFT                 (5U)
+#define TRNG_STATUS_TF3BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF3BR1_SHIFT)) & TRNG_STATUS_TF3BR1_MASK)
+#define TRNG_STATUS_TF4BR0_MASK                  (0x40U)
+#define TRNG_STATUS_TF4BR0_SHIFT                 (6U)
+#define TRNG_STATUS_TF4BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF4BR0_SHIFT)) & TRNG_STATUS_TF4BR0_MASK)
+#define TRNG_STATUS_TF4BR1_MASK                  (0x80U)
+#define TRNG_STATUS_TF4BR1_SHIFT                 (7U)
+#define TRNG_STATUS_TF4BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF4BR1_SHIFT)) & TRNG_STATUS_TF4BR1_MASK)
+#define TRNG_STATUS_TF5BR0_MASK                  (0x100U)
+#define TRNG_STATUS_TF5BR0_SHIFT                 (8U)
+#define TRNG_STATUS_TF5BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF5BR0_SHIFT)) & TRNG_STATUS_TF5BR0_MASK)
+#define TRNG_STATUS_TF5BR1_MASK                  (0x200U)
+#define TRNG_STATUS_TF5BR1_SHIFT                 (9U)
+#define TRNG_STATUS_TF5BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF5BR1_SHIFT)) & TRNG_STATUS_TF5BR1_MASK)
+#define TRNG_STATUS_TF6PBR0_MASK                 (0x400U)
+#define TRNG_STATUS_TF6PBR0_SHIFT                (10U)
+#define TRNG_STATUS_TF6PBR0(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF6PBR0_SHIFT)) & TRNG_STATUS_TF6PBR0_MASK)
+#define TRNG_STATUS_TF6PBR1_MASK                 (0x800U)
+#define TRNG_STATUS_TF6PBR1_SHIFT                (11U)
+#define TRNG_STATUS_TF6PBR1(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF6PBR1_SHIFT)) & TRNG_STATUS_TF6PBR1_MASK)
+#define TRNG_STATUS_TFSB_MASK                    (0x1000U)
+#define TRNG_STATUS_TFSB_SHIFT                   (12U)
+#define TRNG_STATUS_TFSB(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFSB_SHIFT)) & TRNG_STATUS_TFSB_MASK)
+#define TRNG_STATUS_TFLR_MASK                    (0x2000U)
+#define TRNG_STATUS_TFLR_SHIFT                   (13U)
+#define TRNG_STATUS_TFLR(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFLR_SHIFT)) & TRNG_STATUS_TFLR_MASK)
+#define TRNG_STATUS_TFP_MASK                     (0x4000U)
+#define TRNG_STATUS_TFP_SHIFT                    (14U)
+#define TRNG_STATUS_TFP(x)                       (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFP_SHIFT)) & TRNG_STATUS_TFP_MASK)
+#define TRNG_STATUS_TFMB_MASK                    (0x8000U)
+#define TRNG_STATUS_TFMB_SHIFT                   (15U)
+#define TRNG_STATUS_TFMB(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFMB_SHIFT)) & TRNG_STATUS_TFMB_MASK)
+#define TRNG_STATUS_RETRY_CT_MASK                (0xF0000U)
+#define TRNG_STATUS_RETRY_CT_SHIFT               (16U)
+#define TRNG_STATUS_RETRY_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_RETRY_CT_SHIFT)) & TRNG_STATUS_RETRY_CT_MASK)
+/*! @} */
+
+/*! @name ENT - Entropy Read Register */
+/*! @{ */
+#define TRNG_ENT_ENT_MASK                        (0xFFFFFFFFU)
+#define TRNG_ENT_ENT_SHIFT                       (0U)
+#define TRNG_ENT_ENT(x)                          (((uint32_t)(((uint32_t)(x)) << TRNG_ENT_ENT_SHIFT)) & TRNG_ENT_ENT_MASK)
+/*! @} */
+
+/* The count of TRNG_ENT */
+#define TRNG_ENT_COUNT                           (16U)
+
+/*! @name PKRCNT10 - Statistical Check Poker Count 1 and 0 Register */
+/*! @{ */
+#define TRNG_PKRCNT10_PKR_0_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT10_PKR_0_CT_SHIFT             (0U)
+#define TRNG_PKRCNT10_PKR_0_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT10_PKR_0_CT_SHIFT)) & TRNG_PKRCNT10_PKR_0_CT_MASK)
+#define TRNG_PKRCNT10_PKR_1_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT10_PKR_1_CT_SHIFT             (16U)
+#define TRNG_PKRCNT10_PKR_1_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT10_PKR_1_CT_SHIFT)) & TRNG_PKRCNT10_PKR_1_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT32 - Statistical Check Poker Count 3 and 2 Register */
+/*! @{ */
+#define TRNG_PKRCNT32_PKR_2_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT32_PKR_2_CT_SHIFT             (0U)
+#define TRNG_PKRCNT32_PKR_2_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT32_PKR_2_CT_SHIFT)) & TRNG_PKRCNT32_PKR_2_CT_MASK)
+#define TRNG_PKRCNT32_PKR_3_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT32_PKR_3_CT_SHIFT             (16U)
+#define TRNG_PKRCNT32_PKR_3_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT32_PKR_3_CT_SHIFT)) & TRNG_PKRCNT32_PKR_3_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT54 - Statistical Check Poker Count 5 and 4 Register */
+/*! @{ */
+#define TRNG_PKRCNT54_PKR_4_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT54_PKR_4_CT_SHIFT             (0U)
+#define TRNG_PKRCNT54_PKR_4_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT54_PKR_4_CT_SHIFT)) & TRNG_PKRCNT54_PKR_4_CT_MASK)
+#define TRNG_PKRCNT54_PKR_5_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT54_PKR_5_CT_SHIFT             (16U)
+#define TRNG_PKRCNT54_PKR_5_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT54_PKR_5_CT_SHIFT)) & TRNG_PKRCNT54_PKR_5_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT76 - Statistical Check Poker Count 7 and 6 Register */
+/*! @{ */
+#define TRNG_PKRCNT76_PKR_6_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT76_PKR_6_CT_SHIFT             (0U)
+#define TRNG_PKRCNT76_PKR_6_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT76_PKR_6_CT_SHIFT)) & TRNG_PKRCNT76_PKR_6_CT_MASK)
+#define TRNG_PKRCNT76_PKR_7_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT76_PKR_7_CT_SHIFT             (16U)
+#define TRNG_PKRCNT76_PKR_7_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT76_PKR_7_CT_SHIFT)) & TRNG_PKRCNT76_PKR_7_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT98 - Statistical Check Poker Count 9 and 8 Register */
+/*! @{ */
+#define TRNG_PKRCNT98_PKR_8_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT98_PKR_8_CT_SHIFT             (0U)
+#define TRNG_PKRCNT98_PKR_8_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT98_PKR_8_CT_SHIFT)) & TRNG_PKRCNT98_PKR_8_CT_MASK)
+#define TRNG_PKRCNT98_PKR_9_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT98_PKR_9_CT_SHIFT             (16U)
+#define TRNG_PKRCNT98_PKR_9_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT98_PKR_9_CT_SHIFT)) & TRNG_PKRCNT98_PKR_9_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTBA - Statistical Check Poker Count B and A Register */
+/*! @{ */
+#define TRNG_PKRCNTBA_PKR_A_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTBA_PKR_A_CT_SHIFT             (0U)
+#define TRNG_PKRCNTBA_PKR_A_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTBA_PKR_A_CT_SHIFT)) & TRNG_PKRCNTBA_PKR_A_CT_MASK)
+#define TRNG_PKRCNTBA_PKR_B_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTBA_PKR_B_CT_SHIFT             (16U)
+#define TRNG_PKRCNTBA_PKR_B_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTBA_PKR_B_CT_SHIFT)) & TRNG_PKRCNTBA_PKR_B_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTDC - Statistical Check Poker Count D and C Register */
+/*! @{ */
+#define TRNG_PKRCNTDC_PKR_C_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTDC_PKR_C_CT_SHIFT             (0U)
+#define TRNG_PKRCNTDC_PKR_C_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTDC_PKR_C_CT_SHIFT)) & TRNG_PKRCNTDC_PKR_C_CT_MASK)
+#define TRNG_PKRCNTDC_PKR_D_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTDC_PKR_D_CT_SHIFT             (16U)
+#define TRNG_PKRCNTDC_PKR_D_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTDC_PKR_D_CT_SHIFT)) & TRNG_PKRCNTDC_PKR_D_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTFE - Statistical Check Poker Count F and E Register */
+/*! @{ */
+#define TRNG_PKRCNTFE_PKR_E_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTFE_PKR_E_CT_SHIFT             (0U)
+#define TRNG_PKRCNTFE_PKR_E_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTFE_PKR_E_CT_SHIFT)) & TRNG_PKRCNTFE_PKR_E_CT_MASK)
+#define TRNG_PKRCNTFE_PKR_F_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTFE_PKR_F_CT_SHIFT             (16U)
+#define TRNG_PKRCNTFE_PKR_F_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTFE_PKR_F_CT_SHIFT)) & TRNG_PKRCNTFE_PKR_F_CT_MASK)
+/*! @} */
+
+/*! @name SEC_CFG - Security Configuration Register */
+/*! @{ */
+#define TRNG_SEC_CFG_UNUSED0_MASK                (0x1U)
+#define TRNG_SEC_CFG_UNUSED0_SHIFT               (0U)
+#define TRNG_SEC_CFG_UNUSED0(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_UNUSED0_SHIFT)) & TRNG_SEC_CFG_UNUSED0_MASK)
+#define TRNG_SEC_CFG_NO_PRGM_MASK                (0x2U)
+#define TRNG_SEC_CFG_NO_PRGM_SHIFT               (1U)
+/*! NO_PRGM
+ *  0b0..Programability of registers controlled only by the Miscellaneous Control Register's access mode bit.
+ *  0b1..Overides Miscellaneous Control Register access mode and prevents TRNG register programming.
+ */
+#define TRNG_SEC_CFG_NO_PRGM(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_NO_PRGM_SHIFT)) & TRNG_SEC_CFG_NO_PRGM_MASK)
+#define TRNG_SEC_CFG_UNUSED2_MASK                (0x4U)
+#define TRNG_SEC_CFG_UNUSED2_SHIFT               (2U)
+#define TRNG_SEC_CFG_UNUSED2(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_UNUSED2_SHIFT)) & TRNG_SEC_CFG_UNUSED2_MASK)
+/*! @} */
+
+/*! @name INT_CTRL - Interrupt Control Register */
+/*! @{ */
+#define TRNG_INT_CTRL_HW_ERR_MASK                (0x1U)
+#define TRNG_INT_CTRL_HW_ERR_SHIFT               (0U)
+/*! HW_ERR
+ *  0b0..Corresponding bit of INT_STATUS register cleared.
+ *  0b1..Corresponding bit of INT_STATUS register active.
+ */
+#define TRNG_INT_CTRL_HW_ERR(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_HW_ERR_SHIFT)) & TRNG_INT_CTRL_HW_ERR_MASK)
+#define TRNG_INT_CTRL_ENT_VAL_MASK               (0x2U)
+#define TRNG_INT_CTRL_ENT_VAL_SHIFT              (1U)
+/*! ENT_VAL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_CTRL_ENT_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_ENT_VAL_SHIFT)) & TRNG_INT_CTRL_ENT_VAL_MASK)
+#define TRNG_INT_CTRL_FRQ_CT_FAIL_MASK           (0x4U)
+#define TRNG_INT_CTRL_FRQ_CT_FAIL_SHIFT          (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_CTRL_FRQ_CT_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_CTRL_FRQ_CT_FAIL_MASK)
+#define TRNG_INT_CTRL_UNUSED_MASK                (0xFFFFFFF8U)
+#define TRNG_INT_CTRL_UNUSED_SHIFT               (3U)
+#define TRNG_INT_CTRL_UNUSED(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_UNUSED_SHIFT)) & TRNG_INT_CTRL_UNUSED_MASK)
+/*! @} */
+
+/*! @name INT_MASK - Mask Register */
+/*! @{ */
+#define TRNG_INT_MASK_HW_ERR_MASK                (0x1U)
+#define TRNG_INT_MASK_HW_ERR_SHIFT               (0U)
+/*! HW_ERR
+ *  0b0..Corresponding interrupt of INT_STATUS is masked.
+ *  0b1..Corresponding bit of INT_STATUS is active.
+ */
+#define TRNG_INT_MASK_HW_ERR(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_HW_ERR_SHIFT)) & TRNG_INT_MASK_HW_ERR_MASK)
+#define TRNG_INT_MASK_ENT_VAL_MASK               (0x2U)
+#define TRNG_INT_MASK_ENT_VAL_SHIFT              (1U)
+/*! ENT_VAL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_MASK_ENT_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_ENT_VAL_SHIFT)) & TRNG_INT_MASK_ENT_VAL_MASK)
+#define TRNG_INT_MASK_FRQ_CT_FAIL_MASK           (0x4U)
+#define TRNG_INT_MASK_FRQ_CT_FAIL_SHIFT          (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_MASK_FRQ_CT_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_MASK_FRQ_CT_FAIL_MASK)
+/*! @} */
+
+/*! @name INT_STATUS - Interrupt Status Register */
+/*! @{ */
+#define TRNG_INT_STATUS_HW_ERR_MASK              (0x1U)
+#define TRNG_INT_STATUS_HW_ERR_SHIFT             (0U)
+/*! HW_ERR
+ *  0b0..no error
+ *  0b1..error detected.
+ */
+#define TRNG_INT_STATUS_HW_ERR(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_HW_ERR_SHIFT)) & TRNG_INT_STATUS_HW_ERR_MASK)
+#define TRNG_INT_STATUS_ENT_VAL_MASK             (0x2U)
+#define TRNG_INT_STATUS_ENT_VAL_SHIFT            (1U)
+/*! ENT_VAL
+ *  0b0..Busy generation entropy. Any value read is invalid.
+ *  0b1..TRNG can be stopped and entropy is valid if read.
+ */
+#define TRNG_INT_STATUS_ENT_VAL(x)               (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_ENT_VAL_SHIFT)) & TRNG_INT_STATUS_ENT_VAL_MASK)
+#define TRNG_INT_STATUS_FRQ_CT_FAIL_MASK         (0x4U)
+#define TRNG_INT_STATUS_FRQ_CT_FAIL_SHIFT        (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..No hardware nor self test frequency errors.
+ *  0b1..The frequency counter has detected a failure.
+ */
+#define TRNG_INT_STATUS_FRQ_CT_FAIL(x)           (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_STATUS_FRQ_CT_FAIL_MASK)
+/*! @} */
+
+/*! @name VID1 - Version ID Register (MS) */
+/*! @{ */
+#define TRNG_VID1_MIN_REV_MASK                   (0xFFU)
+#define TRNG_VID1_MIN_REV_SHIFT                  (0U)
+/*! MIN_REV
+ *  0b00000000..Minor revision number for TRNG.
+ */
+#define TRNG_VID1_MIN_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_MIN_REV_SHIFT)) & TRNG_VID1_MIN_REV_MASK)
+#define TRNG_VID1_MAJ_REV_MASK                   (0xFF00U)
+#define TRNG_VID1_MAJ_REV_SHIFT                  (8U)
+/*! MAJ_REV
+ *  0b00000001..Major revision number for TRNG.
+ */
+#define TRNG_VID1_MAJ_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_MAJ_REV_SHIFT)) & TRNG_VID1_MAJ_REV_MASK)
+#define TRNG_VID1_IP_ID_MASK                     (0xFFFF0000U)
+#define TRNG_VID1_IP_ID_SHIFT                    (16U)
+/*! IP_ID
+ *  0b0000000000110000..ID for TRNG.
+ */
+#define TRNG_VID1_IP_ID(x)                       (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_IP_ID_SHIFT)) & TRNG_VID1_IP_ID_MASK)
+/*! @} */
+
+/*! @name VID2 - Version ID Register (LS) */
+/*! @{ */
+#define TRNG_VID2_CONFIG_OPT_MASK                (0xFFU)
+#define TRNG_VID2_CONFIG_OPT_SHIFT               (0U)
+/*! CONFIG_OPT
+ *  0b00000000..TRNG_CONFIG_OPT for TRNG.
+ */
+#define TRNG_VID2_CONFIG_OPT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_CONFIG_OPT_SHIFT)) & TRNG_VID2_CONFIG_OPT_MASK)
+#define TRNG_VID2_ECO_REV_MASK                   (0xFF00U)
+#define TRNG_VID2_ECO_REV_SHIFT                  (8U)
+/*! ECO_REV
+ *  0b00000000..TRNG_ECO_REV for TRNG.
+ */
+#define TRNG_VID2_ECO_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_ECO_REV_SHIFT)) & TRNG_VID2_ECO_REV_MASK)
+#define TRNG_VID2_INTG_OPT_MASK                  (0xFF0000U)
+#define TRNG_VID2_INTG_OPT_SHIFT                 (16U)
+/*! INTG_OPT
+ *  0b00000000..INTG_OPT for TRNG.
+ */
+#define TRNG_VID2_INTG_OPT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_INTG_OPT_SHIFT)) & TRNG_VID2_INTG_OPT_MASK)
+#define TRNG_VID2_ERA_MASK                       (0xFF000000U)
+#define TRNG_VID2_ERA_SHIFT                      (24U)
+/*! ERA
+ *  0b00000000..COMPILE_OPT for TRNG.
+ */
+#define TRNG_VID2_ERA(x)                         (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_ERA_SHIFT)) & TRNG_VID2_ERA_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TRNG_Register_Masks */
+
+
+/* TRNG - Peripheral instance base addresses */
+/** Peripheral TRNG base address */
+#define TRNG_BASE                                (0x41029000u)
+/** Peripheral TRNG base pointer */
+#define TRNG                                     ((TRNG_Type *)TRNG_BASE)
+/** Array initializer of TRNG peripheral base addresses */
+#define TRNG_BASE_ADDRS                          { TRNG_BASE }
+/** Array initializer of TRNG peripheral base pointers */
+#define TRNG_BASE_PTRS                           { TRNG }
+/** Interrupt vectors for the TRNG peripheral type */
+#define TRNG_IRQS                                { TRNG_IRQn }
+/** Backward compatibility macros */
+#define TRNG0                                    TRNG
+
+
+/*!
+ * @}
+ */ /* end of group TRNG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TSTMR Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TSTMR_Peripheral_Access_Layer TSTMR Peripheral Access Layer
+ * @{
+ */
+
+/** TSTMR - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t L;                                 /**< Time Stamp Timer Register Low, offset: 0x0 */
+  __I  uint32_t H;                                 /**< Time Stamp Timer Register High, offset: 0x4 */
+} TSTMR_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TSTMR Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TSTMR_Register_Masks TSTMR Register Masks
+ * @{
+ */
+
+/*! @name L - Time Stamp Timer Register Low */
+/*! @{ */
+#define TSTMR_L_VALUE_MASK                       (0xFFFFFFFFU)
+#define TSTMR_L_VALUE_SHIFT                      (0U)
+#define TSTMR_L_VALUE(x)                         (((uint32_t)(((uint32_t)(x)) << TSTMR_L_VALUE_SHIFT)) & TSTMR_L_VALUE_MASK)
+/*! @} */
+
+/*! @name H - Time Stamp Timer Register High */
+/*! @{ */
+#define TSTMR_H_VALUE_MASK                       (0xFFFFFFU)
+#define TSTMR_H_VALUE_SHIFT                      (0U)
+#define TSTMR_H_VALUE(x)                         (((uint32_t)(((uint32_t)(x)) << TSTMR_H_VALUE_SHIFT)) & TSTMR_H_VALUE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TSTMR_Register_Masks */
+
+
+/* TSTMR - Peripheral instance base addresses */
+/** Peripheral TSTMRA base address */
+#define TSTMRA_BASE                              (0x40034000u)
+/** Peripheral TSTMRA base pointer */
+#define TSTMRA                                   ((TSTMR_Type *)TSTMRA_BASE)
+/** Array initializer of TSTMR peripheral base addresses */
+#define TSTMR_BASE_ADDRS                         { TSTMRA_BASE }
+/** Array initializer of TSTMR peripheral base pointers */
+#define TSTMR_BASE_PTRS                          { TSTMRA }
+
+/*!
+ * @}
+ */ /* end of group TSTMR_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USB Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USB_Peripheral_Access_Layer USB Peripheral Access Layer
+ * @{
+ */
+
+/** USB - Register Layout Typedef */
+typedef struct {
+  __I  uint8_t PERID;                              /**< Peripheral ID register, offset: 0x0 */
+       uint8_t RESERVED_0[3];
+  __I  uint8_t IDCOMP;                             /**< Peripheral ID Complement register, offset: 0x4 */
+       uint8_t RESERVED_1[3];
+  __I  uint8_t REV;                                /**< Peripheral Revision register, offset: 0x8 */
+       uint8_t RESERVED_2[3];
+  __I  uint8_t ADDINFO;                            /**< Peripheral Additional Info register, offset: 0xC */
+       uint8_t RESERVED_3[15];
+  __IO uint8_t OTGCTL;                             /**< OTG Control register, offset: 0x1C */
+       uint8_t RESERVED_4[99];
+  __IO uint8_t ISTAT;                              /**< Interrupt Status register, offset: 0x80 */
+       uint8_t RESERVED_5[3];
+  __IO uint8_t INTEN;                              /**< Interrupt Enable register, offset: 0x84 */
+       uint8_t RESERVED_6[3];
+  __IO uint8_t ERRSTAT;                            /**< Error Interrupt Status register, offset: 0x88 */
+       uint8_t RESERVED_7[3];
+  __IO uint8_t ERREN;                              /**< Error Interrupt Enable register, offset: 0x8C */
+       uint8_t RESERVED_8[3];
+  __I  uint8_t STAT;                               /**< Status register, offset: 0x90 */
+       uint8_t RESERVED_9[3];
+  __IO uint8_t CTL;                                /**< Control register, offset: 0x94 */
+       uint8_t RESERVED_10[3];
+  __IO uint8_t ADDR;                               /**< Address register, offset: 0x98 */
+       uint8_t RESERVED_11[3];
+  __IO uint8_t BDTPAGE1;                           /**< BDT Page register 1, offset: 0x9C */
+       uint8_t RESERVED_12[3];
+  __IO uint8_t FRMNUML;                            /**< Frame Number register Low, offset: 0xA0 */
+       uint8_t RESERVED_13[3];
+  __IO uint8_t FRMNUMH;                            /**< Frame Number register High, offset: 0xA4 */
+       uint8_t RESERVED_14[11];
+  __IO uint8_t BDTPAGE2;                           /**< BDT Page Register 2, offset: 0xB0 */
+       uint8_t RESERVED_15[3];
+  __IO uint8_t BDTPAGE3;                           /**< BDT Page Register 3, offset: 0xB4 */
+       uint8_t RESERVED_16[11];
+  struct {                                         /* offset: 0xC0, array step: 0x4 */
+    __IO uint8_t ENDPT;                              /**< Endpoint Control register, array offset: 0xC0, array step: 0x4 */
+         uint8_t RESERVED_0[3];
+  } ENDPOINT[16];
+  __IO uint8_t USBCTRL;                            /**< USB Control register, offset: 0x100 */
+       uint8_t RESERVED_17[3];
+  __I  uint8_t OBSERVE;                            /**< USB OTG Observe register, offset: 0x104 */
+       uint8_t RESERVED_18[3];
+  __IO uint8_t CONTROL;                            /**< USB OTG Control register, offset: 0x108 */
+       uint8_t RESERVED_19[3];
+  __IO uint8_t USBTRC0;                            /**< USB Transceiver Control register 0, offset: 0x10C */
+       uint8_t RESERVED_20[23];
+  __IO uint8_t KEEP_ALIVE_CTRL;                    /**< Keep Alive mode control, offset: 0x124 */
+       uint8_t RESERVED_21[3];
+  __IO uint8_t KEEP_ALIVE_WKCTRL;                  /**< Keep Alive mode wakeup control, offset: 0x128 */
+       uint8_t RESERVED_22[3];
+  __IO uint8_t MISCCTRL;                           /**< Miscellaneous Control register, offset: 0x12C */
+       uint8_t RESERVED_23[3];
+  __IO uint8_t STALL_IL_DIS;                       /**< Peripheral mode stall disable for endpoints 7 to 0 in IN direction, offset: 0x130 */
+       uint8_t RESERVED_24[3];
+  __IO uint8_t STALL_IH_DIS;                       /**< Peripheral mode stall disable for endpoints 15 to 8 in IN direction, offset: 0x134 */
+       uint8_t RESERVED_25[3];
+  __IO uint8_t STALL_OL_DIS;                       /**< Peripheral mode stall disable for endpoints 7 to 0 in OUT direction, offset: 0x138 */
+       uint8_t RESERVED_26[3];
+  __IO uint8_t STALL_OH_DIS;                       /**< Peripheral mode stall disable for endpoints 15 to 8 in OUT direction, offset: 0x13C */
+       uint8_t RESERVED_27[3];
+  __IO uint8_t CLK_RECOVER_CTRL;                   /**< USB Clock recovery control, offset: 0x140 */
+       uint8_t RESERVED_28[3];
+  __IO uint8_t CLK_RECOVER_IRC_EN;                 /**< IRC48MFIRC oscillator enable register, offset: 0x144 */
+       uint8_t RESERVED_29[15];
+  __IO uint8_t CLK_RECOVER_INT_EN;                 /**< Clock recovery combined interrupt enable, offset: 0x154 */
+       uint8_t RESERVED_30[7];
+  __IO uint8_t CLK_RECOVER_INT_STATUS;             /**< Clock recovery separated interrupt status, offset: 0x15C */
+} USB_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USB Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USB_Register_Masks USB Register Masks
+ * @{
+ */
+
+/*! @name PERID - Peripheral ID register */
+/*! @{ */
+#define USB_PERID_ID_MASK                        (0x3FU)
+#define USB_PERID_ID_SHIFT                       (0U)
+#define USB_PERID_ID(x)                          (((uint8_t)(((uint8_t)(x)) << USB_PERID_ID_SHIFT)) & USB_PERID_ID_MASK)
+/*! @} */
+
+/*! @name IDCOMP - Peripheral ID Complement register */
+/*! @{ */
+#define USB_IDCOMP_NID_MASK                      (0x3FU)
+#define USB_IDCOMP_NID_SHIFT                     (0U)
+#define USB_IDCOMP_NID(x)                        (((uint8_t)(((uint8_t)(x)) << USB_IDCOMP_NID_SHIFT)) & USB_IDCOMP_NID_MASK)
+/*! @} */
+
+/*! @name REV - Peripheral Revision register */
+/*! @{ */
+#define USB_REV_REV_MASK                         (0xFFU)
+#define USB_REV_REV_SHIFT                        (0U)
+#define USB_REV_REV(x)                           (((uint8_t)(((uint8_t)(x)) << USB_REV_REV_SHIFT)) & USB_REV_REV_MASK)
+/*! @} */
+
+/*! @name ADDINFO - Peripheral Additional Info register */
+/*! @{ */
+#define USB_ADDINFO_IEHOST_MASK                  (0x1U)
+#define USB_ADDINFO_IEHOST_SHIFT                 (0U)
+#define USB_ADDINFO_IEHOST(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ADDINFO_IEHOST_SHIFT)) & USB_ADDINFO_IEHOST_MASK)
+/*! @} */
+
+/*! @name OTGCTL - OTG Control register */
+/*! @{ */
+#define USB_OTGCTL_DPHIGH_MASK                   (0x80U)
+#define USB_OTGCTL_DPHIGH_SHIFT                  (7U)
+/*! DPHIGH - D+ Data Line pullup resistor enable
+ *  0b0..D+ pullup resistor is not enabled
+ *  0b1..D+ pullup resistor is enabled
+ */
+#define USB_OTGCTL_DPHIGH(x)                     (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_DPHIGH_SHIFT)) & USB_OTGCTL_DPHIGH_MASK)
+/*! @} */
+
+/*! @name ISTAT - Interrupt Status register */
+/*! @{ */
+#define USB_ISTAT_USBRST_MASK                    (0x1U)
+#define USB_ISTAT_USBRST_SHIFT                   (0U)
+#define USB_ISTAT_USBRST(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_USBRST_SHIFT)) & USB_ISTAT_USBRST_MASK)
+#define USB_ISTAT_ERROR_MASK                     (0x2U)
+#define USB_ISTAT_ERROR_SHIFT                    (1U)
+#define USB_ISTAT_ERROR(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_ERROR_SHIFT)) & USB_ISTAT_ERROR_MASK)
+#define USB_ISTAT_SOFTOK_MASK                    (0x4U)
+#define USB_ISTAT_SOFTOK_SHIFT                   (2U)
+#define USB_ISTAT_SOFTOK(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SOFTOK_SHIFT)) & USB_ISTAT_SOFTOK_MASK)
+#define USB_ISTAT_TOKDNE_MASK                    (0x8U)
+#define USB_ISTAT_TOKDNE_SHIFT                   (3U)
+#define USB_ISTAT_TOKDNE(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_TOKDNE_SHIFT)) & USB_ISTAT_TOKDNE_MASK)
+#define USB_ISTAT_SLEEP_MASK                     (0x10U)
+#define USB_ISTAT_SLEEP_SHIFT                    (4U)
+#define USB_ISTAT_SLEEP(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SLEEP_SHIFT)) & USB_ISTAT_SLEEP_MASK)
+#define USB_ISTAT_RESUME_MASK                    (0x20U)
+#define USB_ISTAT_RESUME_SHIFT                   (5U)
+#define USB_ISTAT_RESUME(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_RESUME_SHIFT)) & USB_ISTAT_RESUME_MASK)
+#define USB_ISTAT_STALL_MASK                     (0x80U)
+#define USB_ISTAT_STALL_SHIFT                    (7U)
+#define USB_ISTAT_STALL(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_STALL_SHIFT)) & USB_ISTAT_STALL_MASK)
+/*! @} */
+
+/*! @name INTEN - Interrupt Enable register */
+/*! @{ */
+#define USB_INTEN_USBRSTEN_MASK                  (0x1U)
+#define USB_INTEN_USBRSTEN_SHIFT                 (0U)
+/*! USBRSTEN - USBRST Interrupt Enable
+ *  0b0..Disables the USBRST interrupt.
+ *  0b1..Enables the USBRST interrupt.
+ */
+#define USB_INTEN_USBRSTEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_USBRSTEN_SHIFT)) & USB_INTEN_USBRSTEN_MASK)
+#define USB_INTEN_ERROREN_MASK                   (0x2U)
+#define USB_INTEN_ERROREN_SHIFT                  (1U)
+/*! ERROREN - ERROR Interrupt Enable
+ *  0b0..Disables the ERROR interrupt.
+ *  0b1..Enables the ERROR interrupt.
+ */
+#define USB_INTEN_ERROREN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_ERROREN_SHIFT)) & USB_INTEN_ERROREN_MASK)
+#define USB_INTEN_SOFTOKEN_MASK                  (0x4U)
+#define USB_INTEN_SOFTOKEN_SHIFT                 (2U)
+/*! SOFTOKEN - SOFTOK Interrupt Enable
+ *  0b0..Disbles the SOFTOK interrupt.
+ *  0b1..Enables the SOFTOK interrupt.
+ */
+#define USB_INTEN_SOFTOKEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SOFTOKEN_SHIFT)) & USB_INTEN_SOFTOKEN_MASK)
+#define USB_INTEN_TOKDNEEN_MASK                  (0x8U)
+#define USB_INTEN_TOKDNEEN_SHIFT                 (3U)
+/*! TOKDNEEN - TOKDNE Interrupt Enable
+ *  0b0..Disables the TOKDNE interrupt.
+ *  0b1..Enables the TOKDNE interrupt.
+ */
+#define USB_INTEN_TOKDNEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_TOKDNEEN_SHIFT)) & USB_INTEN_TOKDNEEN_MASK)
+#define USB_INTEN_SLEEPEN_MASK                   (0x10U)
+#define USB_INTEN_SLEEPEN_SHIFT                  (4U)
+/*! SLEEPEN - SLEEP Interrupt Enable
+ *  0b0..Disables the SLEEP interrupt.
+ *  0b1..Enables the SLEEP interrupt.
+ */
+#define USB_INTEN_SLEEPEN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SLEEPEN_SHIFT)) & USB_INTEN_SLEEPEN_MASK)
+#define USB_INTEN_RESUMEEN_MASK                  (0x20U)
+#define USB_INTEN_RESUMEEN_SHIFT                 (5U)
+/*! RESUMEEN - RESUME Interrupt Enable
+ *  0b0..Disables the RESUME interrupt.
+ *  0b1..Enables the RESUME interrupt.
+ */
+#define USB_INTEN_RESUMEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_RESUMEEN_SHIFT)) & USB_INTEN_RESUMEEN_MASK)
+#define USB_INTEN_STALLEN_MASK                   (0x80U)
+#define USB_INTEN_STALLEN_SHIFT                  (7U)
+/*! STALLEN - STALL Interrupt Enable
+ *  0b0..Diasbles the STALL interrupt.
+ *  0b1..Enables the STALL interrupt.
+ */
+#define USB_INTEN_STALLEN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_STALLEN_SHIFT)) & USB_INTEN_STALLEN_MASK)
+/*! @} */
+
+/*! @name ERRSTAT - Error Interrupt Status register */
+/*! @{ */
+#define USB_ERRSTAT_PIDERR_MASK                  (0x1U)
+#define USB_ERRSTAT_PIDERR_SHIFT                 (0U)
+#define USB_ERRSTAT_PIDERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_PIDERR_SHIFT)) & USB_ERRSTAT_PIDERR_MASK)
+#define USB_ERRSTAT_CRC5EOF_MASK                 (0x2U)
+#define USB_ERRSTAT_CRC5EOF_SHIFT                (1U)
+#define USB_ERRSTAT_CRC5EOF(x)                   (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC5EOF_SHIFT)) & USB_ERRSTAT_CRC5EOF_MASK)
+#define USB_ERRSTAT_CRC16_MASK                   (0x4U)
+#define USB_ERRSTAT_CRC16_SHIFT                  (2U)
+#define USB_ERRSTAT_CRC16(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC16_SHIFT)) & USB_ERRSTAT_CRC16_MASK)
+#define USB_ERRSTAT_DFN8_MASK                    (0x8U)
+#define USB_ERRSTAT_DFN8_SHIFT                   (3U)
+#define USB_ERRSTAT_DFN8(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DFN8_SHIFT)) & USB_ERRSTAT_DFN8_MASK)
+#define USB_ERRSTAT_BTOERR_MASK                  (0x10U)
+#define USB_ERRSTAT_BTOERR_SHIFT                 (4U)
+#define USB_ERRSTAT_BTOERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTOERR_SHIFT)) & USB_ERRSTAT_BTOERR_MASK)
+#define USB_ERRSTAT_DMAERR_MASK                  (0x20U)
+#define USB_ERRSTAT_DMAERR_SHIFT                 (5U)
+#define USB_ERRSTAT_DMAERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DMAERR_SHIFT)) & USB_ERRSTAT_DMAERR_MASK)
+#define USB_ERRSTAT_OWNERR_MASK                  (0x40U)
+#define USB_ERRSTAT_OWNERR_SHIFT                 (6U)
+#define USB_ERRSTAT_OWNERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_OWNERR_SHIFT)) & USB_ERRSTAT_OWNERR_MASK)
+#define USB_ERRSTAT_BTSERR_MASK                  (0x80U)
+#define USB_ERRSTAT_BTSERR_SHIFT                 (7U)
+#define USB_ERRSTAT_BTSERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTSERR_SHIFT)) & USB_ERRSTAT_BTSERR_MASK)
+/*! @} */
+
+/*! @name ERREN - Error Interrupt Enable register */
+/*! @{ */
+#define USB_ERREN_PIDERREN_MASK                  (0x1U)
+#define USB_ERREN_PIDERREN_SHIFT                 (0U)
+/*! PIDERREN - PIDERR Interrupt Enable
+ *  0b0..Disables the PIDERR interrupt.
+ *  0b1..Enters the PIDERR interrupt.
+ */
+#define USB_ERREN_PIDERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_PIDERREN_SHIFT)) & USB_ERREN_PIDERREN_MASK)
+#define USB_ERREN_CRC5EOFEN_MASK                 (0x2U)
+#define USB_ERREN_CRC5EOFEN_SHIFT                (1U)
+/*! CRC5EOFEN - CRC5/EOF Interrupt Enable
+ *  0b0..Disables the CRC5/EOF interrupt.
+ *  0b1..Enables the CRC5/EOF interrupt.
+ */
+#define USB_ERREN_CRC5EOFEN(x)                   (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC5EOFEN_SHIFT)) & USB_ERREN_CRC5EOFEN_MASK)
+#define USB_ERREN_CRC16EN_MASK                   (0x4U)
+#define USB_ERREN_CRC16EN_SHIFT                  (2U)
+/*! CRC16EN - CRC16 Interrupt Enable
+ *  0b0..Disables the CRC16 interrupt.
+ *  0b1..Enables the CRC16 interrupt.
+ */
+#define USB_ERREN_CRC16EN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC16EN_SHIFT)) & USB_ERREN_CRC16EN_MASK)
+#define USB_ERREN_DFN8EN_MASK                    (0x8U)
+#define USB_ERREN_DFN8EN_SHIFT                   (3U)
+/*! DFN8EN - DFN8 Interrupt Enable
+ *  0b0..Disables the DFN8 interrupt.
+ *  0b1..Enables the DFN8 interrupt.
+ */
+#define USB_ERREN_DFN8EN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DFN8EN_SHIFT)) & USB_ERREN_DFN8EN_MASK)
+#define USB_ERREN_BTOERREN_MASK                  (0x10U)
+#define USB_ERREN_BTOERREN_SHIFT                 (4U)
+/*! BTOERREN - BTOERR Interrupt Enable
+ *  0b0..Disables the BTOERR interrupt.
+ *  0b1..Enables the BTOERR interrupt.
+ */
+#define USB_ERREN_BTOERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTOERREN_SHIFT)) & USB_ERREN_BTOERREN_MASK)
+#define USB_ERREN_DMAERREN_MASK                  (0x20U)
+#define USB_ERREN_DMAERREN_SHIFT                 (5U)
+/*! DMAERREN - DMAERR Interrupt Enable
+ *  0b0..Disables the DMAERR interrupt.
+ *  0b1..Enables the DMAERR interrupt.
+ */
+#define USB_ERREN_DMAERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DMAERREN_SHIFT)) & USB_ERREN_DMAERREN_MASK)
+#define USB_ERREN_OWNERREN_MASK                  (0x40U)
+#define USB_ERREN_OWNERREN_SHIFT                 (6U)
+/*! OWNERREN - OWNERR Interrupt Enable
+ *  0b0..Disables the OWNERR interrupt.
+ *  0b1..Enables the OWNERR interrupt.
+ */
+#define USB_ERREN_OWNERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_OWNERREN_SHIFT)) & USB_ERREN_OWNERREN_MASK)
+#define USB_ERREN_BTSERREN_MASK                  (0x80U)
+#define USB_ERREN_BTSERREN_SHIFT                 (7U)
+/*! BTSERREN - BTSERR Interrupt Enable
+ *  0b0..Disables the BTSERR interrupt.
+ *  0b1..Enables the BTSERR interrupt.
+ */
+#define USB_ERREN_BTSERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTSERREN_SHIFT)) & USB_ERREN_BTSERREN_MASK)
+/*! @} */
+
+/*! @name STAT - Status register */
+/*! @{ */
+#define USB_STAT_ODD_MASK                        (0x4U)
+#define USB_STAT_ODD_SHIFT                       (2U)
+#define USB_STAT_ODD(x)                          (((uint8_t)(((uint8_t)(x)) << USB_STAT_ODD_SHIFT)) & USB_STAT_ODD_MASK)
+#define USB_STAT_TX_MASK                         (0x8U)
+#define USB_STAT_TX_SHIFT                        (3U)
+/*! TX - Transmit Indicator
+ *  0b0..The most recent transaction was a receive operation.
+ *  0b1..The most recent transaction was a transmit operation.
+ */
+#define USB_STAT_TX(x)                           (((uint8_t)(((uint8_t)(x)) << USB_STAT_TX_SHIFT)) & USB_STAT_TX_MASK)
+#define USB_STAT_ENDP_MASK                       (0xF0U)
+#define USB_STAT_ENDP_SHIFT                      (4U)
+#define USB_STAT_ENDP(x)                         (((uint8_t)(((uint8_t)(x)) << USB_STAT_ENDP_SHIFT)) & USB_STAT_ENDP_MASK)
+/*! @} */
+
+/*! @name CTL - Control register */
+/*! @{ */
+#define USB_CTL_USBENSOFEN_MASK                  (0x1U)
+#define USB_CTL_USBENSOFEN_SHIFT                 (0U)
+/*! USBENSOFEN - USB Enable
+ *  0b0..Disables the USB Module.
+ *  0b1..Enables the USB Module.
+ */
+#define USB_CTL_USBENSOFEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_CTL_USBENSOFEN_SHIFT)) & USB_CTL_USBENSOFEN_MASK)
+#define USB_CTL_ODDRST_MASK                      (0x2U)
+#define USB_CTL_ODDRST_SHIFT                     (1U)
+#define USB_CTL_ODDRST(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_ODDRST_SHIFT)) & USB_CTL_ODDRST_MASK)
+#define USB_CTL_RESUME_MASK                      (0x4U)
+#define USB_CTL_RESUME_SHIFT                     (2U)
+#define USB_CTL_RESUME(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_RESUME_SHIFT)) & USB_CTL_RESUME_MASK)
+#define USB_CTL_HOSTMODEEN_MASK                  (0x8U)
+#define USB_CTL_HOSTMODEEN_SHIFT                 (3U)
+/*! HOSTMODEEN - Host mode enable
+ *  0b0..USB Module operates in Device mode.
+ *  0b1..USB Module operates in Host mode. In Host mode, the USB module performs USB transactions under the programmed control of the host processor.
+ */
+#define USB_CTL_HOSTMODEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_CTL_HOSTMODEEN_SHIFT)) & USB_CTL_HOSTMODEEN_MASK)
+#define USB_CTL_TXSUSPENDTOKENBUSY_MASK          (0x20U)
+#define USB_CTL_TXSUSPENDTOKENBUSY_SHIFT         (5U)
+#define USB_CTL_TXSUSPENDTOKENBUSY(x)            (((uint8_t)(((uint8_t)(x)) << USB_CTL_TXSUSPENDTOKENBUSY_SHIFT)) & USB_CTL_TXSUSPENDTOKENBUSY_MASK)
+#define USB_CTL_SE0_MASK                         (0x40U)
+#define USB_CTL_SE0_SHIFT                        (6U)
+#define USB_CTL_SE0(x)                           (((uint8_t)(((uint8_t)(x)) << USB_CTL_SE0_SHIFT)) & USB_CTL_SE0_MASK)
+#define USB_CTL_JSTATE_MASK                      (0x80U)
+#define USB_CTL_JSTATE_SHIFT                     (7U)
+#define USB_CTL_JSTATE(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_JSTATE_SHIFT)) & USB_CTL_JSTATE_MASK)
+/*! @} */
+
+/*! @name ADDR - Address register */
+/*! @{ */
+#define USB_ADDR_ADDR_MASK                       (0x7FU)
+#define USB_ADDR_ADDR_SHIFT                      (0U)
+#define USB_ADDR_ADDR(x)                         (((uint8_t)(((uint8_t)(x)) << USB_ADDR_ADDR_SHIFT)) & USB_ADDR_ADDR_MASK)
+/*! @} */
+
+/*! @name BDTPAGE1 - BDT Page register 1 */
+/*! @{ */
+#define USB_BDTPAGE1_BDTBA_MASK                  (0xFEU)
+#define USB_BDTPAGE1_BDTBA_SHIFT                 (1U)
+#define USB_BDTPAGE1_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE1_BDTBA_SHIFT)) & USB_BDTPAGE1_BDTBA_MASK)
+/*! @} */
+
+/*! @name FRMNUML - Frame Number register Low */
+/*! @{ */
+#define USB_FRMNUML_FRM_MASK                     (0xFFU)
+#define USB_FRMNUML_FRM_SHIFT                    (0U)
+#define USB_FRMNUML_FRM(x)                       (((uint8_t)(((uint8_t)(x)) << USB_FRMNUML_FRM_SHIFT)) & USB_FRMNUML_FRM_MASK)
+/*! @} */
+
+/*! @name FRMNUMH - Frame Number register High */
+/*! @{ */
+#define USB_FRMNUMH_FRM_MASK                     (0x7U)
+#define USB_FRMNUMH_FRM_SHIFT                    (0U)
+#define USB_FRMNUMH_FRM(x)                       (((uint8_t)(((uint8_t)(x)) << USB_FRMNUMH_FRM_SHIFT)) & USB_FRMNUMH_FRM_MASK)
+/*! @} */
+
+/*! @name BDTPAGE2 - BDT Page Register 2 */
+/*! @{ */
+#define USB_BDTPAGE2_BDTBA_MASK                  (0xFFU)
+#define USB_BDTPAGE2_BDTBA_SHIFT                 (0U)
+#define USB_BDTPAGE2_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE2_BDTBA_SHIFT)) & USB_BDTPAGE2_BDTBA_MASK)
+/*! @} */
+
+/*! @name BDTPAGE3 - BDT Page Register 3 */
+/*! @{ */
+#define USB_BDTPAGE3_BDTBA_MASK                  (0xFFU)
+#define USB_BDTPAGE3_BDTBA_SHIFT                 (0U)
+#define USB_BDTPAGE3_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE3_BDTBA_SHIFT)) & USB_BDTPAGE3_BDTBA_MASK)
+/*! @} */
+
+/*! @name ENDPT - Endpoint Control register */
+/*! @{ */
+#define USB_ENDPT_EPHSHK_MASK                    (0x1U)
+#define USB_ENDPT_EPHSHK_SHIFT                   (0U)
+#define USB_ENDPT_EPHSHK(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPHSHK_SHIFT)) & USB_ENDPT_EPHSHK_MASK)
+#define USB_ENDPT_EPSTALL_MASK                   (0x2U)
+#define USB_ENDPT_EPSTALL_SHIFT                  (1U)
+#define USB_ENDPT_EPSTALL(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPSTALL_SHIFT)) & USB_ENDPT_EPSTALL_MASK)
+#define USB_ENDPT_EPTXEN_MASK                    (0x4U)
+#define USB_ENDPT_EPTXEN_SHIFT                   (2U)
+#define USB_ENDPT_EPTXEN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPTXEN_SHIFT)) & USB_ENDPT_EPTXEN_MASK)
+#define USB_ENDPT_EPRXEN_MASK                    (0x8U)
+#define USB_ENDPT_EPRXEN_SHIFT                   (3U)
+#define USB_ENDPT_EPRXEN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPRXEN_SHIFT)) & USB_ENDPT_EPRXEN_MASK)
+#define USB_ENDPT_EPCTLDIS_MASK                  (0x10U)
+#define USB_ENDPT_EPCTLDIS_SHIFT                 (4U)
+#define USB_ENDPT_EPCTLDIS(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPCTLDIS_SHIFT)) & USB_ENDPT_EPCTLDIS_MASK)
+/*! @} */
+
+/* The count of USB_ENDPT */
+#define USB_ENDPT_COUNT                          (16U)
+
+/*! @name USBCTRL - USB Control register */
+/*! @{ */
+#define USB_USBCTRL_UARTSEL_MASK                 (0x10U)
+#define USB_USBCTRL_UARTSEL_SHIFT                (4U)
+/*! UARTSEL - UART Select
+ *  0b0..USB signals are not used as UART signals.
+ *  0b1..USB signals are used as UART signals.
+ */
+#define USB_USBCTRL_UARTSEL(x)                   (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_UARTSEL_SHIFT)) & USB_USBCTRL_UARTSEL_MASK)
+#define USB_USBCTRL_UARTCHLS_MASK                (0x20U)
+#define USB_USBCTRL_UARTCHLS_SHIFT               (5U)
+/*! UARTCHLS - UART Signal Channel Select
+ *  0b0..USB DP/DM signals are used as UART TX/RX.
+ *  0b1..USB DP/DM signals are used as UART RX/TX.
+ */
+#define USB_USBCTRL_UARTCHLS(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_UARTCHLS_SHIFT)) & USB_USBCTRL_UARTCHLS_MASK)
+#define USB_USBCTRL_PDE_MASK                     (0x40U)
+#define USB_USBCTRL_PDE_SHIFT                    (6U)
+/*! PDE - Pulldown enable
+ *  0b0..Weak pulldowns are disabled on D+ and D-.
+ *  0b1..Weak pulldowns are enabled on D+ and D-.
+ */
+#define USB_USBCTRL_PDE(x)                       (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_PDE_SHIFT)) & USB_USBCTRL_PDE_MASK)
+#define USB_USBCTRL_SUSP_MASK                    (0x80U)
+#define USB_USBCTRL_SUSP_SHIFT                   (7U)
+/*! SUSP - Suspend
+ *  0b0..USB transceiver is not in the Suspend state.
+ *  0b1..USB transceiver is in the Suspend state.
+ */
+#define USB_USBCTRL_SUSP(x)                      (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_SUSP_SHIFT)) & USB_USBCTRL_SUSP_MASK)
+/*! @} */
+
+/*! @name OBSERVE - USB OTG Observe register */
+/*! @{ */
+#define USB_OBSERVE_DMPD_MASK                    (0x10U)
+#define USB_OBSERVE_DMPD_SHIFT                   (4U)
+/*! DMPD - DMPD
+ *  0b0..D- pulldown is disabled.
+ *  0b1..D- pulldown is enabled.
+ */
+#define USB_OBSERVE_DMPD(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DMPD_SHIFT)) & USB_OBSERVE_DMPD_MASK)
+#define USB_OBSERVE_DPPD_MASK                    (0x40U)
+#define USB_OBSERVE_DPPD_SHIFT                   (6U)
+/*! DPPD - DPPD
+ *  0b0..D+ pulldown is disabled.
+ *  0b1..D+ pulldown is enabled.
+ */
+#define USB_OBSERVE_DPPD(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPD_SHIFT)) & USB_OBSERVE_DPPD_MASK)
+#define USB_OBSERVE_DPPU_MASK                    (0x80U)
+#define USB_OBSERVE_DPPU_SHIFT                   (7U)
+/*! DPPU - DPPU
+ *  0b0..D+ pullup disabled.
+ *  0b1..D+ pullup enabled.
+ */
+#define USB_OBSERVE_DPPU(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPU_SHIFT)) & USB_OBSERVE_DPPU_MASK)
+/*! @} */
+
+/*! @name CONTROL - USB OTG Control register */
+/*! @{ */
+#define USB_CONTROL_DPPULLUPNONOTG_MASK          (0x10U)
+#define USB_CONTROL_DPPULLUPNONOTG_SHIFT         (4U)
+/*! DPPULLUPNONOTG - DPPULLUPNONOTG
+ *  0b0..DP Pullup in non-OTG Device mode is not enabled.
+ *  0b1..DP Pullup in non-OTG Device mode is enabled.
+ */
+#define USB_CONTROL_DPPULLUPNONOTG(x)            (((uint8_t)(((uint8_t)(x)) << USB_CONTROL_DPPULLUPNONOTG_SHIFT)) & USB_CONTROL_DPPULLUPNONOTG_MASK)
+/*! @} */
+
+/*! @name USBTRC0 - USB Transceiver Control register 0 */
+/*! @{ */
+#define USB_USBTRC0_USB_RESUME_INT_MASK          (0x1U)
+#define USB_USBTRC0_USB_RESUME_INT_SHIFT         (0U)
+/*! USB_RESUME_INT - USB Asynchronous Interrupt
+ *  0b0..No interrupt was generated.
+ *  0b1..Interrupt was generated because of the USB asynchronous interrupt.
+ */
+#define USB_USBTRC0_USB_RESUME_INT(x)            (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_RESUME_INT_SHIFT)) & USB_USBTRC0_USB_RESUME_INT_MASK)
+#define USB_USBTRC0_SYNC_DET_MASK                (0x2U)
+#define USB_USBTRC0_SYNC_DET_SHIFT               (1U)
+/*! SYNC_DET - Synchronous USB Interrupt Detect
+ *  0b0..Synchronous interrupt has not been detected.
+ *  0b1..Synchronous interrupt has been detected.
+ */
+#define USB_USBTRC0_SYNC_DET(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_SYNC_DET_SHIFT)) & USB_USBTRC0_SYNC_DET_MASK)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK    (0x4U)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT   (2U)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT(x)      (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT)) & USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK)
+#define USB_USBTRC0_VREDG_DET_MASK               (0x8U)
+#define USB_USBTRC0_VREDG_DET_SHIFT              (3U)
+/*! VREDG_DET - VREGIN Rising Edge Interrupt Detect
+ *  0b0..VREGIN rising edge interrupt has not been detected.
+ *  0b1..VREGIN rising edge interrupt has been detected.
+ */
+#define USB_USBTRC0_VREDG_DET(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VREDG_DET_SHIFT)) & USB_USBTRC0_VREDG_DET_MASK)
+#define USB_USBTRC0_VFEDG_DET_MASK               (0x10U)
+#define USB_USBTRC0_VFEDG_DET_SHIFT              (4U)
+/*! VFEDG_DET - VREGIN Falling Edge Interrupt Detect
+ *  0b0..VREGIN falling edge interrupt has not been detected.
+ *  0b1..VREGIN falling edge interrupt has been detected.
+ */
+#define USB_USBTRC0_VFEDG_DET(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VFEDG_DET_SHIFT)) & USB_USBTRC0_VFEDG_DET_MASK)
+#define USB_USBTRC0_USBRESMEN_MASK               (0x20U)
+#define USB_USBTRC0_USBRESMEN_SHIFT              (5U)
+/*! USBRESMEN - Asynchronous Resume Interrupt Enable
+ *  0b0..USB asynchronous wakeup from Suspend mode is disabled.
+ *  0b1..USB asynchronous wakeup from Suspend mode is enabled.
+ */
+#define USB_USBTRC0_USBRESMEN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESMEN_SHIFT)) & USB_USBTRC0_USBRESMEN_MASK)
+#define USB_USBTRC0_VREGIN_STS_MASK              (0x40U)
+#define USB_USBTRC0_VREGIN_STS_SHIFT             (6U)
+#define USB_USBTRC0_VREGIN_STS(x)                (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VREGIN_STS_SHIFT)) & USB_USBTRC0_VREGIN_STS_MASK)
+#define USB_USBTRC0_USBRESET_MASK                (0x80U)
+#define USB_USBTRC0_USBRESET_SHIFT               (7U)
+/*! USBRESET - USB Reset
+ *  0b0..Normal USB module operation.
+ *  0b1..Returns the USB module to its reset state.
+ */
+#define USB_USBTRC0_USBRESET(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESET_SHIFT)) & USB_USBTRC0_USBRESET_MASK)
+/*! @} */
+
+/*! @name KEEP_ALIVE_CTRL - Keep Alive mode control */
+/*! @{ */
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_MASK   (0x1U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_SHIFT  (0U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN(x)     (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_MASK   (0x2U)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_SHIFT  (1U)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN(x)     (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_MASK (0x4U)
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_SHIFT (2U)
+/*! STOP_ACK_DLY_EN - STOP_ACK_DLY_EN
+ *  0b0..Enter KEEP_ALIVE mode until the USB core is idle and there is no USB AHB transfer.
+ *  0b1..Enter KEEP_ALIVE mode immediately when there is no USB AHB transfer.
+ */
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN(x)   (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK     (0x8U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_SHIFT    (3U)
+/*! WAKE_REQ_EN - WAKE_REQ_EN
+ *  0b0..USB bus wakeup request is disabled
+ *  0b1..USB bus wakeup request is enabled
+ */
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN(x)       (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_MASK     (0x10U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_SHIFT    (4U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN(x)       (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_MASK  (0x40U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_SHIFT (6U)
+/*! KEEP_ALIVE_STS - Keep Alive Status
+ *  0b0..USB is not in Keep Alive mode.
+ *  0b1..USB is in Keep Alive mode.
+ */
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS(x)    (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_SHIFT)) & USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_MASK    (0x80U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_SHIFT   (7U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS(x)      (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_MASK)
+/*! @} */
+
+/*! @name KEEP_ALIVE_WKCTRL - Keep Alive mode wakeup control */
+/*! @{ */
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_MASK  (0xFU)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_SHIFT (0U)
+/*! WAKE_ON_THIS - WAKE_ON_THIS
+ *  0b0001..Wake up after receiving OUT/SETUP token packet.
+ *  0b1101..Wake up after receiving SETUP token packet. All other values are reserved.
+ */
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS(x)    (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_SHIFT)) & USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_MASK)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_MASK    (0xF0U)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_SHIFT   (4U)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT(x)      (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_SHIFT)) & USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_MASK)
+/*! @} */
+
+/*! @name MISCCTRL - Miscellaneous Control register */
+/*! @{ */
+#define USB_MISCCTRL_SOFDYNTHLD_MASK             (0x1U)
+#define USB_MISCCTRL_SOFDYNTHLD_SHIFT            (0U)
+/*! SOFDYNTHLD - Dynamic SOF Threshold Compare mode
+ *  0b0..SOF_TOK interrupt is set when byte times SOF threshold is reached.
+ *  0b1..SOF_TOK interrupt is set when 8 byte times SOF threshold is reached or overstepped.
+ */
+#define USB_MISCCTRL_SOFDYNTHLD(x)               (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_SOFDYNTHLD_SHIFT)) & USB_MISCCTRL_SOFDYNTHLD_MASK)
+#define USB_MISCCTRL_SOFBUSSET_MASK              (0x2U)
+#define USB_MISCCTRL_SOFBUSSET_SHIFT             (1U)
+/*! SOFBUSSET - SOF_TOK Interrupt Generation Mode Select
+ *  0b0..SOF_TOK interrupt is set according to SOF threshold value.
+ *  0b1..SOF_TOK interrupt is set when SOF counter reaches 0.
+ */
+#define USB_MISCCTRL_SOFBUSSET(x)                (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_SOFBUSSET_SHIFT)) & USB_MISCCTRL_SOFBUSSET_MASK)
+#define USB_MISCCTRL_OWNERRISODIS_MASK           (0x4U)
+#define USB_MISCCTRL_OWNERRISODIS_SHIFT          (2U)
+/*! OWNERRISODIS - OWN Error Detect for ISO IN / ISO OUT Disable
+ *  0b0..OWN error detect for ISO IN / ISO OUT is not disabled.
+ *  0b1..OWN error detect for ISO IN / ISO OUT is disabled.
+ */
+#define USB_MISCCTRL_OWNERRISODIS(x)             (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_OWNERRISODIS_SHIFT)) & USB_MISCCTRL_OWNERRISODIS_MASK)
+#define USB_MISCCTRL_VREDG_EN_MASK               (0x8U)
+#define USB_MISCCTRL_VREDG_EN_SHIFT              (3U)
+/*! VREDG_EN - VREGIN Rising Edge Interrupt Enable
+ *  0b0..VREGIN rising edge interrupt disabled.
+ *  0b1..VREGIN rising edge interrupt enabled.
+ */
+#define USB_MISCCTRL_VREDG_EN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_VREDG_EN_SHIFT)) & USB_MISCCTRL_VREDG_EN_MASK)
+#define USB_MISCCTRL_VFEDG_EN_MASK               (0x10U)
+#define USB_MISCCTRL_VFEDG_EN_SHIFT              (4U)
+/*! VFEDG_EN - VREGIN Falling Edge Interrupt Enable
+ *  0b0..VREGIN falling edge interrupt disabled.
+ *  0b1..VREGIN falling edge interrupt enabled.
+ */
+#define USB_MISCCTRL_VFEDG_EN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_VFEDG_EN_SHIFT)) & USB_MISCCTRL_VFEDG_EN_MASK)
+#define USB_MISCCTRL_STL_ADJ_EN_MASK             (0x80U)
+#define USB_MISCCTRL_STL_ADJ_EN_SHIFT            (7U)
+/*! STL_ADJ_EN - USB Peripheral mode Stall Adjust Enable
+ *  0b0..If USB_ENDPTn[END_STALL] = 1, both IN and OUT directions for the associated endpoint will be stalled
+ *  0b1..If USB_ENDPTn[END_STALL] = 1, the USB_STALL_xx_DIS registers control which directions for the associated endpoint will be stalled.
+ */
+#define USB_MISCCTRL_STL_ADJ_EN(x)               (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_STL_ADJ_EN_SHIFT)) & USB_MISCCTRL_STL_ADJ_EN_MASK)
+/*! @} */
+
+/*! @name STALL_IL_DIS - Peripheral mode stall disable for endpoints 7 to 0 in IN direction */
+/*! @{ */
+#define USB_STALL_IL_DIS_STALL_I_DIS0_MASK       (0x1U)
+#define USB_STALL_IL_DIS_STALL_I_DIS0_SHIFT      (0U)
+/*! STALL_I_DIS0 - STALL_I_DIS0
+ *  0b0..Endpoint 0 IN direction stall is enabled.
+ *  0b1..Endpoint 0 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS0(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS0_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS0_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS1_MASK       (0x2U)
+#define USB_STALL_IL_DIS_STALL_I_DIS1_SHIFT      (1U)
+/*! STALL_I_DIS1 - STALL_I_DIS1
+ *  0b0..Endpoint 1 IN direction stall is enabled.
+ *  0b1..Endpoint 1 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS1(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS1_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS1_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS2_MASK       (0x4U)
+#define USB_STALL_IL_DIS_STALL_I_DIS2_SHIFT      (2U)
+/*! STALL_I_DIS2 - STALL_I_DIS2
+ *  0b0..Endpoint 2 IN direction stall is enabled.
+ *  0b1..Endpoint 2 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS2(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS2_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS2_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS3_MASK       (0x8U)
+#define USB_STALL_IL_DIS_STALL_I_DIS3_SHIFT      (3U)
+/*! STALL_I_DIS3 - STALL_I_DIS3
+ *  0b0..Endpoint 3 IN direction stall is enabled.
+ *  0b1..Endpoint 3 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS3(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS3_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS3_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS4_MASK       (0x10U)
+#define USB_STALL_IL_DIS_STALL_I_DIS4_SHIFT      (4U)
+/*! STALL_I_DIS4 - STALL_I_DIS4
+ *  0b0..Endpoint 4 IN direction stall is enabled.
+ *  0b1..Endpoint 4 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS4(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS4_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS4_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS5_MASK       (0x20U)
+#define USB_STALL_IL_DIS_STALL_I_DIS5_SHIFT      (5U)
+/*! STALL_I_DIS5 - STALL_I_DIS5
+ *  0b0..Endpoint 5 IN direction stall is enabled.
+ *  0b1..Endpoint 5 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS5(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS5_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS5_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS6_MASK       (0x40U)
+#define USB_STALL_IL_DIS_STALL_I_DIS6_SHIFT      (6U)
+/*! STALL_I_DIS6 - STALL_I_DIS6
+ *  0b0..Endpoint 6 IN direction stall is enabled.
+ *  0b1..Endpoint 6 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS6(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS6_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS6_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS7_MASK       (0x80U)
+#define USB_STALL_IL_DIS_STALL_I_DIS7_SHIFT      (7U)
+/*! STALL_I_DIS7 - STALL_I_DIS7
+ *  0b0..Endpoint 7 IN direction stall is enabled.
+ *  0b1..Endpoint 7 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS7(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS7_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS7_MASK)
+/*! @} */
+
+/*! @name STALL_IH_DIS - Peripheral mode stall disable for endpoints 15 to 8 in IN direction */
+/*! @{ */
+#define USB_STALL_IH_DIS_STALL_I_DIS8_MASK       (0x1U)
+#define USB_STALL_IH_DIS_STALL_I_DIS8_SHIFT      (0U)
+/*! STALL_I_DIS8 - STALL_I_DIS8
+ *  0b0..Endpoint 8 IN direction stall is enabled.
+ *  0b1..Endpoint 8 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS8(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS8_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS8_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS9_MASK       (0x2U)
+#define USB_STALL_IH_DIS_STALL_I_DIS9_SHIFT      (1U)
+/*! STALL_I_DIS9 - STALL_I_DIS9
+ *  0b0..Endpoint 9 IN direction stall is enabled.
+ *  0b1..Endpoint 9 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS9(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS9_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS9_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS10_MASK      (0x4U)
+#define USB_STALL_IH_DIS_STALL_I_DIS10_SHIFT     (2U)
+/*! STALL_I_DIS10 - STALL_I_DIS10
+ *  0b0..Endpoint 10 IN direction stall is enabled.
+ *  0b1..Endpoint 10 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS10(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS10_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS10_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS11_MASK      (0x8U)
+#define USB_STALL_IH_DIS_STALL_I_DIS11_SHIFT     (3U)
+/*! STALL_I_DIS11 - STALL_I_DIS11
+ *  0b0..Endpoint 11 IN direction stall is enabled.
+ *  0b1..Endpoint 11 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS11(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS11_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS11_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS12_MASK      (0x10U)
+#define USB_STALL_IH_DIS_STALL_I_DIS12_SHIFT     (4U)
+/*! STALL_I_DIS12 - STALL_I_DIS12
+ *  0b0..Endpoint 12 IN direction stall is enabled.
+ *  0b1..Endpoint 12 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS12(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS12_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS12_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS13_MASK      (0x20U)
+#define USB_STALL_IH_DIS_STALL_I_DIS13_SHIFT     (5U)
+/*! STALL_I_DIS13 - STALL_I_DIS13
+ *  0b0..Endpoint 13 IN direction stall is enabled.
+ *  0b1..Endpoint 13 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS13(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS13_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS13_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS14_MASK      (0x40U)
+#define USB_STALL_IH_DIS_STALL_I_DIS14_SHIFT     (6U)
+/*! STALL_I_DIS14 - STALL_I_DIS14
+ *  0b0..Endpoint 14 IN direction stall is enabled.
+ *  0b1..Endpoint 14 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS14(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS14_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS14_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS15_MASK      (0x80U)
+#define USB_STALL_IH_DIS_STALL_I_DIS15_SHIFT     (7U)
+/*! STALL_I_DIS15 - STALL_I_DIS15
+ *  0b0..Endpoint 15 IN direction stall is enabled.
+ *  0b1..Endpoint 15 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS15(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS15_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS15_MASK)
+/*! @} */
+
+/*! @name STALL_OL_DIS - Peripheral mode stall disable for endpoints 7 to 0 in OUT direction */
+/*! @{ */
+#define USB_STALL_OL_DIS_STALL_O_DIS0_MASK       (0x1U)
+#define USB_STALL_OL_DIS_STALL_O_DIS0_SHIFT      (0U)
+/*! STALL_O_DIS0 - STALL_O_DIS0
+ *  0b0..Endpoint 0 OUT direction stall is enabled.
+ *  0b1..Endpoint 0 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS0(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS0_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS0_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS1_MASK       (0x2U)
+#define USB_STALL_OL_DIS_STALL_O_DIS1_SHIFT      (1U)
+/*! STALL_O_DIS1 - STALL_O_DIS1
+ *  0b0..Endpoint 1 OUT direction stall is enabled.
+ *  0b1..Endpoint 1 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS1(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS1_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS1_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS2_MASK       (0x4U)
+#define USB_STALL_OL_DIS_STALL_O_DIS2_SHIFT      (2U)
+/*! STALL_O_DIS2 - STALL_O_DIS2
+ *  0b0..Endpoint 2 OUT direction stall is enabled.
+ *  0b1..Endpoint 2 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS2(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS2_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS2_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS3_MASK       (0x8U)
+#define USB_STALL_OL_DIS_STALL_O_DIS3_SHIFT      (3U)
+/*! STALL_O_DIS3 - STALL_O_DIS3
+ *  0b0..Endpoint 3 OUT direction stall is enabled.
+ *  0b1..Endpoint 3 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS3(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS3_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS3_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS4_MASK       (0x10U)
+#define USB_STALL_OL_DIS_STALL_O_DIS4_SHIFT      (4U)
+/*! STALL_O_DIS4 - STALL_O_DIS4
+ *  0b0..Endpoint 4 OUT direction stall is enabled.
+ *  0b1..Endpoint 4 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS4(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS4_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS4_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS5_MASK       (0x20U)
+#define USB_STALL_OL_DIS_STALL_O_DIS5_SHIFT      (5U)
+/*! STALL_O_DIS5 - STALL_O_DIS5
+ *  0b0..Endpoint 5 OUT direction stall is enabled.
+ *  0b1..Endpoint 5 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS5(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS5_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS5_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS6_MASK       (0x40U)
+#define USB_STALL_OL_DIS_STALL_O_DIS6_SHIFT      (6U)
+/*! STALL_O_DIS6 - STALL_O_DIS6
+ *  0b0..Endpoint 6 OUT direction stall is enabled.
+ *  0b1..Endpoint 6 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS6(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS6_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS6_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS7_MASK       (0x80U)
+#define USB_STALL_OL_DIS_STALL_O_DIS7_SHIFT      (7U)
+/*! STALL_O_DIS7 - STALL_O_DIS7
+ *  0b0..Endpoint 7 OUT direction stall is enabled.
+ *  0b1..Endpoint 7 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS7(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS7_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS7_MASK)
+/*! @} */
+
+/*! @name STALL_OH_DIS - Peripheral mode stall disable for endpoints 15 to 8 in OUT direction */
+/*! @{ */
+#define USB_STALL_OH_DIS_STALL_O_DIS8_MASK       (0x1U)
+#define USB_STALL_OH_DIS_STALL_O_DIS8_SHIFT      (0U)
+/*! STALL_O_DIS8 - STALL_O_DIS8
+ *  0b0..Endpoint 8 OUT direction stall is enabled.
+ *  0b1..Endpoint 8 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS8(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS8_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS8_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS9_MASK       (0x2U)
+#define USB_STALL_OH_DIS_STALL_O_DIS9_SHIFT      (1U)
+/*! STALL_O_DIS9 - STALL_O_DIS9
+ *  0b0..Endpoint 9 OUT direction stall is enabled.
+ *  0b1..Endpoint 9 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS9(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS9_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS9_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS10_MASK      (0x4U)
+#define USB_STALL_OH_DIS_STALL_O_DIS10_SHIFT     (2U)
+/*! STALL_O_DIS10 - STALL_O_DIS10
+ *  0b0..Endpoint 10 OUT direction stall is enabled.
+ *  0b1..Endpoint 10 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS10(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS10_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS10_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS11_MASK      (0x8U)
+#define USB_STALL_OH_DIS_STALL_O_DIS11_SHIFT     (3U)
+/*! STALL_O_DIS11 - STALL_O_DIS11
+ *  0b0..Endpoint 11 OUT direction stall is enabled.
+ *  0b1..Endpoint 11 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS11(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS11_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS11_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS12_MASK      (0x10U)
+#define USB_STALL_OH_DIS_STALL_O_DIS12_SHIFT     (4U)
+/*! STALL_O_DIS12 - STALL_O_DIS12
+ *  0b0..Endpoint 12 OUT direction stall is enabled.
+ *  0b1..Endpoint 12 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS12(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS12_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS12_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS13_MASK      (0x20U)
+#define USB_STALL_OH_DIS_STALL_O_DIS13_SHIFT     (5U)
+/*! STALL_O_DIS13 - STALL_O_DIS13
+ *  0b0..Endpoint 13 OUT direction stall is enabled.
+ *  0b1..Endpoint 13 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS13(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS13_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS13_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS14_MASK      (0x40U)
+#define USB_STALL_OH_DIS_STALL_O_DIS14_SHIFT     (6U)
+/*! STALL_O_DIS14 - STALL_O_DIS14
+ *  0b0..Endpoint 14 OUT direction stall is enabled.
+ *  0b1..Endpoint 14 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS14(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS14_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS14_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS15_MASK      (0x80U)
+#define USB_STALL_OH_DIS_STALL_O_DIS15_SHIFT     (7U)
+/*! STALL_O_DIS15 - STALL_O_DIS15
+ *  0b0..Endpoint 15 OUT direction stall is enabled.
+ *  0b1..Endpoint 15 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS15(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS15_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS15_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_CTRL - USB Clock recovery control */
+/*! @{ */
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK (0x20U)
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT (5U)
+/*! RESTART_IFRTRIM_EN - Restart from IFR trim value
+ *  0b0..Trim fine adjustment always works based on the previous updated trim fine value (default).
+ *  0b1..Trim fine restarts from the IFR trim value, whenever bus_reset/bus_resume is detected or module enable is desasserted.
+ */
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK)
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK (0x40U)
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT (6U)
+/*! RESET_RESUME_ROUGH_EN - Reset/resume to rough phase enable
+ *  0b0..Always works in tracking phase after the first time rough phase, to track transition (default).
+ *  0b1..Go back to rough stage whenever a bus reset or bus resume occurs.
+ */
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK)
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK (0x80U)
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT (7U)
+/*! CLOCK_RECOVER_EN - Crystal-less USB enable
+ *  0b0..Disable clock recovery block (default)
+ *  0b1..Enable clock recovery block
+ */
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_IRC_EN - IRC48MFIRC oscillator enable register */
+/*! @{ */
+#define USB_CLK_RECOVER_IRC_EN_REG_EN_MASK       (0x1U)
+#define USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT      (0U)
+/*! REG_EN - Regulator enable
+ *  0b0..IRC48M local regulator is disabled
+ *  0b1..IRC48M local regulator is enabled (default)
+ */
+#define USB_CLK_RECOVER_IRC_EN_REG_EN(x)         (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_REG_EN_MASK)
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK       (0x2U)
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT      (1U)
+/*! IRC_EN - IRC_EN
+ *  0b0..Disable the IRC48M module (default)
+ *  0b1..Enable the IRC48M module
+ */
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN(x)         (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_INT_EN - Clock recovery combined interrupt enable */
+/*! @{ */
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_MASK (0x10U)
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_SHIFT (4U)
+/*! OVF_ERROR_EN - OVF_ERROR_EN
+ *  0b0..The interrupt will be masked
+ *  0b1..The interrupt will be enabled (default)
+ */
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN(x)   (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_SHIFT)) & USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_INT_STATUS - Clock recovery separated interrupt status */
+/*! @{ */
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK (0x10U)
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT (4U)
+/*! OVF_ERROR - OVF_ERROR
+ *  0b0..No interrupt is reported
+ *  0b1..Unmasked interrupt has been generated
+ */
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR(x)  (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT)) & USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USB_Register_Masks */
+
+
+/* USB - Peripheral instance base addresses */
+/** Peripheral USB0 base address */
+#define USB0_BASE                                (0x40045000u)
+/** Peripheral USB0 base pointer */
+#define USB0                                     ((USB_Type *)USB0_BASE)
+/** Array initializer of USB peripheral base addresses */
+#define USB_BASE_ADDRS                           { USB0_BASE }
+/** Array initializer of USB peripheral base pointers */
+#define USB_BASE_PTRS                            { USB0 }
+/** Interrupt vectors for the USB peripheral type */
+#define USB_IRQS                                 { USB0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group USB_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USBVREG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USBVREG_Peripheral_Access_Layer USBVREG Peripheral Access Layer
+ * @{
+ */
+
+/** USBVREG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CTRL;                              /**< USB VREG Control Register, offset: 0x0 */
+  __IO uint32_t CFGCTRL;                           /**< USB VREG Configuration Control Register, offset: 0x4 */
+} USBVREG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USBVREG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USBVREG_Register_Masks USBVREG Register Masks
+ * @{
+ */
+
+/*! @name CTRL - USB VREG Control Register */
+/*! @{ */
+#define USBVREG_CTRL_VSTBY_MASK                  (0x20000000U)
+#define USBVREG_CTRL_VSTBY_SHIFT                 (29U)
+/*! VSTBY - USB Voltage Regulator in Standby Mode during VLPR and VLPW modes
+ *  0b0..USB voltage regulator is not in standby during VLPR and VLPW modes.
+ *  0b1..USB voltage regulator in standby during VLPR and VLPW modes.
+ */
+#define USBVREG_CTRL_VSTBY(x)                    (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_VSTBY_SHIFT)) & USBVREG_CTRL_VSTBY_MASK)
+#define USBVREG_CTRL_SSTBY_MASK                  (0x40000000U)
+#define USBVREG_CTRL_SSTBY_SHIFT                 (30U)
+/*! SSTBY - USB Voltage Regulator in Standby Mode during Stop, VLPS, LLS and VLLS Modes
+ *  0b0..USB voltage regulator is not in standby during Stop,VLPS,LLS and VLLS modes.
+ *  0b1..USB voltage regulator is in standby during Stop,VLPS,LLS and VLLS modes.
+ */
+#define USBVREG_CTRL_SSTBY(x)                    (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_SSTBY_SHIFT)) & USBVREG_CTRL_SSTBY_MASK)
+#define USBVREG_CTRL_EN_MASK                     (0x80000000U)
+#define USBVREG_CTRL_EN_SHIFT                    (31U)
+/*! EN - USB Voltage Regulator Enable
+ *  0b0..USB voltage regulator is disabled.
+ *  0b1..USB voltage regulator is enabled.
+ */
+#define USBVREG_CTRL_EN(x)                       (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_EN_SHIFT)) & USBVREG_CTRL_EN_MASK)
+/*! @} */
+
+/*! @name CFGCTRL - USB VREG Configuration Control Register */
+/*! @{ */
+#define USBVREG_CFGCTRL_URWE_MASK                (0x1000000U)
+#define USBVREG_CFGCTRL_URWE_SHIFT               (24U)
+/*! URWE - USB Voltage Regulator Enable Write Enable
+ *  0b0..CTRL[EN] can not be written.
+ *  0b1..CTRL[EN] can be written.
+ */
+#define USBVREG_CFGCTRL_URWE(x)                  (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_URWE_SHIFT)) & USBVREG_CFGCTRL_URWE_MASK)
+#define USBVREG_CFGCTRL_UVSWE_MASK               (0x2000000U)
+#define USBVREG_CFGCTRL_UVSWE_SHIFT              (25U)
+/*! UVSWE - USB Voltage Regulator VLP Standby Write Enable
+ *  0b0..CTRL[VSTBY] cannot be written.
+ *  0b1..CTRL[VSTBY] can be written.
+ */
+#define USBVREG_CFGCTRL_UVSWE(x)                 (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_UVSWE_SHIFT)) & USBVREG_CFGCTRL_UVSWE_MASK)
+#define USBVREG_CFGCTRL_USSWE_MASK               (0x4000000U)
+#define USBVREG_CFGCTRL_USSWE_SHIFT              (26U)
+/*! USSWE - USB Voltage Rregulator Stop Standby Write Enable
+ *  0b0..CTRL[SSTBY] field cannot be written.
+ *  0b1..CTRL[SSTBY] can be written.
+ */
+#define USBVREG_CFGCTRL_USSWE(x)                 (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_USSWE_SHIFT)) & USBVREG_CFGCTRL_USSWE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USBVREG_Register_Masks */
+
+
+/* USBVREG - Peripheral instance base addresses */
+/** Peripheral USBVREG base address */
+#define USBVREG_BASE                             (0x40027000u)
+/** Peripheral USBVREG base pointer */
+#define USBVREG                                  ((USBVREG_Type *)USBVREG_BASE)
+/** Array initializer of USBVREG peripheral base addresses */
+#define USBVREG_BASE_ADDRS                       { USBVREG_BASE }
+/** Array initializer of USBVREG peripheral base pointers */
+#define USBVREG_BASE_PTRS                        { USBVREG }
+
+/*!
+ * @}
+ */ /* end of group USBVREG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USDHC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USDHC_Peripheral_Access_Layer USDHC Peripheral Access Layer
+ * @{
+ */
+
+/** USDHC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t DS_ADDR;                           /**< DMA System Address, offset: 0x0 */
+  __IO uint32_t BLK_ATT;                           /**< Block Attributes, offset: 0x4 */
+  __IO uint32_t CMD_ARG;                           /**< Command Argument, offset: 0x8 */
+  __IO uint32_t CMD_XFR_TYP;                       /**< Command Transfer Type, offset: 0xC */
+  __I  uint32_t CMD_RSP0;                          /**< Command Response0, offset: 0x10 */
+  __I  uint32_t CMD_RSP1;                          /**< Command Response1, offset: 0x14 */
+  __I  uint32_t CMD_RSP2;                          /**< Command Response2, offset: 0x18 */
+  __I  uint32_t CMD_RSP3;                          /**< Command Response3, offset: 0x1C */
+  __IO uint32_t DATA_BUFF_ACC_PORT;                /**< Data Buffer Access Port, offset: 0x20 */
+  __I  uint32_t PRES_STATE;                        /**< Present State, offset: 0x24 */
+  __IO uint32_t PROT_CTRL;                         /**< Protocol Control, offset: 0x28 */
+  __IO uint32_t SYS_CTRL;                          /**< System Control, offset: 0x2C */
+  __IO uint32_t INT_STATUS;                        /**< Interrupt Status, offset: 0x30 */
+  __IO uint32_t INT_STATUS_EN;                     /**< Interrupt Status Enable, offset: 0x34 */
+  __IO uint32_t INT_SIGNAL_EN;                     /**< Interrupt Signal Enable, offset: 0x38 */
+  __I  uint32_t AUTOCMD12_ERR_STATUS;              /**< Auto CMD12 Error Status, offset: 0x3C */
+  __I  uint32_t HOST_CTRL_CAP;                     /**< Host Controller Capabilities, offset: 0x40 */
+  __IO uint32_t WTMK_LVL;                          /**< Watermark Level, offset: 0x44 */
+  __IO uint32_t MIX_CTRL;                          /**< Mixer Control, offset: 0x48 */
+       uint8_t RESERVED_0[4];
+  __O  uint32_t FORCE_EVENT;                       /**< Force Event, offset: 0x50 */
+  __I  uint32_t ADMA_ERR_STATUS;                   /**< ADMA Error Status Register, offset: 0x54 */
+  __IO uint32_t ADMA_SYS_ADDR;                     /**< ADMA System Address, offset: 0x58 */
+       uint8_t RESERVED_1[100];
+  __IO uint32_t VEND_SPEC;                         /**< Vendor Specific Register, offset: 0xC0 */
+  __IO uint32_t MMC_BOOT;                          /**< MMC Boot Register, offset: 0xC4 */
+  __IO uint32_t VEND_SPEC2;                        /**< Vendor Specific 2 Register, offset: 0xC8 */
+} USDHC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USDHC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USDHC_Register_Masks USDHC Register Masks
+ * @{
+ */
+
+/*! @name DS_ADDR - DMA System Address */
+/*! @{ */
+#define USDHC_DS_ADDR_DS_ADDR_MASK               (0xFFFFFFFFU)
+#define USDHC_DS_ADDR_DS_ADDR_SHIFT              (0U)
+#define USDHC_DS_ADDR_DS_ADDR(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_DS_ADDR_DS_ADDR_SHIFT)) & USDHC_DS_ADDR_DS_ADDR_MASK)
+/*! @} */
+
+/*! @name BLK_ATT - Block Attributes */
+/*! @{ */
+#define USDHC_BLK_ATT_BLKSIZE_MASK               (0x1FFFU)
+#define USDHC_BLK_ATT_BLKSIZE_SHIFT              (0U)
+/*! BLKSIZE - Block Size
+ *  0b1000000000000..4096 Bytes
+ *  0b0100000000000..2048 Bytes
+ *  0b0001000000000..512 Bytes
+ *  0b0000111111111..511 Bytes
+ *  0b0000000000100..4 Bytes
+ *  0b0000000000011..3 Bytes
+ *  0b0000000000010..2 Bytes
+ *  0b0000000000001..1 Byte
+ *  0b0000000000000..No data transfer
+ */
+#define USDHC_BLK_ATT_BLKSIZE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_BLK_ATT_BLKSIZE_SHIFT)) & USDHC_BLK_ATT_BLKSIZE_MASK)
+#define USDHC_BLK_ATT_BLKCNT_MASK                (0xFFFF0000U)
+#define USDHC_BLK_ATT_BLKCNT_SHIFT               (16U)
+/*! BLKCNT - Block Count
+ *  0b1111111111111111..65535 blocks
+ *  0b0000000000000010..2 blocks
+ *  0b0000000000000001..1 block
+ *  0b0000000000000000..Stop Count
+ */
+#define USDHC_BLK_ATT_BLKCNT(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_BLK_ATT_BLKCNT_SHIFT)) & USDHC_BLK_ATT_BLKCNT_MASK)
+/*! @} */
+
+/*! @name CMD_ARG - Command Argument */
+/*! @{ */
+#define USDHC_CMD_ARG_CMDARG_MASK                (0xFFFFFFFFU)
+#define USDHC_CMD_ARG_CMDARG_SHIFT               (0U)
+#define USDHC_CMD_ARG_CMDARG(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_ARG_CMDARG_SHIFT)) & USDHC_CMD_ARG_CMDARG_MASK)
+/*! @} */
+
+/*! @name CMD_XFR_TYP - Command Transfer Type */
+/*! @{ */
+#define USDHC_CMD_XFR_TYP_RSPTYP_MASK            (0x30000U)
+#define USDHC_CMD_XFR_TYP_RSPTYP_SHIFT           (16U)
+/*! RSPTYP - Response Type Select
+ *  0b00..No Response
+ *  0b01..Response Length 136
+ *  0b10..Response Length 48
+ *  0b11..Response Length 48, check Busy after response
+ */
+#define USDHC_CMD_XFR_TYP_RSPTYP(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_RSPTYP_SHIFT)) & USDHC_CMD_XFR_TYP_RSPTYP_MASK)
+#define USDHC_CMD_XFR_TYP_CCCEN_MASK             (0x80000U)
+#define USDHC_CMD_XFR_TYP_CCCEN_SHIFT            (19U)
+/*! CCCEN - Command CRC Check Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_CMD_XFR_TYP_CCCEN(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CCCEN_SHIFT)) & USDHC_CMD_XFR_TYP_CCCEN_MASK)
+#define USDHC_CMD_XFR_TYP_CICEN_MASK             (0x100000U)
+#define USDHC_CMD_XFR_TYP_CICEN_SHIFT            (20U)
+/*! CICEN - Command Index Check Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_CMD_XFR_TYP_CICEN(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CICEN_SHIFT)) & USDHC_CMD_XFR_TYP_CICEN_MASK)
+#define USDHC_CMD_XFR_TYP_DPSEL_MASK             (0x200000U)
+#define USDHC_CMD_XFR_TYP_DPSEL_SHIFT            (21U)
+/*! DPSEL - Data Present Select
+ *  0b1..Data Present
+ *  0b0..No Data Present
+ */
+#define USDHC_CMD_XFR_TYP_DPSEL(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_DPSEL_SHIFT)) & USDHC_CMD_XFR_TYP_DPSEL_MASK)
+#define USDHC_CMD_XFR_TYP_CMDTYP_MASK            (0xC00000U)
+#define USDHC_CMD_XFR_TYP_CMDTYP_SHIFT           (22U)
+/*! CMDTYP - Command Type
+ *  0b11..Abort CMD12, CMD52 for writing I/O Abort in CCCR
+ *  0b10..Resume CMD52 for writing Function Select in CCCR
+ *  0b01..Suspend CMD52 for writing Bus Suspend in CCCR
+ *  0b00..Normal Other commands
+ */
+#define USDHC_CMD_XFR_TYP_CMDTYP(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CMDTYP_SHIFT)) & USDHC_CMD_XFR_TYP_CMDTYP_MASK)
+#define USDHC_CMD_XFR_TYP_CMDINX_MASK            (0x3F000000U)
+#define USDHC_CMD_XFR_TYP_CMDINX_SHIFT           (24U)
+#define USDHC_CMD_XFR_TYP_CMDINX(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CMDINX_SHIFT)) & USDHC_CMD_XFR_TYP_CMDINX_MASK)
+/*! @} */
+
+/*! @name CMD_RSP0 - Command Response0 */
+/*! @{ */
+#define USDHC_CMD_RSP0_CMDRSP0_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP0_CMDRSP0_SHIFT             (0U)
+#define USDHC_CMD_RSP0_CMDRSP0(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP0_CMDRSP0_SHIFT)) & USDHC_CMD_RSP0_CMDRSP0_MASK)
+/*! @} */
+
+/*! @name CMD_RSP1 - Command Response1 */
+/*! @{ */
+#define USDHC_CMD_RSP1_CMDRSP1_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP1_CMDRSP1_SHIFT             (0U)
+#define USDHC_CMD_RSP1_CMDRSP1(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP1_CMDRSP1_SHIFT)) & USDHC_CMD_RSP1_CMDRSP1_MASK)
+/*! @} */
+
+/*! @name CMD_RSP2 - Command Response2 */
+/*! @{ */
+#define USDHC_CMD_RSP2_CMDRSP2_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP2_CMDRSP2_SHIFT             (0U)
+#define USDHC_CMD_RSP2_CMDRSP2(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP2_CMDRSP2_SHIFT)) & USDHC_CMD_RSP2_CMDRSP2_MASK)
+/*! @} */
+
+/*! @name CMD_RSP3 - Command Response3 */
+/*! @{ */
+#define USDHC_CMD_RSP3_CMDRSP3_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP3_CMDRSP3_SHIFT             (0U)
+#define USDHC_CMD_RSP3_CMDRSP3(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP3_CMDRSP3_SHIFT)) & USDHC_CMD_RSP3_CMDRSP3_MASK)
+/*! @} */
+
+/*! @name DATA_BUFF_ACC_PORT - Data Buffer Access Port */
+/*! @{ */
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT_MASK    (0xFFFFFFFFU)
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT_SHIFT   (0U)
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_DATA_BUFF_ACC_PORT_DATCONT_SHIFT)) & USDHC_DATA_BUFF_ACC_PORT_DATCONT_MASK)
+/*! @} */
+
+/*! @name PRES_STATE - Present State */
+/*! @{ */
+#define USDHC_PRES_STATE_CIHB_MASK               (0x1U)
+#define USDHC_PRES_STATE_CIHB_SHIFT              (0U)
+/*! CIHB - Command Inhibit (CMD)
+ *  0b1..Cannot issue command
+ *  0b0..Can issue command using only CMD line
+ */
+#define USDHC_PRES_STATE_CIHB(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CIHB_SHIFT)) & USDHC_PRES_STATE_CIHB_MASK)
+#define USDHC_PRES_STATE_CDIHB_MASK              (0x2U)
+#define USDHC_PRES_STATE_CDIHB_SHIFT             (1U)
+/*! CDIHB - Command Inhibit (DATA)
+ *  0b1..Cannot issue command which uses the DATA line
+ *  0b0..Can issue command which uses the DATA line
+ */
+#define USDHC_PRES_STATE_CDIHB(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CDIHB_SHIFT)) & USDHC_PRES_STATE_CDIHB_MASK)
+#define USDHC_PRES_STATE_DLA_MASK                (0x4U)
+#define USDHC_PRES_STATE_DLA_SHIFT               (2U)
+/*! DLA - Data Line Active
+ *  0b1..DATA Line Active
+ *  0b0..DATA Line Inactive
+ */
+#define USDHC_PRES_STATE_DLA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_DLA_SHIFT)) & USDHC_PRES_STATE_DLA_MASK)
+#define USDHC_PRES_STATE_SDSTB_MASK              (0x8U)
+#define USDHC_PRES_STATE_SDSTB_SHIFT             (3U)
+/*! SDSTB - SD Clock Stable
+ *  0b1..Clock is stable.
+ *  0b0..Clock is changing frequency and not stable.
+ */
+#define USDHC_PRES_STATE_SDSTB(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_SDSTB_SHIFT)) & USDHC_PRES_STATE_SDSTB_MASK)
+#define USDHC_PRES_STATE_IPGOFF_MASK             (0x10U)
+#define USDHC_PRES_STATE_IPGOFF_SHIFT            (4U)
+/*! IPGOFF - IPG_CLK Gated Off Internally
+ *  0b1..IPG_CLK is gated off.
+ *  0b0..IPG_CLK is active.
+ */
+#define USDHC_PRES_STATE_IPGOFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_IPGOFF_SHIFT)) & USDHC_PRES_STATE_IPGOFF_MASK)
+#define USDHC_PRES_STATE_HCKOFF_MASK             (0x20U)
+#define USDHC_PRES_STATE_HCKOFF_SHIFT            (5U)
+/*! HCKOFF - HCLK Gated Off Internally
+ *  0b1..HCLK is gated off.
+ *  0b0..HCLK is active.
+ */
+#define USDHC_PRES_STATE_HCKOFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_HCKOFF_SHIFT)) & USDHC_PRES_STATE_HCKOFF_MASK)
+#define USDHC_PRES_STATE_PEROFF_MASK             (0x40U)
+#define USDHC_PRES_STATE_PEROFF_SHIFT            (6U)
+/*! PEROFF - IPG_PERCLK Gated Off Internally
+ *  0b1..IPG_PERCLK is gated off.
+ *  0b0..IPG_PERCLK is active.
+ */
+#define USDHC_PRES_STATE_PEROFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_PEROFF_SHIFT)) & USDHC_PRES_STATE_PEROFF_MASK)
+#define USDHC_PRES_STATE_SDOFF_MASK              (0x80U)
+#define USDHC_PRES_STATE_SDOFF_SHIFT             (7U)
+/*! SDOFF - SD Clock Gated Off Internally
+ *  0b1..SD Clock is gated off.
+ *  0b0..SD Clock is active.
+ */
+#define USDHC_PRES_STATE_SDOFF(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_SDOFF_SHIFT)) & USDHC_PRES_STATE_SDOFF_MASK)
+#define USDHC_PRES_STATE_WTA_MASK                (0x100U)
+#define USDHC_PRES_STATE_WTA_SHIFT               (8U)
+/*! WTA - Write Transfer Active
+ *  0b1..Transferring data
+ *  0b0..No valid data
+ */
+#define USDHC_PRES_STATE_WTA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_WTA_SHIFT)) & USDHC_PRES_STATE_WTA_MASK)
+#define USDHC_PRES_STATE_RTA_MASK                (0x200U)
+#define USDHC_PRES_STATE_RTA_SHIFT               (9U)
+/*! RTA - Read Transfer Active
+ *  0b1..Transferring data
+ *  0b0..No valid data
+ */
+#define USDHC_PRES_STATE_RTA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_RTA_SHIFT)) & USDHC_PRES_STATE_RTA_MASK)
+#define USDHC_PRES_STATE_BWEN_MASK               (0x400U)
+#define USDHC_PRES_STATE_BWEN_SHIFT              (10U)
+/*! BWEN - Buffer Write Enable
+ *  0b1..Write enable
+ *  0b0..Write disable
+ */
+#define USDHC_PRES_STATE_BWEN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_BWEN_SHIFT)) & USDHC_PRES_STATE_BWEN_MASK)
+#define USDHC_PRES_STATE_BREN_MASK               (0x800U)
+#define USDHC_PRES_STATE_BREN_SHIFT              (11U)
+/*! BREN - Buffer Read Enable
+ *  0b1..Read enable
+ *  0b0..Read disable
+ */
+#define USDHC_PRES_STATE_BREN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_BREN_SHIFT)) & USDHC_PRES_STATE_BREN_MASK)
+#define USDHC_PRES_STATE_CINST_MASK              (0x10000U)
+#define USDHC_PRES_STATE_CINST_SHIFT             (16U)
+/*! CINST - Card Inserted
+ *  0b1..Card Inserted
+ *  0b0..Power on Reset or No Card
+ */
+#define USDHC_PRES_STATE_CINST(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CINST_SHIFT)) & USDHC_PRES_STATE_CINST_MASK)
+#define USDHC_PRES_STATE_CDPL_MASK               (0x40000U)
+#define USDHC_PRES_STATE_CDPL_SHIFT              (18U)
+/*! CDPL - Card Detect Pin Level
+ *  0b1..Card present (CD_B = 0)
+ *  0b0..No card present (CD_B = 1)
+ */
+#define USDHC_PRES_STATE_CDPL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CDPL_SHIFT)) & USDHC_PRES_STATE_CDPL_MASK)
+#define USDHC_PRES_STATE_WPSPL_MASK              (0x80000U)
+#define USDHC_PRES_STATE_WPSPL_SHIFT             (19U)
+/*! WPSPL - Write Protect Switch Pin Level
+ *  0b1..Write enabled (WP = 0)
+ *  0b0..Write protected (WP = 1)
+ */
+#define USDHC_PRES_STATE_WPSPL(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_WPSPL_SHIFT)) & USDHC_PRES_STATE_WPSPL_MASK)
+#define USDHC_PRES_STATE_CLSL_MASK               (0x800000U)
+#define USDHC_PRES_STATE_CLSL_SHIFT              (23U)
+#define USDHC_PRES_STATE_CLSL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CLSL_SHIFT)) & USDHC_PRES_STATE_CLSL_MASK)
+#define USDHC_PRES_STATE_DLSL_MASK               (0xFF000000U)
+#define USDHC_PRES_STATE_DLSL_SHIFT              (24U)
+/*! DLSL - DATA[7:0] Line Signal Level
+ *  0b00000111..Data 7 line signal level
+ *  0b00000110..Data 6 line signal level
+ *  0b00000101..Data 5 line signal level
+ *  0b00000100..Data 4 line signal level
+ *  0b00000011..Data 3 line signal level
+ *  0b00000010..Data 2 line signal level
+ *  0b00000001..Data 1 line signal level
+ *  0b00000000..Data 0 line signal level
+ */
+#define USDHC_PRES_STATE_DLSL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_DLSL_SHIFT)) & USDHC_PRES_STATE_DLSL_MASK)
+/*! @} */
+
+/*! @name PROT_CTRL - Protocol Control */
+/*! @{ */
+#define USDHC_PROT_CTRL_LCTL_MASK                (0x1U)
+#define USDHC_PROT_CTRL_LCTL_SHIFT               (0U)
+/*! LCTL - LED Control
+ *  0b1..LED on
+ *  0b0..LED off
+ */
+#define USDHC_PROT_CTRL_LCTL(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_LCTL_SHIFT)) & USDHC_PROT_CTRL_LCTL_MASK)
+#define USDHC_PROT_CTRL_DTW_MASK                 (0x6U)
+#define USDHC_PROT_CTRL_DTW_SHIFT                (1U)
+/*! DTW - Data Transfer Width
+ *  0b10..8-bit mode
+ *  0b01..4-bit mode
+ *  0b00..1-bit mode
+ *  0b11..Reserved
+ */
+#define USDHC_PROT_CTRL_DTW(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_DTW_SHIFT)) & USDHC_PROT_CTRL_DTW_MASK)
+#define USDHC_PROT_CTRL_D3CD_MASK                (0x8U)
+#define USDHC_PROT_CTRL_D3CD_SHIFT               (3U)
+/*! D3CD - DATA3 as Card Detection Pin
+ *  0b1..DATA3 as Card Detection Pin
+ *  0b0..DATA3 does not monitor Card Insertion
+ */
+#define USDHC_PROT_CTRL_D3CD(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_D3CD_SHIFT)) & USDHC_PROT_CTRL_D3CD_MASK)
+#define USDHC_PROT_CTRL_EMODE_MASK               (0x30U)
+#define USDHC_PROT_CTRL_EMODE_SHIFT              (4U)
+/*! EMODE - Endian Mode
+ *  0b00..Big Endian Mode
+ *  0b01..Half Word Big Endian Mode
+ *  0b10..Little Endian Mode
+ *  0b11..Reserved
+ */
+#define USDHC_PROT_CTRL_EMODE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_EMODE_SHIFT)) & USDHC_PROT_CTRL_EMODE_MASK)
+#define USDHC_PROT_CTRL_CDTL_MASK                (0x40U)
+#define USDHC_PROT_CTRL_CDTL_SHIFT               (6U)
+/*! CDTL - Card Detect Test Level
+ *  0b1..Card Detect Test Level is 1, card inserted
+ *  0b0..Card Detect Test Level is 0, no card inserted
+ */
+#define USDHC_PROT_CTRL_CDTL(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CDTL_SHIFT)) & USDHC_PROT_CTRL_CDTL_MASK)
+#define USDHC_PROT_CTRL_CDSS_MASK                (0x80U)
+#define USDHC_PROT_CTRL_CDSS_SHIFT               (7U)
+/*! CDSS - Card Detect Signal Selection
+ *  0b1..Card Detection Test Level is selected (for test purpose).
+ *  0b0..Card Detection Level is selected (for normal purpose).
+ */
+#define USDHC_PROT_CTRL_CDSS(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CDSS_SHIFT)) & USDHC_PROT_CTRL_CDSS_MASK)
+#define USDHC_PROT_CTRL_DMASEL_MASK              (0x300U)
+#define USDHC_PROT_CTRL_DMASEL_SHIFT             (8U)
+/*! DMASEL - DMA Select
+ *  0b00..No DMA or Simple DMA is selected
+ *  0b01..ADMA1 is selected
+ *  0b10..ADMA2 is selected
+ *  0b11..reserved
+ */
+#define USDHC_PROT_CTRL_DMASEL(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_DMASEL_SHIFT)) & USDHC_PROT_CTRL_DMASEL_MASK)
+#define USDHC_PROT_CTRL_SABGREQ_MASK             (0x10000U)
+#define USDHC_PROT_CTRL_SABGREQ_SHIFT            (16U)
+/*! SABGREQ - Stop At Block Gap Request
+ *  0b1..Stop
+ *  0b0..Transfer
+ */
+#define USDHC_PROT_CTRL_SABGREQ(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_SABGREQ_SHIFT)) & USDHC_PROT_CTRL_SABGREQ_MASK)
+#define USDHC_PROT_CTRL_CREQ_MASK                (0x20000U)
+#define USDHC_PROT_CTRL_CREQ_SHIFT               (17U)
+/*! CREQ - Continue Request
+ *  0b1..Restart
+ *  0b0..No effect
+ */
+#define USDHC_PROT_CTRL_CREQ(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CREQ_SHIFT)) & USDHC_PROT_CTRL_CREQ_MASK)
+#define USDHC_PROT_CTRL_RWCTL_MASK               (0x40000U)
+#define USDHC_PROT_CTRL_RWCTL_SHIFT              (18U)
+/*! RWCTL - Read Wait Control
+ *  0b1..Enable Read Wait Control, and assert Read Wait without stopping SD Clock at block gap when SABGREQ bit is set
+ *  0b0..Disable Read Wait Control, and stop SD Clock at block gap when SABGREQ bit is set
+ */
+#define USDHC_PROT_CTRL_RWCTL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_RWCTL_SHIFT)) & USDHC_PROT_CTRL_RWCTL_MASK)
+#define USDHC_PROT_CTRL_IABG_MASK                (0x80000U)
+#define USDHC_PROT_CTRL_IABG_SHIFT               (19U)
+/*! IABG - Interrupt At Block Gap
+ *  0b1..Enabled
+ *  0b0..Disabled
+ */
+#define USDHC_PROT_CTRL_IABG(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_IABG_SHIFT)) & USDHC_PROT_CTRL_IABG_MASK)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK_MASK     (0x100000U)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK_SHIFT    (20U)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_RD_DONE_NO_8CLK_SHIFT)) & USDHC_PROT_CTRL_RD_DONE_NO_8CLK_MASK)
+#define USDHC_PROT_CTRL_WECINT_MASK              (0x1000000U)
+#define USDHC_PROT_CTRL_WECINT_SHIFT             (24U)
+/*! WECINT - Wakeup Event Enable On Card Interrupt
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECINT(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECINT_SHIFT)) & USDHC_PROT_CTRL_WECINT_MASK)
+#define USDHC_PROT_CTRL_WECINS_MASK              (0x2000000U)
+#define USDHC_PROT_CTRL_WECINS_SHIFT             (25U)
+/*! WECINS - Wakeup Event Enable On SD Card Insertion
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECINS(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECINS_SHIFT)) & USDHC_PROT_CTRL_WECINS_MASK)
+#define USDHC_PROT_CTRL_WECRM_MASK               (0x4000000U)
+#define USDHC_PROT_CTRL_WECRM_SHIFT              (26U)
+/*! WECRM - Wakeup Event Enable On SD Card Removal
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECRM(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECRM_SHIFT)) & USDHC_PROT_CTRL_WECRM_MASK)
+#define USDHC_PROT_CTRL_BURST_LEN_EN_MASK        (0x38000000U)
+#define USDHC_PROT_CTRL_BURST_LEN_EN_SHIFT       (27U)
+/*! BURST_LEN_EN - BURST length enable for INCR, INCR4 / INCR8 / INCR16, INCR4-WRAP / INCR8-WRAP / INCR16-WRAP
+ *  0bxx1..Burst length is enabled for INCR
+ *  0bx1x..Burst length is enabled for INCR4 / INCR8 / INCR16
+ *  0b1xx..Burst length is enabled for INCR4-WRAP / INCR8-WRAP / INCR16-WRAP
+ */
+#define USDHC_PROT_CTRL_BURST_LEN_EN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_BURST_LEN_EN_SHIFT)) & USDHC_PROT_CTRL_BURST_LEN_EN_MASK)
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD_MASK    (0x40000000U)
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD_SHIFT   (30U)
+/*! NON_EXACT_BLK_RD - NON_EXACT_BLK_RD
+ *  0b1..The block read is non-exact block read. Host driver needs to issue abort command to terminate this multi-block read.
+ *  0b0..The block read is exact block read. Host driver doesn't need to issue abort command to terminate this multi-block read.
+ */
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_NON_EXACT_BLK_RD_SHIFT)) & USDHC_PROT_CTRL_NON_EXACT_BLK_RD_MASK)
+/*! @} */
+
+/*! @name SYS_CTRL - System Control */
+/*! @{ */
+#define USDHC_SYS_CTRL_DVS_MASK                  (0xF0U)
+#define USDHC_SYS_CTRL_DVS_SHIFT                 (4U)
+/*! DVS - Divisor
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define USDHC_SYS_CTRL_DVS(x)                    (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_DVS_SHIFT)) & USDHC_SYS_CTRL_DVS_MASK)
+#define USDHC_SYS_CTRL_SDCLKFS_MASK              (0xFF00U)
+#define USDHC_SYS_CTRL_SDCLKFS_SHIFT             (8U)
+#define USDHC_SYS_CTRL_SDCLKFS(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_SDCLKFS_SHIFT)) & USDHC_SYS_CTRL_SDCLKFS_MASK)
+#define USDHC_SYS_CTRL_DTOCV_MASK                (0xF0000U)
+#define USDHC_SYS_CTRL_DTOCV_SHIFT               (16U)
+/*! DTOCV - Data Timeout Counter Value
+ *  0b1111..SDCLK x 2 29
+ *  0b1110..SDCLK x 2 28
+ *  0b1101..SDCLK x 2 27
+ *  0b0001..SDCLK x 2 15
+ *  0b0000..SDCLK x 2 14
+ */
+#define USDHC_SYS_CTRL_DTOCV(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_DTOCV_SHIFT)) & USDHC_SYS_CTRL_DTOCV_MASK)
+#define USDHC_SYS_CTRL_IPP_RST_N_MASK            (0x800000U)
+#define USDHC_SYS_CTRL_IPP_RST_N_SHIFT           (23U)
+#define USDHC_SYS_CTRL_IPP_RST_N(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_IPP_RST_N_SHIFT)) & USDHC_SYS_CTRL_IPP_RST_N_MASK)
+#define USDHC_SYS_CTRL_RSTA_MASK                 (0x1000000U)
+#define USDHC_SYS_CTRL_RSTA_SHIFT                (24U)
+/*! RSTA - Software Reset For ALL
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTA(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTA_SHIFT)) & USDHC_SYS_CTRL_RSTA_MASK)
+#define USDHC_SYS_CTRL_RSTC_MASK                 (0x2000000U)
+#define USDHC_SYS_CTRL_RSTC_SHIFT                (25U)
+/*! RSTC - Software Reset For CMD Line
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTC_SHIFT)) & USDHC_SYS_CTRL_RSTC_MASK)
+#define USDHC_SYS_CTRL_RSTD_MASK                 (0x4000000U)
+#define USDHC_SYS_CTRL_RSTD_SHIFT                (26U)
+/*! RSTD - Software Reset For DATA Line
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTD(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTD_SHIFT)) & USDHC_SYS_CTRL_RSTD_MASK)
+#define USDHC_SYS_CTRL_INITA_MASK                (0x8000000U)
+#define USDHC_SYS_CTRL_INITA_SHIFT               (27U)
+#define USDHC_SYS_CTRL_INITA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_INITA_SHIFT)) & USDHC_SYS_CTRL_INITA_MASK)
+/*! @} */
+
+/*! @name INT_STATUS - Interrupt Status */
+/*! @{ */
+#define USDHC_INT_STATUS_CC_MASK                 (0x1U)
+#define USDHC_INT_STATUS_CC_SHIFT                (0U)
+/*! CC - Command Complete
+ *  0b1..Command complete
+ *  0b0..Command not complete
+ */
+#define USDHC_INT_STATUS_CC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CC_SHIFT)) & USDHC_INT_STATUS_CC_MASK)
+#define USDHC_INT_STATUS_TC_MASK                 (0x2U)
+#define USDHC_INT_STATUS_TC_SHIFT                (1U)
+/*! TC - Transfer Complete
+ *  0b1..Transfer complete
+ *  0b0..Transfer not complete
+ */
+#define USDHC_INT_STATUS_TC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_TC_SHIFT)) & USDHC_INT_STATUS_TC_MASK)
+#define USDHC_INT_STATUS_BGE_MASK                (0x4U)
+#define USDHC_INT_STATUS_BGE_SHIFT               (2U)
+/*! BGE - Block Gap Event
+ *  0b1..Transaction stopped at block gap
+ *  0b0..No block gap event
+ */
+#define USDHC_INT_STATUS_BGE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BGE_SHIFT)) & USDHC_INT_STATUS_BGE_MASK)
+#define USDHC_INT_STATUS_DINT_MASK               (0x8U)
+#define USDHC_INT_STATUS_DINT_SHIFT              (3U)
+/*! DINT - DMA Interrupt
+ *  0b1..DMA Interrupt is generated
+ *  0b0..No DMA Interrupt
+ */
+#define USDHC_INT_STATUS_DINT(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DINT_SHIFT)) & USDHC_INT_STATUS_DINT_MASK)
+#define USDHC_INT_STATUS_BWR_MASK                (0x10U)
+#define USDHC_INT_STATUS_BWR_SHIFT               (4U)
+/*! BWR - Buffer Write Ready
+ *  0b1..Ready to write buffer:
+ *  0b0..Not ready to write buffer
+ */
+#define USDHC_INT_STATUS_BWR(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BWR_SHIFT)) & USDHC_INT_STATUS_BWR_MASK)
+#define USDHC_INT_STATUS_BRR_MASK                (0x20U)
+#define USDHC_INT_STATUS_BRR_SHIFT               (5U)
+/*! BRR - Buffer Read Ready
+ *  0b1..Ready to read buffer
+ *  0b0..Not ready to read buffer
+ */
+#define USDHC_INT_STATUS_BRR(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BRR_SHIFT)) & USDHC_INT_STATUS_BRR_MASK)
+#define USDHC_INT_STATUS_CINS_MASK               (0x40U)
+#define USDHC_INT_STATUS_CINS_SHIFT              (6U)
+/*! CINS - Card Insertion
+ *  0b1..Card inserted
+ *  0b0..Card state unstable or removed
+ */
+#define USDHC_INT_STATUS_CINS(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CINS_SHIFT)) & USDHC_INT_STATUS_CINS_MASK)
+#define USDHC_INT_STATUS_CRM_MASK                (0x80U)
+#define USDHC_INT_STATUS_CRM_SHIFT               (7U)
+/*! CRM - Card Removal
+ *  0b1..Card removed
+ *  0b0..Card state unstable or inserted
+ */
+#define USDHC_INT_STATUS_CRM(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CRM_SHIFT)) & USDHC_INT_STATUS_CRM_MASK)
+#define USDHC_INT_STATUS_CINT_MASK               (0x100U)
+#define USDHC_INT_STATUS_CINT_SHIFT              (8U)
+/*! CINT - Card Interrupt
+ *  0b1..Generate Card Interrupt
+ *  0b0..No Card Interrupt
+ */
+#define USDHC_INT_STATUS_CINT(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CINT_SHIFT)) & USDHC_INT_STATUS_CINT_MASK)
+#define USDHC_INT_STATUS_CTOE_MASK               (0x10000U)
+#define USDHC_INT_STATUS_CTOE_SHIFT              (16U)
+/*! CTOE - Command Timeout Error
+ *  0b1..Time out
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CTOE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CTOE_SHIFT)) & USDHC_INT_STATUS_CTOE_MASK)
+#define USDHC_INT_STATUS_CCE_MASK                (0x20000U)
+#define USDHC_INT_STATUS_CCE_SHIFT               (17U)
+/*! CCE - Command CRC Error
+ *  0b1..CRC Error Generated.
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CCE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CCE_SHIFT)) & USDHC_INT_STATUS_CCE_MASK)
+#define USDHC_INT_STATUS_CEBE_MASK               (0x40000U)
+#define USDHC_INT_STATUS_CEBE_SHIFT              (18U)
+/*! CEBE - Command End Bit Error
+ *  0b1..End Bit Error Generated
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CEBE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CEBE_SHIFT)) & USDHC_INT_STATUS_CEBE_MASK)
+#define USDHC_INT_STATUS_CIE_MASK                (0x80000U)
+#define USDHC_INT_STATUS_CIE_SHIFT               (19U)
+/*! CIE - Command Index Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CIE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CIE_SHIFT)) & USDHC_INT_STATUS_CIE_MASK)
+#define USDHC_INT_STATUS_DTOE_MASK               (0x100000U)
+#define USDHC_INT_STATUS_DTOE_SHIFT              (20U)
+/*! DTOE - Data Timeout Error
+ *  0b1..Time out
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DTOE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DTOE_SHIFT)) & USDHC_INT_STATUS_DTOE_MASK)
+#define USDHC_INT_STATUS_DCE_MASK                (0x200000U)
+#define USDHC_INT_STATUS_DCE_SHIFT               (21U)
+/*! DCE - Data CRC Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DCE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DCE_SHIFT)) & USDHC_INT_STATUS_DCE_MASK)
+#define USDHC_INT_STATUS_DEBE_MASK               (0x400000U)
+#define USDHC_INT_STATUS_DEBE_SHIFT              (22U)
+/*! DEBE - Data End Bit Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DEBE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DEBE_SHIFT)) & USDHC_INT_STATUS_DEBE_MASK)
+#define USDHC_INT_STATUS_AC12E_MASK              (0x1000000U)
+#define USDHC_INT_STATUS_AC12E_SHIFT             (24U)
+/*! AC12E - Auto CMD12 Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_AC12E(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_AC12E_SHIFT)) & USDHC_INT_STATUS_AC12E_MASK)
+#define USDHC_INT_STATUS_DMAE_MASK               (0x10000000U)
+#define USDHC_INT_STATUS_DMAE_SHIFT              (28U)
+/*! DMAE - DMA Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DMAE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DMAE_SHIFT)) & USDHC_INT_STATUS_DMAE_MASK)
+/*! @} */
+
+/*! @name INT_STATUS_EN - Interrupt Status Enable */
+/*! @{ */
+#define USDHC_INT_STATUS_EN_CCSEN_MASK           (0x1U)
+#define USDHC_INT_STATUS_EN_CCSEN_SHIFT          (0U)
+/*! CCSEN - Command Complete Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CCSEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CCSEN_SHIFT)) & USDHC_INT_STATUS_EN_CCSEN_MASK)
+#define USDHC_INT_STATUS_EN_TCSEN_MASK           (0x2U)
+#define USDHC_INT_STATUS_EN_TCSEN_SHIFT          (1U)
+/*! TCSEN - Transfer Complete Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_TCSEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_TCSEN_SHIFT)) & USDHC_INT_STATUS_EN_TCSEN_MASK)
+#define USDHC_INT_STATUS_EN_BGESEN_MASK          (0x4U)
+#define USDHC_INT_STATUS_EN_BGESEN_SHIFT         (2U)
+/*! BGESEN - Block Gap Event Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BGESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BGESEN_SHIFT)) & USDHC_INT_STATUS_EN_BGESEN_MASK)
+#define USDHC_INT_STATUS_EN_DINTSEN_MASK         (0x8U)
+#define USDHC_INT_STATUS_EN_DINTSEN_SHIFT        (3U)
+/*! DINTSEN - DMA Interrupt Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DINTSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DINTSEN_SHIFT)) & USDHC_INT_STATUS_EN_DINTSEN_MASK)
+#define USDHC_INT_STATUS_EN_BWRSEN_MASK          (0x10U)
+#define USDHC_INT_STATUS_EN_BWRSEN_SHIFT         (4U)
+/*! BWRSEN - Buffer Write Ready Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BWRSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BWRSEN_SHIFT)) & USDHC_INT_STATUS_EN_BWRSEN_MASK)
+#define USDHC_INT_STATUS_EN_BRRSEN_MASK          (0x20U)
+#define USDHC_INT_STATUS_EN_BRRSEN_SHIFT         (5U)
+/*! BRRSEN - Buffer Read Ready Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BRRSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BRRSEN_SHIFT)) & USDHC_INT_STATUS_EN_BRRSEN_MASK)
+#define USDHC_INT_STATUS_EN_CINSSEN_MASK         (0x40U)
+#define USDHC_INT_STATUS_EN_CINSSEN_SHIFT        (6U)
+/*! CINSSEN - Card Insertion Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CINSSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CINSSEN_SHIFT)) & USDHC_INT_STATUS_EN_CINSSEN_MASK)
+#define USDHC_INT_STATUS_EN_CRMSEN_MASK          (0x80U)
+#define USDHC_INT_STATUS_EN_CRMSEN_SHIFT         (7U)
+/*! CRMSEN - Card Removal Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CRMSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CRMSEN_SHIFT)) & USDHC_INT_STATUS_EN_CRMSEN_MASK)
+#define USDHC_INT_STATUS_EN_CINTSEN_MASK         (0x100U)
+#define USDHC_INT_STATUS_EN_CINTSEN_SHIFT        (8U)
+/*! CINTSEN - Card Interrupt Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CINTSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CINTSEN_SHIFT)) & USDHC_INT_STATUS_EN_CINTSEN_MASK)
+#define USDHC_INT_STATUS_EN_CTOESEN_MASK         (0x10000U)
+#define USDHC_INT_STATUS_EN_CTOESEN_SHIFT        (16U)
+/*! CTOESEN - Command Timeout Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CTOESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CTOESEN_SHIFT)) & USDHC_INT_STATUS_EN_CTOESEN_MASK)
+#define USDHC_INT_STATUS_EN_CCESEN_MASK          (0x20000U)
+#define USDHC_INT_STATUS_EN_CCESEN_SHIFT         (17U)
+/*! CCESEN - Command CRC Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CCESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CCESEN_SHIFT)) & USDHC_INT_STATUS_EN_CCESEN_MASK)
+#define USDHC_INT_STATUS_EN_CEBESEN_MASK         (0x40000U)
+#define USDHC_INT_STATUS_EN_CEBESEN_SHIFT        (18U)
+/*! CEBESEN - Command End Bit Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CEBESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CEBESEN_SHIFT)) & USDHC_INT_STATUS_EN_CEBESEN_MASK)
+#define USDHC_INT_STATUS_EN_CIESEN_MASK          (0x80000U)
+#define USDHC_INT_STATUS_EN_CIESEN_SHIFT         (19U)
+/*! CIESEN - Command Index Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CIESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CIESEN_SHIFT)) & USDHC_INT_STATUS_EN_CIESEN_MASK)
+#define USDHC_INT_STATUS_EN_DTOESEN_MASK         (0x100000U)
+#define USDHC_INT_STATUS_EN_DTOESEN_SHIFT        (20U)
+/*! DTOESEN - Data Timeout Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DTOESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DTOESEN_SHIFT)) & USDHC_INT_STATUS_EN_DTOESEN_MASK)
+#define USDHC_INT_STATUS_EN_DCESEN_MASK          (0x200000U)
+#define USDHC_INT_STATUS_EN_DCESEN_SHIFT         (21U)
+/*! DCESEN - Data CRC Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DCESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DCESEN_SHIFT)) & USDHC_INT_STATUS_EN_DCESEN_MASK)
+#define USDHC_INT_STATUS_EN_DEBESEN_MASK         (0x400000U)
+#define USDHC_INT_STATUS_EN_DEBESEN_SHIFT        (22U)
+/*! DEBESEN - Data End Bit Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DEBESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DEBESEN_SHIFT)) & USDHC_INT_STATUS_EN_DEBESEN_MASK)
+#define USDHC_INT_STATUS_EN_AC12ESEN_MASK        (0x1000000U)
+#define USDHC_INT_STATUS_EN_AC12ESEN_SHIFT       (24U)
+/*! AC12ESEN - Auto CMD12 Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_AC12ESEN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_AC12ESEN_SHIFT)) & USDHC_INT_STATUS_EN_AC12ESEN_MASK)
+#define USDHC_INT_STATUS_EN_DMAESEN_MASK         (0x10000000U)
+#define USDHC_INT_STATUS_EN_DMAESEN_SHIFT        (28U)
+/*! DMAESEN - DMA Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DMAESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DMAESEN_SHIFT)) & USDHC_INT_STATUS_EN_DMAESEN_MASK)
+/*! @} */
+
+/*! @name INT_SIGNAL_EN - Interrupt Signal Enable */
+/*! @{ */
+#define USDHC_INT_SIGNAL_EN_CCIEN_MASK           (0x1U)
+#define USDHC_INT_SIGNAL_EN_CCIEN_SHIFT          (0U)
+/*! CCIEN - Command Complete Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CCIEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CCIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CCIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_TCIEN_MASK           (0x2U)
+#define USDHC_INT_SIGNAL_EN_TCIEN_SHIFT          (1U)
+/*! TCIEN - Transfer Complete Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_TCIEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_TCIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_TCIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BGEIEN_MASK          (0x4U)
+#define USDHC_INT_SIGNAL_EN_BGEIEN_SHIFT         (2U)
+/*! BGEIEN - Block Gap Event Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BGEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BGEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BGEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DINTIEN_MASK         (0x8U)
+#define USDHC_INT_SIGNAL_EN_DINTIEN_SHIFT        (3U)
+/*! DINTIEN - DMA Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DINTIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DINTIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DINTIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BWRIEN_MASK          (0x10U)
+#define USDHC_INT_SIGNAL_EN_BWRIEN_SHIFT         (4U)
+/*! BWRIEN - Buffer Write Ready Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BWRIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BWRIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BWRIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BRRIEN_MASK          (0x20U)
+#define USDHC_INT_SIGNAL_EN_BRRIEN_SHIFT         (5U)
+/*! BRRIEN - Buffer Read Ready Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BRRIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BRRIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BRRIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CINSIEN_MASK         (0x40U)
+#define USDHC_INT_SIGNAL_EN_CINSIEN_SHIFT        (6U)
+/*! CINSIEN - Card Insertion Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CINSIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CINSIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CINSIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CRMIEN_MASK          (0x80U)
+#define USDHC_INT_SIGNAL_EN_CRMIEN_SHIFT         (7U)
+/*! CRMIEN - Card Removal Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CRMIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CRMIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CRMIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CINTIEN_MASK         (0x100U)
+#define USDHC_INT_SIGNAL_EN_CINTIEN_SHIFT        (8U)
+/*! CINTIEN - Card Interrupt Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CINTIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CINTIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CINTIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CTOEIEN_MASK         (0x10000U)
+#define USDHC_INT_SIGNAL_EN_CTOEIEN_SHIFT        (16U)
+/*! CTOEIEN - Command Timeout Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CTOEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CTOEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CTOEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CCEIEN_MASK          (0x20000U)
+#define USDHC_INT_SIGNAL_EN_CCEIEN_SHIFT         (17U)
+/*! CCEIEN - Command CRC Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CCEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CCEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CCEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CEBEIEN_MASK         (0x40000U)
+#define USDHC_INT_SIGNAL_EN_CEBEIEN_SHIFT        (18U)
+/*! CEBEIEN - Command End Bit Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CEBEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CEBEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CEBEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CIEIEN_MASK          (0x80000U)
+#define USDHC_INT_SIGNAL_EN_CIEIEN_SHIFT         (19U)
+/*! CIEIEN - Command Index Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CIEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CIEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CIEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DTOEIEN_MASK         (0x100000U)
+#define USDHC_INT_SIGNAL_EN_DTOEIEN_SHIFT        (20U)
+/*! DTOEIEN - Data Timeout Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DTOEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DTOEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DTOEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DCEIEN_MASK          (0x200000U)
+#define USDHC_INT_SIGNAL_EN_DCEIEN_SHIFT         (21U)
+/*! DCEIEN - Data CRC Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DCEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DCEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DCEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DEBEIEN_MASK         (0x400000U)
+#define USDHC_INT_SIGNAL_EN_DEBEIEN_SHIFT        (22U)
+/*! DEBEIEN - Data End Bit Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DEBEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DEBEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DEBEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_AC12EIEN_MASK        (0x1000000U)
+#define USDHC_INT_SIGNAL_EN_AC12EIEN_SHIFT       (24U)
+/*! AC12EIEN - Auto CMD12 Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_AC12EIEN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_AC12EIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_AC12EIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DMAEIEN_MASK         (0x10000000U)
+#define USDHC_INT_SIGNAL_EN_DMAEIEN_SHIFT        (28U)
+/*! DMAEIEN - DMA Error Interrupt Enable
+ *  0b1..Enable
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DMAEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DMAEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DMAEIEN_MASK)
+/*! @} */
+
+/*! @name AUTOCMD12_ERR_STATUS - Auto CMD12 Error Status */
+/*! @{ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE_MASK   (0x1U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE_SHIFT  (0U)
+/*! AC12NE - Auto CMD12 Not Executed
+ *  0b1..Not executed
+ *  0b0..Executed
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12NE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12NE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_MASK  (0x2U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_SHIFT (1U)
+/*! AC12TOE - Auto CMD12 / 23 Timeout Error
+ *  0b1..Time out
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_MASK  (0x4U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_SHIFT (2U)
+/*! AC12EBE - Auto CMD12 / 23 End Bit Error
+ *  0b1..End Bit Error Generated
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE_MASK   (0x8U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE_SHIFT  (3U)
+/*! AC12CE - Auto CMD12 / 23 CRC Error
+ *  0b1..CRC Error Met in Auto CMD12/23 Response
+ *  0b0..No CRC error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12CE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12CE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE_MASK   (0x10U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE_SHIFT  (4U)
+/*! AC12IE - Auto CMD12 / 23 Index Error
+ *  0b1..Error, the CMD index in response is not CMD12/23
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12IE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12IE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_MASK (0x80U)
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_SHIFT (7U)
+/*! CNIBAC12E - Command Not Issued By Auto CMD12 Error
+ *  0b1..Not Issued
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E(x)  (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_MASK)
+/*! @} */
+
+/*! @name HOST_CTRL_CAP - Host Controller Capabilities */
+/*! @{ */
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_MASK   (0x4U)
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_SHIFT  (2U)
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_SHIFT)) & USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_MASK)
+#define USDHC_HOST_CTRL_CAP_MBL_MASK             (0x70000U)
+#define USDHC_HOST_CTRL_CAP_MBL_SHIFT            (16U)
+/*! MBL - Max Block Length
+ *  0b000..512 bytes
+ *  0b001..1024 bytes
+ *  0b010..2048 bytes
+ *  0b011..4096 bytes
+ */
+#define USDHC_HOST_CTRL_CAP_MBL(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_MBL_SHIFT)) & USDHC_HOST_CTRL_CAP_MBL_MASK)
+#define USDHC_HOST_CTRL_CAP_ADMAS_MASK           (0x100000U)
+#define USDHC_HOST_CTRL_CAP_ADMAS_SHIFT          (20U)
+/*! ADMAS - ADMA Support
+ *  0b1..Advanced DMA Supported
+ *  0b0..Advanced DMA Not supported
+ */
+#define USDHC_HOST_CTRL_CAP_ADMAS(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_ADMAS_SHIFT)) & USDHC_HOST_CTRL_CAP_ADMAS_MASK)
+#define USDHC_HOST_CTRL_CAP_HSS_MASK             (0x200000U)
+#define USDHC_HOST_CTRL_CAP_HSS_SHIFT            (21U)
+/*! HSS - High Speed Support
+ *  0b1..High Speed Supported
+ *  0b0..High Speed Not Supported
+ */
+#define USDHC_HOST_CTRL_CAP_HSS(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_HSS_SHIFT)) & USDHC_HOST_CTRL_CAP_HSS_MASK)
+#define USDHC_HOST_CTRL_CAP_DMAS_MASK            (0x400000U)
+#define USDHC_HOST_CTRL_CAP_DMAS_SHIFT           (22U)
+/*! DMAS - DMA Support
+ *  0b1..DMA Supported
+ *  0b0..DMA not supported
+ */
+#define USDHC_HOST_CTRL_CAP_DMAS(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_DMAS_SHIFT)) & USDHC_HOST_CTRL_CAP_DMAS_MASK)
+#define USDHC_HOST_CTRL_CAP_SRS_MASK             (0x800000U)
+#define USDHC_HOST_CTRL_CAP_SRS_SHIFT            (23U)
+/*! SRS - Suspend / Resume Support
+ *  0b1..Supported
+ *  0b0..Not supported
+ */
+#define USDHC_HOST_CTRL_CAP_SRS(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_SRS_SHIFT)) & USDHC_HOST_CTRL_CAP_SRS_MASK)
+#define USDHC_HOST_CTRL_CAP_VS33_MASK            (0x1000000U)
+#define USDHC_HOST_CTRL_CAP_VS33_SHIFT           (24U)
+/*! VS33 - Voltage Support 3.3V
+ *  0b1..3.3V supported
+ *  0b0..3.3V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS33(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS33_SHIFT)) & USDHC_HOST_CTRL_CAP_VS33_MASK)
+#define USDHC_HOST_CTRL_CAP_VS30_MASK            (0x2000000U)
+#define USDHC_HOST_CTRL_CAP_VS30_SHIFT           (25U)
+/*! VS30 - Voltage Support 3.0 V
+ *  0b1..3.0V supported
+ *  0b0..3.0V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS30(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS30_SHIFT)) & USDHC_HOST_CTRL_CAP_VS30_MASK)
+#define USDHC_HOST_CTRL_CAP_VS18_MASK            (0x4000000U)
+#define USDHC_HOST_CTRL_CAP_VS18_SHIFT           (26U)
+/*! VS18 - Voltage Support 1.8 V
+ *  0b1..1.8V supported
+ *  0b0..1.8V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS18(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS18_SHIFT)) & USDHC_HOST_CTRL_CAP_VS18_MASK)
+/*! @} */
+
+/*! @name WTMK_LVL - Watermark Level */
+/*! @{ */
+#define USDHC_WTMK_LVL_RD_WML_MASK               (0xFFU)
+#define USDHC_WTMK_LVL_RD_WML_SHIFT              (0U)
+#define USDHC_WTMK_LVL_RD_WML(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_RD_WML_SHIFT)) & USDHC_WTMK_LVL_RD_WML_MASK)
+#define USDHC_WTMK_LVL_RD_BRST_LEN_MASK          (0x1F00U)
+#define USDHC_WTMK_LVL_RD_BRST_LEN_SHIFT         (8U)
+#define USDHC_WTMK_LVL_RD_BRST_LEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_RD_BRST_LEN_SHIFT)) & USDHC_WTMK_LVL_RD_BRST_LEN_MASK)
+#define USDHC_WTMK_LVL_WR_WML_MASK               (0xFF0000U)
+#define USDHC_WTMK_LVL_WR_WML_SHIFT              (16U)
+#define USDHC_WTMK_LVL_WR_WML(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_WR_WML_SHIFT)) & USDHC_WTMK_LVL_WR_WML_MASK)
+#define USDHC_WTMK_LVL_WR_BRST_LEN_MASK          (0x1F000000U)
+#define USDHC_WTMK_LVL_WR_BRST_LEN_SHIFT         (24U)
+#define USDHC_WTMK_LVL_WR_BRST_LEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_WR_BRST_LEN_SHIFT)) & USDHC_WTMK_LVL_WR_BRST_LEN_MASK)
+/*! @} */
+
+/*! @name MIX_CTRL - Mixer Control */
+/*! @{ */
+#define USDHC_MIX_CTRL_DMAEN_MASK                (0x1U)
+#define USDHC_MIX_CTRL_DMAEN_SHIFT               (0U)
+/*! DMAEN - DMA Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_DMAEN(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DMAEN_SHIFT)) & USDHC_MIX_CTRL_DMAEN_MASK)
+#define USDHC_MIX_CTRL_BCEN_MASK                 (0x2U)
+#define USDHC_MIX_CTRL_BCEN_SHIFT                (1U)
+/*! BCEN - Block Count Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_BCEN(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_BCEN_SHIFT)) & USDHC_MIX_CTRL_BCEN_MASK)
+#define USDHC_MIX_CTRL_AC12EN_MASK               (0x4U)
+#define USDHC_MIX_CTRL_AC12EN_SHIFT              (2U)
+/*! AC12EN - Auto CMD12 Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_AC12EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_AC12EN_SHIFT)) & USDHC_MIX_CTRL_AC12EN_MASK)
+#define USDHC_MIX_CTRL_DDR_EN_MASK               (0x8U)
+#define USDHC_MIX_CTRL_DDR_EN_SHIFT              (3U)
+#define USDHC_MIX_CTRL_DDR_EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DDR_EN_SHIFT)) & USDHC_MIX_CTRL_DDR_EN_MASK)
+#define USDHC_MIX_CTRL_DTDSEL_MASK               (0x10U)
+#define USDHC_MIX_CTRL_DTDSEL_SHIFT              (4U)
+/*! DTDSEL - Data Transfer Direction Select
+ *  0b1..Read (Card to Host)
+ *  0b0..Write (Host to Card)
+ */
+#define USDHC_MIX_CTRL_DTDSEL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DTDSEL_SHIFT)) & USDHC_MIX_CTRL_DTDSEL_MASK)
+#define USDHC_MIX_CTRL_MSBSEL_MASK               (0x20U)
+#define USDHC_MIX_CTRL_MSBSEL_SHIFT              (5U)
+/*! MSBSEL - Multi / Single Block Select
+ *  0b1..Multiple Blocks
+ *  0b0..Single Block
+ */
+#define USDHC_MIX_CTRL_MSBSEL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_MSBSEL_SHIFT)) & USDHC_MIX_CTRL_MSBSEL_MASK)
+#define USDHC_MIX_CTRL_NIBBLE_POS_MASK           (0x40U)
+#define USDHC_MIX_CTRL_NIBBLE_POS_SHIFT          (6U)
+#define USDHC_MIX_CTRL_NIBBLE_POS(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_NIBBLE_POS_SHIFT)) & USDHC_MIX_CTRL_NIBBLE_POS_MASK)
+#define USDHC_MIX_CTRL_AC23EN_MASK               (0x80U)
+#define USDHC_MIX_CTRL_AC23EN_SHIFT              (7U)
+#define USDHC_MIX_CTRL_AC23EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_AC23EN_SHIFT)) & USDHC_MIX_CTRL_AC23EN_MASK)
+/*! @} */
+
+/*! @name FORCE_EVENT - Force Event */
+/*! @{ */
+#define USDHC_FORCE_EVENT_FEVTAC12NE_MASK        (0x1U)
+#define USDHC_FORCE_EVENT_FEVTAC12NE_SHIFT       (0U)
+#define USDHC_FORCE_EVENT_FEVTAC12NE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12NE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12NE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE_MASK       (0x2U)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE_SHIFT      (1U)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12TOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12TOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12CE_MASK        (0x4U)
+#define USDHC_FORCE_EVENT_FEVTAC12CE_SHIFT       (2U)
+#define USDHC_FORCE_EVENT_FEVTAC12CE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12CE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12CE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE_MASK       (0x8U)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE_SHIFT      (3U)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12EBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12EBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12IE_MASK        (0x10U)
+#define USDHC_FORCE_EVENT_FEVTAC12IE_SHIFT       (4U)
+#define USDHC_FORCE_EVENT_FEVTAC12IE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12IE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12IE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E_MASK     (0x80U)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E_SHIFT    (7U)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCNIBAC12E_SHIFT)) & USDHC_FORCE_EVENT_FEVTCNIBAC12E_MASK)
+#define USDHC_FORCE_EVENT_FEVTCTOE_MASK          (0x10000U)
+#define USDHC_FORCE_EVENT_FEVTCTOE_SHIFT         (16U)
+#define USDHC_FORCE_EVENT_FEVTCTOE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCTOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCTOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCCE_MASK           (0x20000U)
+#define USDHC_FORCE_EVENT_FEVTCCE_SHIFT          (17U)
+#define USDHC_FORCE_EVENT_FEVTCCE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCCE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCCE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCEBE_MASK          (0x40000U)
+#define USDHC_FORCE_EVENT_FEVTCEBE_SHIFT         (18U)
+#define USDHC_FORCE_EVENT_FEVTCEBE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCEBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCEBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCIE_MASK           (0x80000U)
+#define USDHC_FORCE_EVENT_FEVTCIE_SHIFT          (19U)
+#define USDHC_FORCE_EVENT_FEVTCIE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCIE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCIE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDTOE_MASK          (0x100000U)
+#define USDHC_FORCE_EVENT_FEVTDTOE_SHIFT         (20U)
+#define USDHC_FORCE_EVENT_FEVTDTOE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDTOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDTOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDCE_MASK           (0x200000U)
+#define USDHC_FORCE_EVENT_FEVTDCE_SHIFT          (21U)
+#define USDHC_FORCE_EVENT_FEVTDCE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDCE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDCE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDEBE_MASK          (0x400000U)
+#define USDHC_FORCE_EVENT_FEVTDEBE_SHIFT         (22U)
+#define USDHC_FORCE_EVENT_FEVTDEBE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDEBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDEBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12E_MASK         (0x1000000U)
+#define USDHC_FORCE_EVENT_FEVTAC12E_SHIFT        (24U)
+#define USDHC_FORCE_EVENT_FEVTAC12E(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12E_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12E_MASK)
+#define USDHC_FORCE_EVENT_FEVTDMAE_MASK          (0x10000000U)
+#define USDHC_FORCE_EVENT_FEVTDMAE_SHIFT         (28U)
+#define USDHC_FORCE_EVENT_FEVTDMAE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDMAE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDMAE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCINT_MASK          (0x80000000U)
+#define USDHC_FORCE_EVENT_FEVTCINT_SHIFT         (31U)
+#define USDHC_FORCE_EVENT_FEVTCINT(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCINT_SHIFT)) & USDHC_FORCE_EVENT_FEVTCINT_MASK)
+/*! @} */
+
+/*! @name ADMA_ERR_STATUS - ADMA Error Status Register */
+/*! @{ */
+#define USDHC_ADMA_ERR_STATUS_ADMAES_MASK        (0x3U)
+#define USDHC_ADMA_ERR_STATUS_ADMAES_SHIFT       (0U)
+#define USDHC_ADMA_ERR_STATUS_ADMAES(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMAES_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMAES_MASK)
+#define USDHC_ADMA_ERR_STATUS_ADMALME_MASK       (0x4U)
+#define USDHC_ADMA_ERR_STATUS_ADMALME_SHIFT      (2U)
+/*! ADMALME - ADMA Length Mismatch Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_ADMA_ERR_STATUS_ADMALME(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMALME_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMALME_MASK)
+#define USDHC_ADMA_ERR_STATUS_ADMADCE_MASK       (0x8U)
+#define USDHC_ADMA_ERR_STATUS_ADMADCE_SHIFT      (3U)
+/*! ADMADCE - ADMA Descriptor Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_ADMA_ERR_STATUS_ADMADCE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMADCE_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMADCE_MASK)
+/*! @} */
+
+/*! @name ADMA_SYS_ADDR - ADMA System Address */
+/*! @{ */
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR_MASK        (0xFFFFFFFCU)
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR_SHIFT       (2U)
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_SYS_ADDR_ADS_ADDR_SHIFT)) & USDHC_ADMA_SYS_ADDR_ADS_ADDR_MASK)
+/*! @} */
+
+/*! @name VEND_SPEC - Vendor Specific Register */
+/*! @{ */
+#define USDHC_VEND_SPEC_VSELECT_MASK             (0x2U)
+#define USDHC_VEND_SPEC_VSELECT_SHIFT            (1U)
+/*! VSELECT - Voltage Selection
+ *  0b1..Change the voltage to low voltage range, around 1.8 V
+ *  0b0..Change the voltage to high voltage range, around 3.0 V
+ */
+#define USDHC_VEND_SPEC_VSELECT(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_VSELECT_SHIFT)) & USDHC_VEND_SPEC_VSELECT_MASK)
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN_MASK     (0x4U)
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN_SHIFT    (2U)
+/*! CONFLICT_CHK_EN - Conflict check enable.
+ *  0b0..Conflict check disable
+ *  0b1..Conflict check enable
+ */
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CONFLICT_CHK_EN_SHIFT)) & USDHC_VEND_SPEC_CONFLICT_CHK_EN_MASK)
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_MASK  (0x8U)
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_SHIFT (3U)
+/*! AC12_WR_CHKBUSY_EN - AC12_WR_CHKBUSY_EN
+ *  0b0..Do not check busy after auto CMD12 for write data packet
+ *  0b1..Check busy after auto CMD12 for write data packet
+ */
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_SHIFT)) & USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_MASK)
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON_MASK        (0x100U)
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON_SHIFT       (8U)
+/*! FRC_SDCLK_ON - FRC_SDCLK_ON
+ *  0b0..CLK active or inactive is fully controlled by the hardware.
+ *  0b1..Force CLK active.
+ */
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_FRC_SDCLK_ON_SHIFT)) & USDHC_VEND_SPEC_FRC_SDCLK_ON_MASK)
+#define USDHC_VEND_SPEC_CRC_CHK_DIS_MASK         (0x8000U)
+#define USDHC_VEND_SPEC_CRC_CHK_DIS_SHIFT        (15U)
+/*! CRC_CHK_DIS - CRC Check Disable
+ *  0b0..Check CRC16 for every read data packet and check CRC bits for every write data packet
+ *  0b1..Ignore CRC16 check for every read data packet and ignore CRC bits check for every write data packet
+ */
+#define USDHC_VEND_SPEC_CRC_CHK_DIS(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CRC_CHK_DIS_SHIFT)) & USDHC_VEND_SPEC_CRC_CHK_DIS_MASK)
+#define USDHC_VEND_SPEC_CMD_BYTE_EN_MASK         (0x80000000U)
+#define USDHC_VEND_SPEC_CMD_BYTE_EN_SHIFT        (31U)
+/*! CMD_BYTE_EN - CMD_BYTE_EN
+ *  0b0..Disable
+ *  0b1..Enable
+ */
+#define USDHC_VEND_SPEC_CMD_BYTE_EN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CMD_BYTE_EN_SHIFT)) & USDHC_VEND_SPEC_CMD_BYTE_EN_MASK)
+/*! @} */
+
+/*! @name MMC_BOOT - MMC Boot Register */
+/*! @{ */
+#define USDHC_MMC_BOOT_DTOCV_ACK_MASK            (0xFU)
+#define USDHC_MMC_BOOT_DTOCV_ACK_SHIFT           (0U)
+/*! DTOCV_ACK - DTOCV_ACK
+ *  0b0000..SDCLK x 2^14
+ *  0b0001..SDCLK x 2^15
+ *  0b0010..SDCLK x 2^16
+ *  0b0011..SDCLK x 2^17
+ *  0b0100..SDCLK x 2^18
+ *  0b0101..SDCLK x 2^19
+ *  0b0110..SDCLK x 2^20
+ *  0b0111..SDCLK x 2^21
+ *  0b1110..SDCLK x 2^28
+ *  0b1111..SDCLK x 2^29
+ */
+#define USDHC_MMC_BOOT_DTOCV_ACK(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_DTOCV_ACK_SHIFT)) & USDHC_MMC_BOOT_DTOCV_ACK_MASK)
+#define USDHC_MMC_BOOT_BOOT_ACK_MASK             (0x10U)
+#define USDHC_MMC_BOOT_BOOT_ACK_SHIFT            (4U)
+/*! BOOT_ACK - BOOT_ACK
+ *  0b0..No ack
+ *  0b1..Ack
+ */
+#define USDHC_MMC_BOOT_BOOT_ACK(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_ACK_SHIFT)) & USDHC_MMC_BOOT_BOOT_ACK_MASK)
+#define USDHC_MMC_BOOT_BOOT_MODE_MASK            (0x20U)
+#define USDHC_MMC_BOOT_BOOT_MODE_SHIFT           (5U)
+/*! BOOT_MODE - BOOT_MODE
+ *  0b0..Normal boot
+ *  0b1..Alternative boot
+ */
+#define USDHC_MMC_BOOT_BOOT_MODE(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_MODE_SHIFT)) & USDHC_MMC_BOOT_BOOT_MODE_MASK)
+#define USDHC_MMC_BOOT_BOOT_EN_MASK              (0x40U)
+#define USDHC_MMC_BOOT_BOOT_EN_SHIFT             (6U)
+/*! BOOT_EN - BOOT_EN
+ *  0b0..Fast boot disable
+ *  0b1..Fast boot enable
+ */
+#define USDHC_MMC_BOOT_BOOT_EN(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_EN_SHIFT)) & USDHC_MMC_BOOT_BOOT_EN_MASK)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN_MASK         (0x80U)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN_SHIFT        (7U)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_AUTO_SABG_EN_SHIFT)) & USDHC_MMC_BOOT_AUTO_SABG_EN_MASK)
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT_MASK     (0x100U)
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT_SHIFT    (8U)
+/*! DISABLE_TIME_OUT - Disable Time Out
+ *  0b0..Enable time out
+ *  0b1..Disable time out
+ */
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_DISABLE_TIME_OUT_SHIFT)) & USDHC_MMC_BOOT_DISABLE_TIME_OUT_MASK)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT_MASK         (0xFFFF0000U)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT_SHIFT        (16U)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_BLK_CNT_SHIFT)) & USDHC_MMC_BOOT_BOOT_BLK_CNT_MASK)
+/*! @} */
+
+/*! @name VEND_SPEC2 - Vendor Specific 2 Register */
+/*! @{ */
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST_MASK   (0x8U)
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST_SHIFT  (3U)
+/*! CARD_INT_D3_TEST - Card Interrupt Detection Test
+ *  0b0..Check the card interrupt only when DATA3 is high.
+ *  0b1..Check the card interrupt by ignoring the status of DATA3.
+ */
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_CARD_INT_D3_TEST_SHIFT)) & USDHC_VEND_SPEC2_CARD_INT_D3_TEST_MASK)
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_MASK    (0x1000U)
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_SHIFT   (12U)
+/*! ACMD23_ARGU2_EN - Argument2 register enable for ACMD23
+ *  0b1..Argument2 register enable for ACMD23 sharing with SDMA system address register. Default is enable.
+ *  0b0..Disable
+ */
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_SHIFT)) & USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_MASK)
+#define USDHC_VEND_SPEC2_AHB_RST_MASK            (0x4000U)
+#define USDHC_VEND_SPEC2_AHB_RST_SHIFT           (14U)
+#define USDHC_VEND_SPEC2_AHB_RST(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_AHB_RST_SHIFT)) & USDHC_VEND_SPEC2_AHB_RST_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USDHC_Register_Masks */
+
+
+/* USDHC - Peripheral instance base addresses */
+/** Peripheral USDHC0 base address */
+#define USDHC0_BASE                              (0x4003E000u)
+/** Peripheral USDHC0 base pointer */
+#define USDHC0                                   ((USDHC_Type *)USDHC0_BASE)
+/** Array initializer of USDHC peripheral base addresses */
+#define USDHC_BASE_ADDRS                         { USDHC0_BASE }
+/** Array initializer of USDHC peripheral base pointers */
+#define USDHC_BASE_PTRS                          { USDHC0 }
+/** Interrupt vectors for the USDHC peripheral type */
+#define USDHC_IRQS                               { USDHC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group USDHC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- VREF Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup VREF_Peripheral_Access_Layer VREF Peripheral Access Layer
+ * @{
+ */
+
+/** VREF - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t TRM;                                /**< VREF Trim Register, offset: 0x0 */
+  __IO uint8_t SC;                                 /**< VREF Status and Control Register, offset: 0x1 */
+       uint8_t RESERVED_0[3];
+  __IO uint8_t TRM4;                               /**< VREF Trim 2.1V Register, offset: 0x5 */
+} VREF_Type;
+
+/* ----------------------------------------------------------------------------
+   -- VREF Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup VREF_Register_Masks VREF Register Masks
+ * @{
+ */
+
+/*! @name TRM - VREF Trim Register */
+/*! @{ */
+#define VREF_TRM_TRIM_MASK                       (0x3FU)
+#define VREF_TRM_TRIM_SHIFT                      (0U)
+/*! TRIM - Trim bits
+ *  0b000000..Min
+ *  0b111111..Max
+ */
+#define VREF_TRM_TRIM(x)                         (((uint8_t)(((uint8_t)(x)) << VREF_TRM_TRIM_SHIFT)) & VREF_TRM_TRIM_MASK)
+#define VREF_TRM_CHOPEN_MASK                     (0x40U)
+#define VREF_TRM_CHOPEN_SHIFT                    (6U)
+/*! CHOPEN - Chop oscillator enable. When set, the internal chopping operation is enabled and the internal analog offset will be minimized.
+ *  0b0..Chop oscillator is disabled.
+ *  0b1..Chop oscillator is enabled.
+ */
+#define VREF_TRM_CHOPEN(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_TRM_CHOPEN_SHIFT)) & VREF_TRM_CHOPEN_MASK)
+/*! @} */
+
+/*! @name SC - VREF Status and Control Register */
+/*! @{ */
+#define VREF_SC_MODE_LV_MASK                     (0x3U)
+#define VREF_SC_MODE_LV_SHIFT                    (0U)
+/*! MODE_LV - Buffer Mode selection
+ *  0b00..Bandgap on only, for stabilization and startup
+ *  0b01..High power buffer mode enabled
+ *  0b10..Low-power buffer mode enabled
+ *  0b11..Reserved
+ */
+#define VREF_SC_MODE_LV(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_SC_MODE_LV_SHIFT)) & VREF_SC_MODE_LV_MASK)
+#define VREF_SC_VREFST_MASK                      (0x4U)
+#define VREF_SC_VREFST_SHIFT                     (2U)
+/*! VREFST - Internal Voltage Reference stable
+ *  0b0..The module is disabled or not stable.
+ *  0b1..The module is stable.
+ */
+#define VREF_SC_VREFST(x)                        (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFST_SHIFT)) & VREF_SC_VREFST_MASK)
+#define VREF_SC_ICOMPEN_MASK                     (0x20U)
+#define VREF_SC_ICOMPEN_SHIFT                    (5U)
+/*! ICOMPEN - Second order curvature compensation enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define VREF_SC_ICOMPEN(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_SC_ICOMPEN_SHIFT)) & VREF_SC_ICOMPEN_MASK)
+#define VREF_SC_REGEN_MASK                       (0x40U)
+#define VREF_SC_REGEN_SHIFT                      (6U)
+/*! REGEN - Regulator enable
+ *  0b0..Internal 1.75 V regulator is disabled.
+ *  0b1..Internal 1.75 V regulator is enabled.
+ */
+#define VREF_SC_REGEN(x)                         (((uint8_t)(((uint8_t)(x)) << VREF_SC_REGEN_SHIFT)) & VREF_SC_REGEN_MASK)
+#define VREF_SC_VREFEN_MASK                      (0x80U)
+#define VREF_SC_VREFEN_SHIFT                     (7U)
+/*! VREFEN - Internal Voltage Reference enable
+ *  0b0..The module is disabled.
+ *  0b1..The module is enabled.
+ */
+#define VREF_SC_VREFEN(x)                        (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFEN_SHIFT)) & VREF_SC_VREFEN_MASK)
+/*! @} */
+
+/*! @name TRM4 - VREF Trim 2.1V Register */
+/*! @{ */
+#define VREF_TRM4_TRIM2V1_MASK                   (0x3FU)
+#define VREF_TRM4_TRIM2V1_SHIFT                  (0U)
+/*! TRIM2V1 - VREF 2.1V Trim Bits
+ *  0b000000..Max
+ *  0b111111..Min
+ */
+#define VREF_TRM4_TRIM2V1(x)                     (((uint8_t)(((uint8_t)(x)) << VREF_TRM4_TRIM2V1_SHIFT)) & VREF_TRM4_TRIM2V1_MASK)
+#define VREF_TRM4_VREF2V1_EN_MASK                (0x80U)
+#define VREF_TRM4_VREF2V1_EN_SHIFT               (7U)
+/*! VREF2V1_EN - Internal Voltage Reference (2.1V) Enable
+ *  0b0..VREF 2.1V is enabled
+ *  0b1..VREF 2.1V is disabled
+ */
+#define VREF_TRM4_VREF2V1_EN(x)                  (((uint8_t)(((uint8_t)(x)) << VREF_TRM4_VREF2V1_EN_SHIFT)) & VREF_TRM4_VREF2V1_EN_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group VREF_Register_Masks */
+
+
+/* VREF - Peripheral instance base addresses */
+/** Peripheral VREF base address */
+#define VREF_BASE                                (0x4004D000u)
+/** Peripheral VREF base pointer */
+#define VREF                                     ((VREF_Type *)VREF_BASE)
+/** Array initializer of VREF peripheral base addresses */
+#define VREF_BASE_ADDRS                          { VREF_BASE }
+/** Array initializer of VREF peripheral base pointers */
+#define VREF_BASE_PTRS                           { VREF }
+
+/*!
+ * @}
+ */ /* end of group VREF_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- WDOG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup WDOG_Peripheral_Access_Layer WDOG Peripheral Access Layer
+ * @{
+ */
+
+/** WDOG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CS;                                /**< Watchdog Control and Status Register, offset: 0x0 */
+  __IO uint32_t CNT;                               /**< Watchdog Counter Register, offset: 0x4 */
+  __IO uint32_t TOVAL;                             /**< Watchdog Timeout Value Register, offset: 0x8 */
+  __IO uint32_t WIN;                               /**< Watchdog Window Register, offset: 0xC */
+} WDOG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- WDOG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup WDOG_Register_Masks WDOG Register Masks
+ * @{
+ */
+
+/*! @name CS - Watchdog Control and Status Register */
+/*! @{ */
+#define WDOG_CS_STOP_MASK                        (0x1U)
+#define WDOG_CS_STOP_SHIFT                       (0U)
+/*! STOP - Stop Enable
+ *  0b0..Watchdog disabled in chip stop mode.
+ *  0b1..Watchdog enabled in chip stop mode.
+ */
+#define WDOG_CS_STOP(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_STOP_SHIFT)) & WDOG_CS_STOP_MASK)
+#define WDOG_CS_WAIT_MASK                        (0x2U)
+#define WDOG_CS_WAIT_SHIFT                       (1U)
+/*! WAIT - Wait Enable
+ *  0b0..Watchdog disabled in chip wait mode.
+ *  0b1..Watchdog enabled in chip wait mode.
+ */
+#define WDOG_CS_WAIT(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_WAIT_SHIFT)) & WDOG_CS_WAIT_MASK)
+#define WDOG_CS_DBG_MASK                         (0x4U)
+#define WDOG_CS_DBG_SHIFT                        (2U)
+/*! DBG - Debug Enable
+ *  0b0..Watchdog disabled in chip debug mode.
+ *  0b1..Watchdog enabled in chip debug mode.
+ */
+#define WDOG_CS_DBG(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_DBG_SHIFT)) & WDOG_CS_DBG_MASK)
+#define WDOG_CS_TST_MASK                         (0x18U)
+#define WDOG_CS_TST_SHIFT                        (3U)
+/*! TST - Watchdog Test
+ *  0b00..Watchdog test mode disabled.
+ *  0b01..Watchdog user mode enabled. (Watchdog test mode disabled.) After testing the watchdog, software should use this setting to indicate that the watchdog is functioning normally in user mode.
+ *  0b10..Watchdog test mode enabled, only the low byte is used. CNT[CNTLOW] is compared with TOVAL[TOVALLOW].
+ *  0b11..Watchdog test mode enabled, only the high byte is used. CNT[CNTHIGH] is compared with TOVAL[TOVALHIGH].
+ */
+#define WDOG_CS_TST(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_TST_SHIFT)) & WDOG_CS_TST_MASK)
+#define WDOG_CS_UPDATE_MASK                      (0x20U)
+#define WDOG_CS_UPDATE_SHIFT                     (5U)
+/*! UPDATE - Allow updates
+ *  0b0..Updates not allowed. After the initial configuration, the watchdog cannot be later modified without forcing a reset.
+ *  0b1..Updates allowed. Software can modify the watchdog configuration registers within 128 bus clocks after performing the unlock write sequence.
+ */
+#define WDOG_CS_UPDATE(x)                        (((uint32_t)(((uint32_t)(x)) << WDOG_CS_UPDATE_SHIFT)) & WDOG_CS_UPDATE_MASK)
+#define WDOG_CS_INT_MASK                         (0x40U)
+#define WDOG_CS_INT_SHIFT                        (6U)
+/*! INT - Watchdog Interrupt
+ *  0b0..Watchdog interrupts are disabled. Watchdog resets are not delayed.
+ *  0b1..Watchdog interrupts are enabled. Watchdog resets are delayed by 128 bus clocks from the interrupt vector fetch.
+ */
+#define WDOG_CS_INT(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_INT_SHIFT)) & WDOG_CS_INT_MASK)
+#define WDOG_CS_EN_MASK                          (0x80U)
+#define WDOG_CS_EN_SHIFT                         (7U)
+/*! EN - Watchdog Enable
+ *  0b0..Watchdog disabled.
+ *  0b1..Watchdog enabled.
+ */
+#define WDOG_CS_EN(x)                            (((uint32_t)(((uint32_t)(x)) << WDOG_CS_EN_SHIFT)) & WDOG_CS_EN_MASK)
+#define WDOG_CS_CLK_MASK                         (0x300U)
+#define WDOG_CS_CLK_SHIFT                        (8U)
+/*! CLK - Watchdog Clock
+ *  0b00..Bus clock
+ *  0b01..LPO clock
+ *  0b10..INTCLK (internal clock)
+ *  0b11..ERCLK (external reference clock)
+ */
+#define WDOG_CS_CLK(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_CLK_SHIFT)) & WDOG_CS_CLK_MASK)
+#define WDOG_CS_RCS_MASK                         (0x400U)
+#define WDOG_CS_RCS_SHIFT                        (10U)
+/*! RCS - Reconfiguration Success
+ *  0b0..Reconfiguring WDOG.
+ *  0b1..Reconfiguration is successful.
+ */
+#define WDOG_CS_RCS(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_RCS_SHIFT)) & WDOG_CS_RCS_MASK)
+#define WDOG_CS_ULK_MASK                         (0x800U)
+#define WDOG_CS_ULK_SHIFT                        (11U)
+/*! ULK - Unlock status
+ *  0b0..WDOG is locked.
+ *  0b1..WDOG is unlocked.
+ */
+#define WDOG_CS_ULK(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_ULK_SHIFT)) & WDOG_CS_ULK_MASK)
+#define WDOG_CS_PRES_MASK                        (0x1000U)
+#define WDOG_CS_PRES_SHIFT                       (12U)
+/*! PRES - Watchdog prescaler
+ *  0b0..256 prescaler disabled.
+ *  0b1..256 prescaler enabled.
+ */
+#define WDOG_CS_PRES(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_PRES_SHIFT)) & WDOG_CS_PRES_MASK)
+#define WDOG_CS_CMD32EN_MASK                     (0x2000U)
+#define WDOG_CS_CMD32EN_SHIFT                    (13U)
+/*! CMD32EN - Enables or disables WDOG support for 32-bit (otherwise 16-bit or 8-bit) refresh/unlock command write words
+ *  0b0..Disables support for 32-bit refresh/unlock command write words. Only 16-bit or 8-bit is supported.
+ *  0b1..Enables support for 32-bit refresh/unlock command write words. 16-bit or 8-bit is NOT supported.
+ */
+#define WDOG_CS_CMD32EN(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_CS_CMD32EN_SHIFT)) & WDOG_CS_CMD32EN_MASK)
+#define WDOG_CS_FLG_MASK                         (0x4000U)
+#define WDOG_CS_FLG_SHIFT                        (14U)
+/*! FLG - Watchdog Interrupt Flag
+ *  0b0..No interrupt occurred.
+ *  0b1..An interrupt occurred.
+ */
+#define WDOG_CS_FLG(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_FLG_SHIFT)) & WDOG_CS_FLG_MASK)
+#define WDOG_CS_WIN_MASK                         (0x8000U)
+#define WDOG_CS_WIN_SHIFT                        (15U)
+/*! WIN - Watchdog Window
+ *  0b0..Window mode disabled.
+ *  0b1..Window mode enabled.
+ */
+#define WDOG_CS_WIN(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_WIN_SHIFT)) & WDOG_CS_WIN_MASK)
+/*! @} */
+
+/*! @name CNT - Watchdog Counter Register */
+/*! @{ */
+#define WDOG_CNT_CNTLOW_MASK                     (0xFFU)
+#define WDOG_CNT_CNTLOW_SHIFT                    (0U)
+#define WDOG_CNT_CNTLOW(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_CNT_CNTLOW_SHIFT)) & WDOG_CNT_CNTLOW_MASK)
+#define WDOG_CNT_CNTHIGH_MASK                    (0xFF00U)
+#define WDOG_CNT_CNTHIGH_SHIFT                   (8U)
+#define WDOG_CNT_CNTHIGH(x)                      (((uint32_t)(((uint32_t)(x)) << WDOG_CNT_CNTHIGH_SHIFT)) & WDOG_CNT_CNTHIGH_MASK)
+/*! @} */
+
+/*! @name TOVAL - Watchdog Timeout Value Register */
+/*! @{ */
+#define WDOG_TOVAL_TOVALLOW_MASK                 (0xFFU)
+#define WDOG_TOVAL_TOVALLOW_SHIFT                (0U)
+#define WDOG_TOVAL_TOVALLOW(x)                   (((uint32_t)(((uint32_t)(x)) << WDOG_TOVAL_TOVALLOW_SHIFT)) & WDOG_TOVAL_TOVALLOW_MASK)
+#define WDOG_TOVAL_TOVALHIGH_MASK                (0xFF00U)
+#define WDOG_TOVAL_TOVALHIGH_SHIFT               (8U)
+#define WDOG_TOVAL_TOVALHIGH(x)                  (((uint32_t)(((uint32_t)(x)) << WDOG_TOVAL_TOVALHIGH_SHIFT)) & WDOG_TOVAL_TOVALHIGH_MASK)
+/*! @} */
+
+/*! @name WIN - Watchdog Window Register */
+/*! @{ */
+#define WDOG_WIN_WINLOW_MASK                     (0xFFU)
+#define WDOG_WIN_WINLOW_SHIFT                    (0U)
+#define WDOG_WIN_WINLOW(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_WIN_WINLOW_SHIFT)) & WDOG_WIN_WINLOW_MASK)
+#define WDOG_WIN_WINHIGH_MASK                    (0xFF00U)
+#define WDOG_WIN_WINHIGH_SHIFT                   (8U)
+#define WDOG_WIN_WINHIGH(x)                      (((uint32_t)(((uint32_t)(x)) << WDOG_WIN_WINHIGH_SHIFT)) & WDOG_WIN_WINHIGH_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group WDOG_Register_Masks */
+
+
+/* WDOG - Peripheral instance base addresses */
+/** Peripheral WDOG0 base address */
+#define WDOG0_BASE                               (0x4002A000u)
+/** Peripheral WDOG0 base pointer */
+#define WDOG0                                    ((WDOG_Type *)WDOG0_BASE)
+/** Peripheral WDOG1 base address */
+#define WDOG1_BASE                               (0x41026000u)
+/** Peripheral WDOG1 base pointer */
+#define WDOG1                                    ((WDOG_Type *)WDOG1_BASE)
+/** Array initializer of WDOG peripheral base addresses */
+#define WDOG_BASE_ADDRS                          { WDOG0_BASE, WDOG1_BASE }
+/** Array initializer of WDOG peripheral base pointers */
+#define WDOG_BASE_PTRS                           { WDOG0, WDOG1 }
+/** Interrupt vectors for the WDOG peripheral type */
+#define WDOG_IRQS                                { WDOG0_IRQn, NotAvail_IRQn }
+/* Extra definition */
+#define WDOG_UPDATE_KEY                          (0xD928C520U)
+#define WDOG_REFRESH_KEY                         (0xB480A602U)
+
+
+/*!
+ * @}
+ */ /* end of group WDOG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XRDC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XRDC_Peripheral_Access_Layer XRDC Peripheral Access Layer
+ * @{
+ */
+
+/** XRDC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x0 */
+       uint8_t RESERVED_0[236];
+  __I  uint32_t HWCFG0;                            /**< Hardware Configuration Register 0, offset: 0xF0 */
+  __I  uint32_t HWCFG1;                            /**< Hardware Configuration Register 1, offset: 0xF4 */
+  __I  uint32_t HWCFG2;                            /**< Hardware Configuration Register 2, offset: 0xF8 */
+  __I  uint32_t HWCFG3;                            /**< Hardware Configuration Register 3, offset: 0xFC */
+  __I  uint8_t MDACFG[37];                         /**< Master Domain Assignment Configuration Register, array offset: 0x100, array step: 0x1 */
+       uint8_t RESERVED_1[27];
+  __I  uint8_t MRCFG[2];                           /**< Memory Region Configuration Register, array offset: 0x140, array step: 0x1 */
+       uint8_t RESERVED_2[186];
+  __IO uint32_t FDID;                              /**< Fault Domain ID, offset: 0x1FC */
+  __I  uint32_t DERRLOC[3];                        /**< Domain Error Location Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_3[500];
+  __IO uint32_t DERR_W[19][4];                     /**< Domain Error Word0 Register..Domain Error Word3 Register, array offset: 0x400, array step: index*0x10, index2*0x4 */
+       uint8_t RESERVED_4[464];
+  __IO uint32_t PID[37];                           /**< Process Identifier, array offset: 0x700, array step: 0x4 */
+       uint8_t RESERVED_5[108];
+  struct {                                         /* offset: 0x800, array step: 0x20 */
+    __IO uint32_t MDA_W[2];                          /**< Master Domain Assignment, array offset: 0x800, array step: index*0x20, index2*0x4 */
+         uint8_t RESERVED_0[24];
+  } MDA[37];
+       uint8_t RESERVED_6[864];
+  __IO uint32_t PDAC_W[289][2];                    /**< Peripheral Domain Access Control, array offset: 0x1000, array step: index*0x8, index2*0x4 */
+       uint8_t RESERVED_7[1784];
+  struct {                                         /* offset: 0x2000, array step: 0x20 */
+    __IO uint32_t MRGD_W[5];                         /**< Memory Region Descriptor, array offset: 0x2000, array step: index*0x20, index2*0x4 */
+         uint8_t RESERVED_0[12];
+  } MRGD[24];
+} XRDC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XRDC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XRDC_Register_Masks XRDC Register Masks
+ * @{
+ */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define XRDC_CR_GVLDM_MASK                       (0x1U)
+#define XRDC_CR_GVLDM_SHIFT                      (0U)
+/*! GVLDM - Global Valid MDACs(XRDC global enable/disable).
+ *  0b0..XRDC MDACs are disabled.
+ *  0b1..XRDC MDACs are enabled.
+ */
+#define XRDC_CR_GVLDM(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDM_SHIFT)) & XRDC_CR_GVLDM_MASK)
+#define XRDC_CR_HRL_MASK                         (0x1EU)
+#define XRDC_CR_HRL_SHIFT                        (1U)
+#define XRDC_CR_HRL(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_HRL_SHIFT)) & XRDC_CR_HRL_MASK)
+#define XRDC_CR_VAW_MASK                         (0x100U)
+#define XRDC_CR_VAW_SHIFT                        (8U)
+/*! VAW - Virtualization aware
+ *  0b0..Implementation is not virtualization aware.
+ *  0b1..Implementation is virtualization aware.
+ */
+#define XRDC_CR_VAW(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_VAW_SHIFT)) & XRDC_CR_VAW_MASK)
+#define XRDC_CR_GVLDP_MASK                       (0x4000U)
+#define XRDC_CR_GVLDP_SHIFT                      (14U)
+/*! GVLDP - Global Valid for PACs/MSCs
+ *  0b0..XRDC PACs/MSCs are disabled.
+ *  0b1..XRDC PACs/MSCs are enabled.
+ */
+#define XRDC_CR_GVLDP(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDP_SHIFT)) & XRDC_CR_GVLDP_MASK)
+#define XRDC_CR_GVLDC_MASK                       (0x8000U)
+#define XRDC_CR_GVLDC_SHIFT                      (15U)
+/*! GVLDC - Global Valid for MRCs
+ *  0b0..XRDC MRCs are disabled.
+ *  0b1..XRDC MRCs are enabled.
+ */
+#define XRDC_CR_GVLDC(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDC_SHIFT)) & XRDC_CR_GVLDC_MASK)
+#define XRDC_CR_LK1_MASK                         (0x40000000U)
+#define XRDC_CR_LK1_SHIFT                        (30U)
+/*! LK1 - 1-bit Lock
+ *  0b0..Register can be written by any secure privileged write.
+ *  0b1..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_CR_LK1(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_LK1_SHIFT)) & XRDC_CR_LK1_MASK)
+/*! @} */
+
+/*! @name HWCFG0 - Hardware Configuration Register 0 */
+/*! @{ */
+#define XRDC_HWCFG0_NDID_MASK                    (0xFFU)
+#define XRDC_HWCFG0_NDID_SHIFT                   (0U)
+#define XRDC_HWCFG0_NDID(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NDID_SHIFT)) & XRDC_HWCFG0_NDID_MASK)
+#define XRDC_HWCFG0_NMSTR_MASK                   (0xFF00U)
+#define XRDC_HWCFG0_NMSTR_SHIFT                  (8U)
+#define XRDC_HWCFG0_NMSTR(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NMSTR_SHIFT)) & XRDC_HWCFG0_NMSTR_MASK)
+#define XRDC_HWCFG0_NMRC_MASK                    (0xFF0000U)
+#define XRDC_HWCFG0_NMRC_SHIFT                   (16U)
+#define XRDC_HWCFG0_NMRC(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NMRC_SHIFT)) & XRDC_HWCFG0_NMRC_MASK)
+#define XRDC_HWCFG0_NPAC_MASK                    (0xF000000U)
+#define XRDC_HWCFG0_NPAC_SHIFT                   (24U)
+#define XRDC_HWCFG0_NPAC(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NPAC_SHIFT)) & XRDC_HWCFG0_NPAC_MASK)
+#define XRDC_HWCFG0_MID_MASK                     (0xF0000000U)
+#define XRDC_HWCFG0_MID_SHIFT                    (28U)
+#define XRDC_HWCFG0_MID(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_MID_SHIFT)) & XRDC_HWCFG0_MID_MASK)
+/*! @} */
+
+/*! @name HWCFG1 - Hardware Configuration Register 1 */
+/*! @{ */
+#define XRDC_HWCFG1_DID_MASK                     (0xFU)
+#define XRDC_HWCFG1_DID_SHIFT                    (0U)
+#define XRDC_HWCFG1_DID(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG1_DID_SHIFT)) & XRDC_HWCFG1_DID_MASK)
+/*! @} */
+
+/*! @name HWCFG2 - Hardware Configuration Register 2 */
+/*! @{ */
+#define XRDC_HWCFG2_PIDP0_MASK                   (0x1U)
+#define XRDC_HWCFG2_PIDP0_SHIFT                  (0U)
+/*! PIDP0 - Process identifier
+ *  0b0..Bus master 0 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 0 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP0(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP0_SHIFT)) & XRDC_HWCFG2_PIDP0_MASK)
+#define XRDC_HWCFG2_PIDP1_MASK                   (0x2U)
+#define XRDC_HWCFG2_PIDP1_SHIFT                  (1U)
+/*! PIDP1 - Process identifier
+ *  0b0..Bus master 1 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 1 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP1(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP1_SHIFT)) & XRDC_HWCFG2_PIDP1_MASK)
+#define XRDC_HWCFG2_PIDP2_MASK                   (0x4U)
+#define XRDC_HWCFG2_PIDP2_SHIFT                  (2U)
+/*! PIDP2 - Process identifier
+ *  0b0..Bus master 2 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 2 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP2(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP2_SHIFT)) & XRDC_HWCFG2_PIDP2_MASK)
+#define XRDC_HWCFG2_PIDP3_MASK                   (0x8U)
+#define XRDC_HWCFG2_PIDP3_SHIFT                  (3U)
+/*! PIDP3 - Process identifier
+ *  0b0..Bus master 3 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 3 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP3(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP3_SHIFT)) & XRDC_HWCFG2_PIDP3_MASK)
+#define XRDC_HWCFG2_PIDP4_MASK                   (0x10U)
+#define XRDC_HWCFG2_PIDP4_SHIFT                  (4U)
+/*! PIDP4 - Process identifier
+ *  0b0..Bus master 4 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 4 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP4(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP4_SHIFT)) & XRDC_HWCFG2_PIDP4_MASK)
+#define XRDC_HWCFG2_PIDP5_MASK                   (0x20U)
+#define XRDC_HWCFG2_PIDP5_SHIFT                  (5U)
+/*! PIDP5 - Process identifier
+ *  0b0..Bus master 5 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 5 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP5(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP5_SHIFT)) & XRDC_HWCFG2_PIDP5_MASK)
+#define XRDC_HWCFG2_PIDP6_MASK                   (0x40U)
+#define XRDC_HWCFG2_PIDP6_SHIFT                  (6U)
+/*! PIDP6 - Process identifier
+ *  0b0..Bus master 6 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 6 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP6(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP6_SHIFT)) & XRDC_HWCFG2_PIDP6_MASK)
+#define XRDC_HWCFG2_PIDP7_MASK                   (0x80U)
+#define XRDC_HWCFG2_PIDP7_SHIFT                  (7U)
+/*! PIDP7 - Process identifier
+ *  0b0..Bus master 7 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 7 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP7(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP7_SHIFT)) & XRDC_HWCFG2_PIDP7_MASK)
+#define XRDC_HWCFG2_PIDP8_MASK                   (0x100U)
+#define XRDC_HWCFG2_PIDP8_SHIFT                  (8U)
+/*! PIDP8 - Process identifier
+ *  0b0..Bus master 8 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 8 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP8(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP8_SHIFT)) & XRDC_HWCFG2_PIDP8_MASK)
+#define XRDC_HWCFG2_PIDP9_MASK                   (0x200U)
+#define XRDC_HWCFG2_PIDP9_SHIFT                  (9U)
+/*! PIDP9 - Process identifier
+ *  0b0..Bus master 9 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 9 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP9(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP9_SHIFT)) & XRDC_HWCFG2_PIDP9_MASK)
+#define XRDC_HWCFG2_PIDP10_MASK                  (0x400U)
+#define XRDC_HWCFG2_PIDP10_SHIFT                 (10U)
+/*! PIDP10 - Process identifier
+ *  0b0..Bus master 10 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 10 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP10(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP10_SHIFT)) & XRDC_HWCFG2_PIDP10_MASK)
+#define XRDC_HWCFG2_PIDP11_MASK                  (0x800U)
+#define XRDC_HWCFG2_PIDP11_SHIFT                 (11U)
+/*! PIDP11 - Process identifier
+ *  0b0..Bus master 11 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 11 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP11(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP11_SHIFT)) & XRDC_HWCFG2_PIDP11_MASK)
+#define XRDC_HWCFG2_PIDP12_MASK                  (0x1000U)
+#define XRDC_HWCFG2_PIDP12_SHIFT                 (12U)
+/*! PIDP12 - Process identifier
+ *  0b0..Bus master 12 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 12 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP12(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP12_SHIFT)) & XRDC_HWCFG2_PIDP12_MASK)
+#define XRDC_HWCFG2_PIDP13_MASK                  (0x2000U)
+#define XRDC_HWCFG2_PIDP13_SHIFT                 (13U)
+/*! PIDP13 - Process identifier
+ *  0b0..Bus master 13 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 13 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP13(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP13_SHIFT)) & XRDC_HWCFG2_PIDP13_MASK)
+#define XRDC_HWCFG2_PIDP14_MASK                  (0x4000U)
+#define XRDC_HWCFG2_PIDP14_SHIFT                 (14U)
+/*! PIDP14 - Process identifier
+ *  0b0..Bus master 14 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 14 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP14(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP14_SHIFT)) & XRDC_HWCFG2_PIDP14_MASK)
+#define XRDC_HWCFG2_PIDP15_MASK                  (0x8000U)
+#define XRDC_HWCFG2_PIDP15_SHIFT                 (15U)
+/*! PIDP15 - Process identifier
+ *  0b0..Bus master 15 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 15 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP15(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP15_SHIFT)) & XRDC_HWCFG2_PIDP15_MASK)
+#define XRDC_HWCFG2_PIDP16_MASK                  (0x10000U)
+#define XRDC_HWCFG2_PIDP16_SHIFT                 (16U)
+/*! PIDP16 - Process identifier
+ *  0b0..Bus master 16 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 16 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP16(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP16_SHIFT)) & XRDC_HWCFG2_PIDP16_MASK)
+#define XRDC_HWCFG2_PIDP17_MASK                  (0x20000U)
+#define XRDC_HWCFG2_PIDP17_SHIFT                 (17U)
+/*! PIDP17 - Process identifier
+ *  0b0..Bus master 17 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 17 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP17(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP17_SHIFT)) & XRDC_HWCFG2_PIDP17_MASK)
+#define XRDC_HWCFG2_PIDP18_MASK                  (0x40000U)
+#define XRDC_HWCFG2_PIDP18_SHIFT                 (18U)
+/*! PIDP18 - Process identifier
+ *  0b0..Bus master 18 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 18 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP18(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP18_SHIFT)) & XRDC_HWCFG2_PIDP18_MASK)
+#define XRDC_HWCFG2_PIDP19_MASK                  (0x80000U)
+#define XRDC_HWCFG2_PIDP19_SHIFT                 (19U)
+/*! PIDP19 - Process identifier
+ *  0b0..Bus master 19 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 19 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP19(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP19_SHIFT)) & XRDC_HWCFG2_PIDP19_MASK)
+#define XRDC_HWCFG2_PIDP20_MASK                  (0x100000U)
+#define XRDC_HWCFG2_PIDP20_SHIFT                 (20U)
+/*! PIDP20 - Process identifier
+ *  0b0..Bus master 20 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 20 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP20(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP20_SHIFT)) & XRDC_HWCFG2_PIDP20_MASK)
+#define XRDC_HWCFG2_PIDP21_MASK                  (0x200000U)
+#define XRDC_HWCFG2_PIDP21_SHIFT                 (21U)
+/*! PIDP21 - Process identifier
+ *  0b0..Bus master 21 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 21 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP21(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP21_SHIFT)) & XRDC_HWCFG2_PIDP21_MASK)
+#define XRDC_HWCFG2_PIDP22_MASK                  (0x400000U)
+#define XRDC_HWCFG2_PIDP22_SHIFT                 (22U)
+/*! PIDP22 - Process identifier
+ *  0b0..Bus master 22 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 22 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP22(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP22_SHIFT)) & XRDC_HWCFG2_PIDP22_MASK)
+#define XRDC_HWCFG2_PIDP23_MASK                  (0x800000U)
+#define XRDC_HWCFG2_PIDP23_SHIFT                 (23U)
+/*! PIDP23 - Process identifier
+ *  0b0..Bus master 23 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 23 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP23(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP23_SHIFT)) & XRDC_HWCFG2_PIDP23_MASK)
+#define XRDC_HWCFG2_PIDP24_MASK                  (0x1000000U)
+#define XRDC_HWCFG2_PIDP24_SHIFT                 (24U)
+/*! PIDP24 - Process identifier
+ *  0b0..Bus master 24 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 24 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP24(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP24_SHIFT)) & XRDC_HWCFG2_PIDP24_MASK)
+#define XRDC_HWCFG2_PIDP25_MASK                  (0x2000000U)
+#define XRDC_HWCFG2_PIDP25_SHIFT                 (25U)
+/*! PIDP25 - Process identifier
+ *  0b0..Bus master 25 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 25 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP25(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP25_SHIFT)) & XRDC_HWCFG2_PIDP25_MASK)
+#define XRDC_HWCFG2_PIDP26_MASK                  (0x4000000U)
+#define XRDC_HWCFG2_PIDP26_SHIFT                 (26U)
+/*! PIDP26 - Process identifier
+ *  0b0..Bus master 26 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 26 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP26(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP26_SHIFT)) & XRDC_HWCFG2_PIDP26_MASK)
+#define XRDC_HWCFG2_PIDP27_MASK                  (0x8000000U)
+#define XRDC_HWCFG2_PIDP27_SHIFT                 (27U)
+/*! PIDP27 - Process identifier
+ *  0b0..Bus master 27 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 27 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP27(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP27_SHIFT)) & XRDC_HWCFG2_PIDP27_MASK)
+#define XRDC_HWCFG2_PIDP28_MASK                  (0x10000000U)
+#define XRDC_HWCFG2_PIDP28_SHIFT                 (28U)
+/*! PIDP28 - Process identifier
+ *  0b0..Bus master 28 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 28 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP28(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP28_SHIFT)) & XRDC_HWCFG2_PIDP28_MASK)
+#define XRDC_HWCFG2_PIDP29_MASK                  (0x20000000U)
+#define XRDC_HWCFG2_PIDP29_SHIFT                 (29U)
+/*! PIDP29 - Process identifier
+ *  0b0..Bus master 29 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 29 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP29(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP29_SHIFT)) & XRDC_HWCFG2_PIDP29_MASK)
+#define XRDC_HWCFG2_PIDP30_MASK                  (0x40000000U)
+#define XRDC_HWCFG2_PIDP30_SHIFT                 (30U)
+/*! PIDP30 - Process identifier
+ *  0b0..Bus master 30 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 30 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP30(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP30_SHIFT)) & XRDC_HWCFG2_PIDP30_MASK)
+#define XRDC_HWCFG2_PIDP31_MASK                  (0x80000000U)
+#define XRDC_HWCFG2_PIDP31_SHIFT                 (31U)
+/*! PIDP31 - Process identifier
+ *  0b0..Bus master 31 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 31 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP31(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP31_SHIFT)) & XRDC_HWCFG2_PIDP31_MASK)
+/*! @} */
+
+/*! @name HWCFG3 - Hardware Configuration Register 3 */
+/*! @{ */
+#define XRDC_HWCFG3_PIDPn_MASK                   (0xFFFFFFFFU)
+#define XRDC_HWCFG3_PIDPn_SHIFT                  (0U)
+#define XRDC_HWCFG3_PIDPn(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG3_PIDPn_SHIFT)) & XRDC_HWCFG3_PIDPn_MASK)
+/*! @} */
+
+/*! @name MDACFG - Master Domain Assignment Configuration Register */
+/*! @{ */
+#define XRDC_MDACFG_NMDAR_MASK                   (0xFU)
+#define XRDC_MDACFG_NMDAR_SHIFT                  (0U)
+#define XRDC_MDACFG_NMDAR(x)                     (((uint8_t)(((uint8_t)(x)) << XRDC_MDACFG_NMDAR_SHIFT)) & XRDC_MDACFG_NMDAR_MASK)
+#define XRDC_MDACFG_NCM_MASK                     (0x80U)
+#define XRDC_MDACFG_NCM_SHIFT                    (7U)
+/*! NCM - Non-CPU Master
+ *  0b0..Bus master is a processor.
+ *  0b1..Bus master is a non-processor.
+ */
+#define XRDC_MDACFG_NCM(x)                       (((uint8_t)(((uint8_t)(x)) << XRDC_MDACFG_NCM_SHIFT)) & XRDC_MDACFG_NCM_MASK)
+/*! @} */
+
+/* The count of XRDC_MDACFG */
+#define XRDC_MDACFG_COUNT                        (37U)
+
+/*! @name MRCFG - Memory Region Configuration Register */
+/*! @{ */
+#define XRDC_MRCFG_NMRGD_MASK                    (0x1FU)
+#define XRDC_MRCFG_NMRGD_SHIFT                   (0U)
+#define XRDC_MRCFG_NMRGD(x)                      (((uint8_t)(((uint8_t)(x)) << XRDC_MRCFG_NMRGD_SHIFT)) & XRDC_MRCFG_NMRGD_MASK)
+/*! @} */
+
+/* The count of XRDC_MRCFG */
+#define XRDC_MRCFG_COUNT                         (2U)
+
+/*! @name FDID - Fault Domain ID */
+/*! @{ */
+#define XRDC_FDID_FDID_MASK                      (0xFU)
+#define XRDC_FDID_FDID_SHIFT                     (0U)
+#define XRDC_FDID_FDID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_FDID_FDID_SHIFT)) & XRDC_FDID_FDID_MASK)
+/*! @} */
+
+/*! @name DERRLOC - Domain Error Location Register */
+/*! @{ */
+#define XRDC_DERRLOC_MRCINST_MASK                (0xFFFFU)
+#define XRDC_DERRLOC_MRCINST_SHIFT               (0U)
+#define XRDC_DERRLOC_MRCINST(x)                  (((uint32_t)(((uint32_t)(x)) << XRDC_DERRLOC_MRCINST_SHIFT)) & XRDC_DERRLOC_MRCINST_MASK)
+#define XRDC_DERRLOC_PACINST_MASK                (0xF0000U)
+#define XRDC_DERRLOC_PACINST_SHIFT               (16U)
+#define XRDC_DERRLOC_PACINST(x)                  (((uint32_t)(((uint32_t)(x)) << XRDC_DERRLOC_PACINST_SHIFT)) & XRDC_DERRLOC_PACINST_MASK)
+/*! @} */
+
+/* The count of XRDC_DERRLOC */
+#define XRDC_DERRLOC_COUNT                       (3U)
+
+/*! @name DERR_W - Domain Error Word0 Register..Domain Error Word3 Register */
+/*! @{ */
+#define XRDC_DERR_W_EADDR_MASK                   (0xFFFFFFFFU)
+#define XRDC_DERR_W_EADDR_SHIFT                  (0U)
+#define XRDC_DERR_W_EADDR(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EADDR_SHIFT)) & XRDC_DERR_W_EADDR_MASK)
+#define XRDC_DERR_W_EDID_MASK                    (0xFU)
+#define XRDC_DERR_W_EDID_SHIFT                   (0U)
+#define XRDC_DERR_W_EDID(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EDID_SHIFT)) & XRDC_DERR_W_EDID_MASK)
+#define XRDC_DERR_W_EATR_MASK                    (0x700U)
+#define XRDC_DERR_W_EATR_SHIFT                   (8U)
+/*! EATR - Error attributes
+ *  0b000..Secure user mode, instruction fetch access.
+ *  0b001..Secure user mode, data access.
+ *  0b010..Secure privileged mode, instruction fetch access.
+ *  0b011..Secure privileged mode, data access.
+ *  0b100..Nonsecure user mode, instruction fetch access.
+ *  0b101..Nonsecure user mode, data access.
+ *  0b110..Nonsecure privileged mode, instruction fetch access.
+ *  0b111..Nonsecure privileged mode, data access.
+ */
+#define XRDC_DERR_W_EATR(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EATR_SHIFT)) & XRDC_DERR_W_EATR_MASK)
+#define XRDC_DERR_W_ERW_MASK                     (0x800U)
+#define XRDC_DERR_W_ERW_SHIFT                    (11U)
+/*! ERW - Error read/write
+ *  0b0..Read access
+ *  0b1..Write access
+ */
+#define XRDC_DERR_W_ERW(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_ERW_SHIFT)) & XRDC_DERR_W_ERW_MASK)
+#define XRDC_DERR_W_EPORT_MASK                   (0x7000000U)
+#define XRDC_DERR_W_EPORT_SHIFT                  (24U)
+#define XRDC_DERR_W_EPORT(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EPORT_SHIFT)) & XRDC_DERR_W_EPORT_MASK)
+#define XRDC_DERR_W_EST_MASK                     (0xC0000000U)
+#define XRDC_DERR_W_EST_SHIFT                    (30U)
+/*! EST - Error state
+ *  0b00..No access violation has been detected.
+ *  0b01..No access violation has been detected.
+ *  0b10..A single access violation has been detected.
+ *  0b11..Multiple access violations for this domain have been detected by this submodule instance. Only the address and attribute information for the first error have been captured in DERR_W0_i and DERR_W1_i.
+ */
+#define XRDC_DERR_W_EST(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EST_SHIFT)) & XRDC_DERR_W_EST_MASK)
+#define XRDC_DERR_W_RECR_MASK                    (0xC0000000U)
+#define XRDC_DERR_W_RECR_SHIFT                   (30U)
+#define XRDC_DERR_W_RECR(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_RECR_SHIFT)) & XRDC_DERR_W_RECR_MASK)
+/*! @} */
+
+/* The count of XRDC_DERR_W */
+#define XRDC_DERR_W_COUNT                        (19U)
+
+/* The count of XRDC_DERR_W */
+#define XRDC_DERR_W_COUNT2                       (4U)
+
+/*! @name PID - Process Identifier */
+/*! @{ */
+#define XRDC_PID_PID_MASK                        (0x3FU)
+#define XRDC_PID_PID_SHIFT                       (0U)
+#define XRDC_PID_PID(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_PID_SHIFT)) & XRDC_PID_PID_MASK)
+#define XRDC_PID_SP4SM_MASK                      (0x8000000U)
+#define XRDC_PID_SP4SM_SHIFT                     (27U)
+#define XRDC_PID_SP4SM(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_PID_SP4SM_SHIFT)) & XRDC_PID_SP4SM_MASK)
+#define XRDC_PID_TSM_MASK                        (0x10000000U)
+#define XRDC_PID_TSM_SHIFT                       (28U)
+#define XRDC_PID_TSM(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_TSM_SHIFT)) & XRDC_PID_TSM_MASK)
+#define XRDC_PID_LK2_MASK                        (0x60000000U)
+#define XRDC_PID_LK2_SHIFT                       (29U)
+/*! LK2 - Lock
+ *  0b00..Register can be written by any secure privileged write.
+ *  0b01..Register can be written by any secure privileged write.
+ *  0b10..Register can only be written by a secure privileged write from bus master m.
+ *  0b11..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_PID_LK2(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_LK2_SHIFT)) & XRDC_PID_LK2_MASK)
+/*! @} */
+
+/* The count of XRDC_PID */
+#define XRDC_PID_COUNT                           (37U)
+
+/*! @name MDA_W - Master Domain Assignment */
+/*! @{ */
+#define XRDC_MDA_W_DID_MASK                      (0xFU)
+#define XRDC_MDA_W_DID_SHIFT                     (0U)
+#define XRDC_MDA_W_DID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DID_SHIFT)) & XRDC_MDA_W_DID_MASK)
+#define XRDC_MDA_W_DIDS_MASK                     (0x30U)
+#define XRDC_MDA_W_DIDS_SHIFT                    (4U)
+/*! DIDS - DID Select
+ *  0b00..Use MDAm[3:0] as the domain identifier.
+ *  0b01..Use the input DID as the domain identifier.
+ *  0b10..Use MDAm[3:2] concatenated with the low-order 2 bits of the input DID (DID_in[1:0]) as the domain identifier.
+ *  0b11..Reserved for future use.
+ */
+#define XRDC_MDA_W_DIDS(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DIDS_SHIFT)) & XRDC_MDA_W_DIDS_MASK)
+#define XRDC_MDA_W_PA_MASK                       (0x30U)
+#define XRDC_MDA_W_PA_SHIFT                      (4U)
+/*! PA - Privileged attribute
+ *  0b00..Force the bus attribute for this master to user.
+ *  0b01..Force the bus attribute for this master to privileged.
+ *  0b10..Use the bus master's privileged/user attribute directly.
+ *  0b11..Use the bus master's privileged/user attribute directly.
+ */
+#define XRDC_MDA_W_PA(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PA_SHIFT)) & XRDC_MDA_W_PA_MASK)
+#define XRDC_MDA_W_PE_MASK                       (0xC0U)
+#define XRDC_MDA_W_PE_SHIFT                      (6U)
+/*! PE - Process identifier enable
+ *  0b00..No process identifier is included in the domain hit evaluation.
+ *  0b01..No process identifier is included in the domain hit evaluation.
+ *  0b10..The process identifier is included in the domain hit evaluation as defined by the expression: partial_domain_hit = (PE == 2) && ((PID & ~PIDM) == (XRDC_PIDn[PID] & ~PIDM))
+ *  0b11..The process identifier is included in the domain hit evaluation as defined by the expression: partial_domain_hit = (PE == 3) && ~((PID & ~PIDM) == (XRDC_PIDn[PID] & ~PIDM))
+ */
+#define XRDC_MDA_W_PE(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PE_SHIFT)) & XRDC_MDA_W_PE_MASK)
+#define XRDC_MDA_W_SA_MASK                       (0xC0U)
+#define XRDC_MDA_W_SA_SHIFT                      (6U)
+/*! SA - Secure attribute
+ *  0b00..Force the bus attribute for this master to secure.
+ *  0b01..Force the bus attribute for this master to nonsecure.
+ *  0b10..Use the bus master's secure/nonsecure attribute directly.
+ *  0b11..Use the bus master's secure/nonsecure attribute directly.
+ */
+#define XRDC_MDA_W_SA(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_SA_SHIFT)) & XRDC_MDA_W_SA_MASK)
+#define XRDC_MDA_W_DIDB_MASK                     (0x100U)
+#define XRDC_MDA_W_DIDB_SHIFT                    (8U)
+/*! DIDB - DID Bypass
+ *  0b0..Use MDAn[3:0] as the domain identifier.
+ *  0b1..Use the DID input as the domain identifier.
+ */
+#define XRDC_MDA_W_DIDB(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DIDB_SHIFT)) & XRDC_MDA_W_DIDB_MASK)
+#define XRDC_MDA_W_PIDM_MASK                     (0x3F00U)
+#define XRDC_MDA_W_PIDM_SHIFT                    (8U)
+#define XRDC_MDA_W_PIDM(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PIDM_SHIFT)) & XRDC_MDA_W_PIDM_MASK)
+#define XRDC_MDA_W_PID_MASK                      (0x3F0000U)
+#define XRDC_MDA_W_PID_SHIFT                     (16U)
+#define XRDC_MDA_W_PID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PID_SHIFT)) & XRDC_MDA_W_PID_MASK)
+#define XRDC_MDA_W_DFMT_MASK                     (0x20000000U)
+#define XRDC_MDA_W_DFMT_SHIFT                    (29U)
+/*! DFMT - Domain format
+ *  0b0..Processor-core domain assignment
+ *  0b1..Non-processor domain assignment
+ */
+#define XRDC_MDA_W_DFMT(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DFMT_SHIFT)) & XRDC_MDA_W_DFMT_MASK)
+#define XRDC_MDA_W_LK1_MASK                      (0x40000000U)
+#define XRDC_MDA_W_LK1_SHIFT                     (30U)
+/*! LK1 - 1-bit Lock
+ *  0b0..Register can be written by any secure privileged write.
+ *  0b1..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_MDA_W_LK1(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_LK1_SHIFT)) & XRDC_MDA_W_LK1_MASK)
+#define XRDC_MDA_W_VLD_MASK                      (0x80000000U)
+#define XRDC_MDA_W_VLD_SHIFT                     (31U)
+/*! VLD - Valid
+ *  0b0..The Wr domain assignment is invalid.
+ *  0b1..The Wr domain assignment is valid.
+ */
+#define XRDC_MDA_W_VLD(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_VLD_SHIFT)) & XRDC_MDA_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_MDA_W */
+#define XRDC_MDA_W_COUNT                         (37U)
+
+/* The count of XRDC_MDA_W */
+#define XRDC_MDA_W_COUNT2                        (2U)
+
+/*! @name PDAC_W - Peripheral Domain Access Control */
+/*! @{ */
+#define XRDC_PDAC_W_D0ACP_MASK                   (0x7U)
+#define XRDC_PDAC_W_D0ACP_SHIFT                  (0U)
+#define XRDC_PDAC_W_D0ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D0ACP_SHIFT)) & XRDC_PDAC_W_D0ACP_MASK)
+#define XRDC_PDAC_W_D1ACP_MASK                   (0x38U)
+#define XRDC_PDAC_W_D1ACP_SHIFT                  (3U)
+#define XRDC_PDAC_W_D1ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D1ACP_SHIFT)) & XRDC_PDAC_W_D1ACP_MASK)
+#define XRDC_PDAC_W_D2ACP_MASK                   (0x1C0U)
+#define XRDC_PDAC_W_D2ACP_SHIFT                  (6U)
+#define XRDC_PDAC_W_D2ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D2ACP_SHIFT)) & XRDC_PDAC_W_D2ACP_MASK)
+#define XRDC_PDAC_W_EAL_MASK                     (0x3000000U)
+#define XRDC_PDAC_W_EAL_SHIFT                    (24U)
+/*! EAL - Exclusive Access Lock
+ *  0b00..Lock disabled
+ *  0b01..Lock disabled until next reset
+ *  0b10..Lock enabled, lock state = available
+ *  0b11..Lock enabled, lock state = not available
+ */
+#define XRDC_PDAC_W_EAL(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_EAL_SHIFT)) & XRDC_PDAC_W_EAL_MASK)
+#define XRDC_PDAC_W_EALO_MASK                    (0xF000000U)
+#define XRDC_PDAC_W_EALO_SHIFT                   (24U)
+#define XRDC_PDAC_W_EALO(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_EALO_SHIFT)) & XRDC_PDAC_W_EALO_MASK)
+#define XRDC_PDAC_W_LK2_MASK                     (0x60000000U)
+#define XRDC_PDAC_W_LK2_SHIFT                    (29U)
+/*! LK2 - Lock
+ *  0b00..Entire PDACs can be written.
+ *  0b01..Entire PDACs can be written.
+ *  0b10..Domain x can only update the DxACP field and the LK2 field; no other PDACs fields can be written.
+ *  0b11..PDACs is locked (read-only) until the next reset.
+ */
+#define XRDC_PDAC_W_LK2(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_LK2_SHIFT)) & XRDC_PDAC_W_LK2_MASK)
+#define XRDC_PDAC_W_VLD_MASK                     (0x80000000U)
+#define XRDC_PDAC_W_VLD_SHIFT                    (31U)
+/*! VLD - Valid
+ *  0b0..The PDACs assignment is invalid.
+ *  0b1..The PDACs assignment is valid.
+ */
+#define XRDC_PDAC_W_VLD(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_VLD_SHIFT)) & XRDC_PDAC_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_PDAC_W */
+#define XRDC_PDAC_W_COUNT                        (289U)
+
+/* The count of XRDC_PDAC_W */
+#define XRDC_PDAC_W_COUNT2                       (2U)
+
+/*! @name MRGD_W - Memory Region Descriptor */
+/*! @{ */
+#define XRDC_MRGD_W_ACCSET1_MASK                 (0xFFFU)
+#define XRDC_MRGD_W_ACCSET1_SHIFT                (0U)
+#define XRDC_MRGD_W_ACCSET1(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ACCSET1_SHIFT)) & XRDC_MRGD_W_ACCSET1_MASK)
+#define XRDC_MRGD_W_D0SEL_MASK                   (0x7U)
+#define XRDC_MRGD_W_D0SEL_SHIFT                  (0U)
+#define XRDC_MRGD_W_D0SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D0SEL_SHIFT)) & XRDC_MRGD_W_D0SEL_MASK)
+#define XRDC_MRGD_W_D1SEL_MASK                   (0x38U)
+#define XRDC_MRGD_W_D1SEL_SHIFT                  (3U)
+#define XRDC_MRGD_W_D1SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D1SEL_SHIFT)) & XRDC_MRGD_W_D1SEL_MASK)
+#define XRDC_MRGD_W_ENDADDR_MASK                 (0xFFFFFFE0U)
+#define XRDC_MRGD_W_ENDADDR_SHIFT                (5U)
+#define XRDC_MRGD_W_ENDADDR(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ENDADDR_SHIFT)) & XRDC_MRGD_W_ENDADDR_MASK)
+#define XRDC_MRGD_W_SRTADDR_MASK                 (0xFFFFFFE0U)
+#define XRDC_MRGD_W_SRTADDR_SHIFT                (5U)
+#define XRDC_MRGD_W_SRTADDR(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_SRTADDR_SHIFT)) & XRDC_MRGD_W_SRTADDR_MASK)
+#define XRDC_MRGD_W_D2SEL_MASK                   (0x1C0U)
+#define XRDC_MRGD_W_D2SEL_SHIFT                  (6U)
+#define XRDC_MRGD_W_D2SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D2SEL_SHIFT)) & XRDC_MRGD_W_D2SEL_MASK)
+#define XRDC_MRGD_W_LKAS1_MASK                   (0x1000U)
+#define XRDC_MRGD_W_LKAS1_SHIFT                  (12U)
+/*! LKAS1 - Lock ACCSET1
+ *  0b0..Writes to ACCSET1 affect lesser modes
+ *  0b1..ACCSET1 cannot be modified
+ */
+#define XRDC_MRGD_W_LKAS1(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LKAS1_SHIFT)) & XRDC_MRGD_W_LKAS1_MASK)
+#define XRDC_MRGD_W_ACCSET2_MASK                 (0xFFF0000U)
+#define XRDC_MRGD_W_ACCSET2_SHIFT                (16U)
+#define XRDC_MRGD_W_ACCSET2(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ACCSET2_SHIFT)) & XRDC_MRGD_W_ACCSET2_MASK)
+#define XRDC_MRGD_W_EAL_MASK                     (0x3000000U)
+#define XRDC_MRGD_W_EAL_SHIFT                    (24U)
+/*! EAL - Exclusive Access Lock
+ *  0b00..Lock disabled
+ *  0b01..Lock disabled until next reset
+ *  0b10..Lock enabled, lock state = available
+ *  0b11..Lock enabled, lock state = not available
+ */
+#define XRDC_MRGD_W_EAL(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_EAL_SHIFT)) & XRDC_MRGD_W_EAL_MASK)
+#define XRDC_MRGD_W_EALO_MASK                    (0xF000000U)
+#define XRDC_MRGD_W_EALO_SHIFT                   (24U)
+#define XRDC_MRGD_W_EALO(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_EALO_SHIFT)) & XRDC_MRGD_W_EALO_MASK)
+#define XRDC_MRGD_W_LKAS2_MASK                   (0x10000000U)
+#define XRDC_MRGD_W_LKAS2_SHIFT                  (28U)
+/*! LKAS2 - Lock ACCSET2
+ *  0b0..Writes to ACCSET2 affect lesser modes
+ *  0b1..ACCSET2 cannot be modified
+ */
+#define XRDC_MRGD_W_LKAS2(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LKAS2_SHIFT)) & XRDC_MRGD_W_LKAS2_MASK)
+#define XRDC_MRGD_W_LK2_MASK                     (0x60000000U)
+#define XRDC_MRGD_W_LK2_SHIFT                    (29U)
+/*! LK2 - Lock
+ *  0b00..Entire MRGDn can be written.
+ *  0b01..Entire MRGDn can be written.
+ *  0b10..Domain x can only update the DxACP field and the LK2 field; no other MRGDn fields can be written.
+ *  0b11..MRGDn is locked (read-only) until the next reset.
+ */
+#define XRDC_MRGD_W_LK2(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LK2_SHIFT)) & XRDC_MRGD_W_LK2_MASK)
+#define XRDC_MRGD_W_CR_MASK                      (0x80000000U)
+#define XRDC_MRGD_W_CR_SHIFT                     (31U)
+#define XRDC_MRGD_W_CR(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_CR_SHIFT)) & XRDC_MRGD_W_CR_MASK)
+#define XRDC_MRGD_W_VLD_MASK                     (0x80000000U)
+#define XRDC_MRGD_W_VLD_SHIFT                    (31U)
+/*! VLD - Valid
+ *  0b0..The MRGDn assignment is invalid.
+ *  0b1..The MRGDn assignment is valid.
+ */
+#define XRDC_MRGD_W_VLD(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_VLD_SHIFT)) & XRDC_MRGD_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_MRGD_W */
+#define XRDC_MRGD_W_COUNT                        (24U)
+
+/* The count of XRDC_MRGD_W */
+#define XRDC_MRGD_W_COUNT2                       (5U)
+
+
+/*!
+ * @}
+ */ /* end of group XRDC_Register_Masks */
+
+
+/* XRDC - Peripheral instance base addresses */
+/** Peripheral XRDC base address */
+#define XRDC_BASE                                (0x40014000u)
+/** Peripheral XRDC base pointer */
+#define XRDC                                     ((XRDC_Type *)XRDC_BASE)
+/** Array initializer of XRDC peripheral base addresses */
+#define XRDC_BASE_ADDRS                          { XRDC_BASE }
+/** Array initializer of XRDC peripheral base pointers */
+#define XRDC_BASE_PTRS                           { XRDC }
+
+/*!
+ * @}
+ */ /* end of group XRDC_Peripheral_Access_Layer */
+
+
+/*
+** End of section using anonymous unions
+*/
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang diagnostic pop
+  #else
+    #pragma pop
+  #endif
+#elif defined(__GNUC__)
+  /* leave anonymous unions enabled */
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma language=default
+#else
+  #error Not supported compiler type
+#endif
+
+/*!
+ * @}
+ */ /* end of group Peripheral_access_layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- Macros for use with bit field definitions (xxx_SHIFT, xxx_MASK).
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Bit_Field_Generic_Macros Macros for use with bit field definitions (xxx_SHIFT, xxx_MASK).
+ * @{
+ */
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang system_header
+  #endif
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma system_include
+#endif
+
+/**
+ * @brief Mask and left-shift a bit field value for use in a register bit range.
+ * @param field Name of the register bit field.
+ * @param value Value of the bit field.
+ * @return Masked and shifted value.
+ */
+#define NXP_VAL2FLD(field, value)    (((value) << (field ## _SHIFT)) & (field ## _MASK))
+/**
+ * @brief Mask and right-shift a register value to extract a bit field value.
+ * @param field Name of the register bit field.
+ * @param value Value of the register.
+ * @return Masked and shifted bit field value.
+ */
+#define NXP_FLD2VAL(field, value)    (((value) & (field ## _MASK)) >> (field ## _SHIFT))
+
+/*!
+ * @}
+ */ /* end of group Bit_Field_Generic_Macros */
+
+
+/* ----------------------------------------------------------------------------
+   -- SDK Compatibility
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SDK_Compatibility_Symbols SDK Compatibility
+ * @{
+ */
+
+#define EVENT_UNIT EVENT0
+#define INTMUX INTMUX0
+
+/*!
+ * @}
+ */ /* end of group SDK_Compatibility_Symbols */
+
+
+#endif  /* _RV32M1_RI5CY_H_ */
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy_features.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy_features.h
new file mode 100644 (file)
index 0000000..6e68f8a
--- /dev/null
@@ -0,0 +1,1561 @@
+/*
+** ###################################################################
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180815
+**
+**     Abstract:
+**         Chip specific module features.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+#ifndef _RV32M1_ri5cy_FEATURES_H_
+#define _RV32M1_ri5cy_FEATURES_H_
+
+/* SOC module features */
+
+/* @brief AXBS availability on the SoC. */
+#define FSL_FEATURE_SOC_AXBS_COUNT (1)
+/* @brief CAU3 availability on the SoC. */
+#define FSL_FEATURE_SOC_CAU3_COUNT (1)
+/* @brief CRC availability on the SoC. */
+#define FSL_FEATURE_SOC_CRC_COUNT (1)
+/* @brief DMAMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_DMAMUX_COUNT (1)
+/* @brief EDMA availability on the SoC. */
+#define FSL_FEATURE_SOC_EDMA_COUNT (1)
+/* @brief EMVSIM availability on the SoC. */
+#define FSL_FEATURE_SOC_EMVSIM_COUNT (1)
+/* @brief EVENT availability on the SoC. */
+#define FSL_FEATURE_SOC_EVENT_COUNT (1)
+/* @brief EWM availability on the SoC. */
+#define FSL_FEATURE_SOC_EWM_COUNT (1)
+/* @brief FB availability on the SoC. */
+#define FSL_FEATURE_SOC_FB_COUNT (1)
+/* @brief FLASH availability on the SoC. */
+#define FSL_FEATURE_SOC_FLASH_COUNT (1)
+/* @brief FLEXIO availability on the SoC. */
+#define FSL_FEATURE_SOC_FLEXIO_COUNT (1)
+/* @brief GPIO availability on the SoC. */
+#define FSL_FEATURE_SOC_GPIO_COUNT (5)
+/* @brief I2S availability on the SoC. */
+#define FSL_FEATURE_SOC_I2S_COUNT (1)
+/* @brief INTMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_INTMUX_COUNT (1)
+/* @brief LLWU availability on the SoC. */
+#define FSL_FEATURE_SOC_LLWU_COUNT (2)
+/* @brief LPADC availability on the SoC. */
+#define FSL_FEATURE_SOC_LPADC_COUNT (1)
+/* @brief LPCMP availability on the SoC. */
+#define FSL_FEATURE_SOC_LPCMP_COUNT (2)
+/* @brief LPDAC availability on the SoC. */
+#define FSL_FEATURE_SOC_LPDAC_COUNT (1)
+/* @brief LPI2C availability on the SoC. */
+#define FSL_FEATURE_SOC_LPI2C_COUNT (4)
+/* @brief LPIT availability on the SoC. */
+#define FSL_FEATURE_SOC_LPIT_COUNT (2)
+/* @brief LPSPI availability on the SoC. */
+#define FSL_FEATURE_SOC_LPSPI_COUNT (4)
+/* @brief LPTMR availability on the SoC. */
+#define FSL_FEATURE_SOC_LPTMR_COUNT (3)
+/* @brief LPUART availability on the SoC. */
+#define FSL_FEATURE_SOC_LPUART_COUNT (4)
+/* @brief MCM availability on the SoC. */
+#define FSL_FEATURE_SOC_MCM_COUNT (1)
+/* @brief MSCM availability on the SoC. */
+#define FSL_FEATURE_SOC_MSCM_COUNT (1)
+/* @brief MU availability on the SoC. */
+#define FSL_FEATURE_SOC_MU_COUNT (1)
+/* @brief PCC availability on the SoC. */
+#define FSL_FEATURE_SOC_PCC_COUNT (2)
+/* @brief PORT availability on the SoC. */
+#define FSL_FEATURE_SOC_PORT_COUNT (5)
+/* @brief RSIM availability on the SoC. */
+#define FSL_FEATURE_SOC_RSIM_COUNT (1)
+/* @brief RTC availability on the SoC. */
+#define FSL_FEATURE_SOC_RTC_COUNT (1)
+/* @brief SCG availability on the SoC. */
+#define FSL_FEATURE_SOC_SCG_COUNT (1)
+/* @brief SEMA42 availability on the SoC. */
+#define FSL_FEATURE_SOC_SEMA42_COUNT (2)
+/* @brief SIM availability on the SoC. */
+#define FSL_FEATURE_SOC_SIM_COUNT (1)
+/* @brief SMC availability on the SoC. */
+#define FSL_FEATURE_SOC_SMC_COUNT (2)
+/* @brief SPM availability on the SoC. */
+#define FSL_FEATURE_SOC_SPM_COUNT (1)
+/* @brief TPM availability on the SoC. */
+#define FSL_FEATURE_SOC_TPM_COUNT (4)
+/* @brief TRGMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_TRGMUX_COUNT (2)
+/* @brief TRNG availability on the SoC. */
+#define FSL_FEATURE_SOC_TRNG_COUNT (1)
+/* @brief TSTMR availability on the SoC. */
+#define FSL_FEATURE_SOC_TSTMR_COUNT (1)
+/* @brief USB availability on the SoC. */
+#define FSL_FEATURE_SOC_USB_COUNT (1)
+/* @brief USBVREG availability on the SoC. */
+#define FSL_FEATURE_SOC_USBVREG_COUNT (1)
+/* @brief USDHC availability on the SoC. */
+#define FSL_FEATURE_SOC_USDHC_COUNT (1)
+/* @brief VREF availability on the SoC. */
+#define FSL_FEATURE_SOC_VREF_COUNT (1)
+/* @brief WDOG availability on the SoC. */
+#define FSL_FEATURE_SOC_WDOG_COUNT (2)
+/* @brief XRDC availability on the SoC. */
+#define FSL_FEATURE_SOC_XRDC_COUNT (1)
+
+/* LPADC module features */
+
+/* @brief Has differential mode (bitfield CMDLn[DIFF]). */
+#define FSL_FEATURE_LPADC_HAS_CMDL_DIFF (0)
+/* @brief Has channel scale (bitfield CMDLn[CSCALE]). */
+#define FSL_FEATURE_LPADC_HAS_CMDL_CSCALE (0)
+/* @brief Has internal clock (bitfield CFG[ADCKEN]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_ADCKEN (1)
+/* @brief Enable support for low voltage reference on option 1 reference (bitfield CFG[VREF1RNG]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_VREF1RNG (1)
+/* @brief Has calibration (bitfield CFG[CALOFS]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_CALOFS (1)
+/* @brief Has offset trim (register OFSTRIM). */
+#define FSL_FEATURE_LPADC_HAS_OFSTRIM (1)
+
+/* AXBS module features */
+
+/* No feature definitions */
+
+/* CRC module features */
+
+/* @brief Has data register with name CRC */
+#define FSL_FEATURE_CRC_HAS_CRC_REG (0)
+
+/* EDMA module features */
+
+/* @brief Number of DMA channels (related to number of registers TCD, DCHPRI, bit fields ERQ[ERQn], EEI[EEIn], INT[INTn], ERR[ERRn], HRS[HRSn] and bit field widths ES[ERRCHN], CEEI[CEEI], SEEI[SEEI], CERQ[CERQ], SERQ[SERQ], CDNE[CDNE], SSRT[SSRT], CERR[CERR], CINT[CINT], TCDn_CITER_ELINKYES[LINKCH], TCDn_CSR[MAJORLINKCH], TCDn_BITER_ELINKYES[LINKCH]). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_MODULE_CHANNEL (16)
+/* @brief Total number of DMA channels on all modules. */
+#define FSL_FEATURE_EDMA_DMAMUX_CHANNELS (16)
+/* @brief Number of DMA channel groups (register bit fields CR[ERGA], CR[GRPnPRI], ES[GPE], DCHPRIn[GRPPRI]). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_CHANNEL_GROUP_COUNT (1)
+/* @brief Has DMA_Error interrupt vector. */
+#define FSL_FEATURE_EDMA_HAS_ERROR_IRQ (0)
+/* @brief Number of DMA channels with asynchronous request capability (register EARS). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT (16)
+
+/* DMAMUX module features */
+
+/* @brief Number of DMA channels (related to number of register CHCFGn). */
+#define FSL_FEATURE_DMAMUX_MODULE_CHANNEL (16)
+/* @brief Total number of DMA channels on all modules. */
+#define FSL_FEATURE_DMAMUX_DMAMUX_CHANNELS (FSL_FEATURE_SOC_DMAMUX_COUNT * 16)
+/* @brief Has the periodic trigger capability for the triggered DMA channel (register bit CHCFG0[TRIG]). */
+#define FSL_FEATURE_DMAMUX_HAS_TRIG (1)
+/* @brief Has DMA Channel Always ON function (register bit CHCFG0[A_ON]). */
+#define FSL_FEATURE_DMAMUX_HAS_A_ON (1)
+
+/* EWM module features */
+
+/* @brief Has clock select (register CLKCTRL). */
+#define FSL_FEATURE_EWM_HAS_CLOCK_SELECT  (0)
+/* @brief Has clock prescaler (register CLKPRESCALER). */
+#define FSL_FEATURE_EWM_HAS_PRESCALER  (1)
+
+/* FB module features */
+
+/* No feature definitions */
+
+/* FLEXIO module features */
+
+/* @brief Has Shifter Status Register (FLEXIO_SHIFTSTAT) */
+#define FSL_FEATURE_FLEXIO_HAS_SHIFTER_STATUS (1)
+/* @brief Has Pin Data Input Register (FLEXIO_PIN) */
+#define FSL_FEATURE_FLEXIO_HAS_PIN_STATUS (1)
+/* @brief Has Shifter Buffer N Nibble Byte Swapped Register (FLEXIO_SHIFTBUFNBSn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_NIBBLE_BYTE_SWAP (1)
+/* @brief Has Shifter Buffer N Half Word Swapped Register (FLEXIO_SHIFTBUFHWSn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_HALF_WORD_SWAP (1)
+/* @brief Has Shifter Buffer N Nibble Swapped Register (FLEXIO_SHIFTBUFNISn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_NIBBLE_SWAP (1)
+/* @brief Supports Shifter State Mode (FLEXIO_SHIFTCTLn[SMOD]) */
+#define FSL_FEATURE_FLEXIO_HAS_STATE_MODE (1)
+/* @brief Supports Shifter Logic Mode (FLEXIO_SHIFTCTLn[SMOD]) */
+#define FSL_FEATURE_FLEXIO_HAS_LOGIC_MODE (1)
+/* @brief Supports paralle width (FLEXIO_SHIFTCFGn[PWIDTH]) */
+#define FSL_FEATURE_FLEXIO_HAS_PARALLEL_WIDTH (1)
+/* @brief Reset value of the FLEXIO_VERID register */
+#define FSL_FEATURE_FLEXIO_VERID_RESET_VALUE (0x1010001)
+/* @brief Reset value of the FLEXIO_PARAM register */
+#define FSL_FEATURE_FLEXIO_PARAM_RESET_VALUE (0x4200808)
+
+/* FLASH module features */
+
+/* @brief Current core ID. */
+#define FSL_FEATURE_FLASH_CURRENT_CORE_ID (0)
+/* @brief Is of type FTFA. */
+#define FSL_FEATURE_FLASH_IS_FTFA (0)
+/* @brief Is of type FTFE. */
+#define FSL_FEATURE_FLASH_IS_FTFE (1)
+/* @brief Is of type FTFL. */
+#define FSL_FEATURE_FLASH_IS_FTFL (0)
+/* @brief Has flags indicating the status of the FlexRAM (register bits FCNFG[EEERDY], FCNFG[RAMRDY] and FCNFG[PFLSH]). */
+#define FSL_FEATURE_FLASH_HAS_FLEX_RAM_FLAGS (1)
+/* @brief Has program flash swapping status flag (register bit FCNFG[SWAP]). */
+#define FSL_FEATURE_FLASH_HAS_PFLASH_SWAPPING_STATUS_FLAG (1)
+/* @brief Has EEPROM region protection (register FEPROT). */
+#define FSL_FEATURE_FLASH_HAS_EEROM_REGION_PROTECTION (0)
+/* @brief Has data flash region protection (register FDPROT). */
+#define FSL_FEATURE_FLASH_HAS_DATA_FLASH_REGION_PROTECTION (0)
+/* @brief Has flash access control (registers XACCHn, SACCHn, where n is a number, FACSS and FACSN). */
+#define FSL_FEATURE_FLASH_HAS_ACCESS_CONTROL (1)
+/* @brief Has flash cache control in FMC module. */
+#define FSL_FEATURE_FLASH_HAS_FMC_FLASH_CACHE_CONTROLS (0)
+/* @brief Has flash cache control in MCM module. */
+#define FSL_FEATURE_FLASH_HAS_MCM_FLASH_CACHE_CONTROLS (0)
+/* @brief Has flash cache control in MSCM module. */
+#define FSL_FEATURE_FLASH_HAS_MSCM_FLASH_CACHE_CONTROLS (1)
+/* @brief Has prefetch speculation control in flash, such as kv5x. */
+#define FSL_FEATURE_FLASH_PREFETCH_SPECULATION_CONTROL_IN_FLASH (0)
+/* @brief P-Flash flash size coding rule version, value 0 for K1 and K2, value 1 for RV32M1. */
+#define FSL_FEATURE_FLASH_SIZE_ENCODING_RULE_VERSION (1)
+/* @brief P-Flash start address. */
+#define FSL_FEATURE_FLASH_PFLASH_START_ADDRESS (0x00000000)
+/* @brief P-Flash block count. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT (2)
+/* @brief P-Flash block size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE (524288)
+/* @brief P-Flash sector size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_SECTOR_SIZE (4096)
+/* @brief P-Flash write unit size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_WRITE_UNIT_SIZE (8)
+/* @brief P-Flash data path width. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_DATA_PATH_WIDTH (16)
+/* @brief P-Flash block swap feature. */
+#define FSL_FEATURE_FLASH_HAS_PFLASH_BLOCK_SWAP (1)
+/* @brief P-Flash protection region count. */
+#define FSL_FEATURE_FLASH_PFLASH_PROTECTION_REGION_COUNT (64)
+/* @brief Has multiple flash. */
+#define FSL_FEATURE_FLASH_HAS_MULTIPLE_FLASH (1)
+/* @brief Flash memory count. */
+#define FSL_FEATURE_FLASH_MEMORY_COUNT (2)
+/* @brief P-Flash start address. */
+#define FSL_FEATURE_FLASH_PFLASH_1_START_ADDRESS (0x01000000)
+/* @brief P-Flash block count. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_COUNT (1)
+/* @brief P-Flash block size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_SIZE (262144)
+/* @brief P-Flash sector size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_SECTOR_SIZE (2048)
+/* @brief P-Flash write unit size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_WRITE_UNIT_SIZE (8)
+/* @brief P-Flash data path width. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_DATA_PATH_WIDTH (8)
+/* @brief P-Flash protection region count. */
+#define FSL_FEATURE_FLASH_PFLASH_1_PROTECTION_REGION_COUNT (16)
+/* @brief P-Flash block swap feature. */
+#define FSL_FEATURE_FLASH_HAS_1_PFLASH_BLOCK_SWAP (0)
+/* @brief Has FlexNVM memory. */
+#define FSL_FEATURE_FLASH_HAS_FLEX_NVM (0)
+/* @brief FlexNVM start address. (Valid only if FlexNVM is available.) */
+#define FSL_FEATURE_FLASH_FLEX_NVM_START_ADDRESS (0x00000000)
+/* @brief FlexNVM block count. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_COUNT (0)
+/* @brief FlexNVM block size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SIZE (0)
+/* @brief FlexNVM sector size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SECTOR_SIZE (0)
+/* @brief FlexNVM write unit size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_WRITE_UNIT_SIZE (0)
+/* @brief FlexNVM data path width. */
+#define FSL_FEATURE_FLASH_FLEX_BLOCK_DATA_PATH_WIDTH (0)
+/* @brief Has FlexRAM memory. */
+#define FSL_FEATURE_FLASH_HAS_FLEX_RAM (1)
+/* @brief FlexRAM start address. (Valid only if FlexRAM is available.) */
+#define FSL_FEATURE_FLASH_FLEX_RAM_START_ADDRESS (0x48000000)
+/* @brief FlexRAM size. */
+#define FSL_FEATURE_FLASH_FLEX_RAM_SIZE (4096)
+/* @brief Has 0x00 Read 1s Block command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_BLOCK_CMD (1)
+/* @brief Flash 1 has 0x00 Read 1s Block command. */
+#define FSL_FEATURE_FLASH_HAS_1_READ_1S_BLOCK_CMD (0)
+/* @brief Has 0x01 Read 1s Section command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_SECTION_CMD (1)
+/* @brief Has 0x02 Program Check command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_CHECK_CMD (1)
+/* @brief Has 0x03 Read Resource command. */
+#define FSL_FEATURE_FLASH_HAS_READ_RESOURCE_CMD (0)
+/* @brief Has 0x06 Program Longword command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_LONGWORD_CMD (0)
+/* @brief Has 0x07 Program Phrase command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_PHRASE_CMD (1)
+/* @brief Has 0x08 Erase Flash Block command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_BLOCK_CMD (1)
+/* @brief Flash 1 has 0x08 Erase Flash Block command. */
+#define FSL_FEATURE_FLASH_HAS_1_ERASE_FLASH_BLOCK_CMD (0)
+/* @brief Has 0x09 Erase Flash Sector command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_SECTOR_CMD (1)
+/* @brief Has 0x0B Program Section command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_SECTION_CMD (1)
+/* @brief Has 0x0C Generate CRC signature for selected program flash sectors. */
+#define FSL_FEATURE_FLASH_HAS_GENERATE_CRC_CMD (1)
+/* @brief Has 0x40 Read 1s All Blocks command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_BLOCKS_CMD (1)
+/* @brief Has 0x41 Read Once command. */
+#define FSL_FEATURE_FLASH_HAS_READ_ONCE_CMD (1)
+/* @brief Has 0x43 Program Once command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_ONCE_CMD (1)
+/* @brief Has 0x44 Erase All Blocks command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_CMD (1)
+/* @brief Has 0x45 Verify Backdoor Access Key command. */
+#define FSL_FEATURE_FLASH_HAS_VERIFY_BACKDOOR_ACCESS_KEY_CMD (1)
+/* @brief Has 0x46 Swap Control command. */
+#define FSL_FEATURE_FLASH_HAS_SWAP_CONTROL_CMD (1)
+/* @brief Flash 1 has 0x46 Swap Control command. */
+#define FSL_FEATURE_FLASH_HAS_1_SWAP_CONTROL_CMD (0)
+/* @brief Has 0x49 Erase All Blocks Unsecure command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_UNSECURE_CMD (1)
+/* @brief Has 0x4A Read 1s All Execute-only Segments command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0)
+/* @brief Has 0x4B Erase All Execute-only Segments command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0)
+/* @brief Has 0x80 Program Partition command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_PARTITION_CMD (0)
+/* @brief Has 0x81 Set FlexRAM Function command. */
+#define FSL_FEATURE_FLASH_HAS_SET_FLEXRAM_FUNCTION_CMD (0)
+/* @brief P-Flash Erase/Read 1st all block command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SECTOR_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SECTOR_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Program/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SECTION_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Program/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SECTION_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Read resource command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_RESOURCE_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_CHECK_CMD_ADDRESS_ALIGMENT (4)
+/* @brief P-Flash Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash 1 Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Erase/Read 1st all block command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_SECTOR_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Rrogram/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_SECTION_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Read resource command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_RESOURCE_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Program check command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_CHECK_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM partition code 0000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0000 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0001 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0010 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0011 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0100 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0101 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0110 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0111 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1000 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1001 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1010 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1011 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1100 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1101 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1110 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1111 (0xFFFFFFFF)
+/* @brief Emulated eeprom size code 0000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0000 (0xFFFF)
+/* @brief Emulated eeprom size code 0001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0001 (0xFFFF)
+/* @brief Emulated eeprom size code 0010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0010 (0x1000)
+/* @brief Emulated eeprom size code 0011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0011 (0x0800)
+/* @brief Emulated eeprom size code 0100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0100 (0x0400)
+/* @brief Emulated eeprom size code 0101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0101 (0x0200)
+/* @brief Emulated eeprom size code 0110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0110 (0x0100)
+/* @brief Emulated eeprom size code 0111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0111 (0x0080)
+/* @brief Emulated eeprom size code 1000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1000 (0x0040)
+/* @brief Emulated eeprom size code 1001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1001 (0x0020)
+/* @brief Emulated eeprom size code 1010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1010 (0xFFFF)
+/* @brief Emulated eeprom size code 1011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1011 (0xFFFF)
+/* @brief Emulated eeprom size code 1100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1100 (0xFFFF)
+/* @brief Emulated eeprom size code 1101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1101 (0xFFFF)
+/* @brief Emulated eeprom size code 1110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1110 (0xFFFF)
+/* @brief Emulated eeprom size code 1111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1111 (0x0000)
+
+/* GPIO module features */
+
+/* @brief Has fast (single cycle) access capability via a dedicated memory region. */
+#define FSL_FEATURE_GPIO_HAS_FAST_GPIO (1)
+/* @brief Has port input disable register (PIDR). */
+#define FSL_FEATURE_GPIO_HAS_INPUT_DISABLE (0)
+/* @brief Has dedicated interrupt vector. */
+#define FSL_FEATURE_GPIO_HAS_PORT_INTERRUPT_VECTOR (1)
+
+/* SAI module features */
+
+/* @brief Receive/transmit FIFO size in item count (register bit fields TCSR[FRDE], TCSR[FRIE], TCSR[FRF], TCR1[TFW], RCSR[FRDE], RCSR[FRIE], RCSR[FRF], RCR1[RFW], registers TFRn, RFRn). */
+#define FSL_FEATURE_SAI_FIFO_COUNT (8)
+/* @brief Receive/transmit channel number (register bit fields TCR3[TCE], RCR3[RCE], registers TDRn and RDRn). */
+#define FSL_FEATURE_SAI_CHANNEL_COUNT (2)
+/* @brief Maximum words per frame (register bit fields TCR3[WDFL], TCR4[FRSZ], TMR[TWM], RCR3[WDFL], RCR4[FRSZ], RMR[RWM]). */
+#define FSL_FEATURE_SAI_MAX_WORDS_PER_FRAME (32)
+/* @brief Has support of combining multiple data channel FIFOs into single channel FIFO (register bit fields TCR3[CFR], TCR4[FCOMB], TFR0[WCP], TFR1[WCP], RCR3[CFR], RCR4[FCOMB], RFR0[RCP], RFR1[RCP]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_COMBINE_MODE (1)
+/* @brief Has packing of 8-bit and 16-bit data into each 32-bit FIFO word (register bit fields TCR4[FPACK], RCR4[FPACK]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_PACKING (1)
+/* @brief Configures when the SAI will continue transmitting after a FIFO error has been detected (register bit fields TCR4[FCONT], RCR4[FCONT]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_FUNCTION_AFTER_ERROR (1)
+/* @brief Configures if the frame sync is generated internally, a frame sync is only generated when the FIFO warning flag is clear or continuously (register bit fields TCR4[ONDEM], RCR4[ONDEM]). */
+#define FSL_FEATURE_SAI_HAS_ON_DEMAND_MODE (1)
+/* @brief Simplified bit clock source and asynchronous/synchronous mode selection (register bit fields TCR2[CLKMODE], RCR2[CLKMODE]), in comparison with the exclusively implemented TCR2[SYNC,BCS,BCI,MSEL], RCR2[SYNC,BCS,BCI,MSEL]. */
+#define FSL_FEATURE_SAI_HAS_CLOCKING_MODE (0)
+/* @brief Has register for configuration of the MCLK divide ratio (register bit fields MDR[FRACT], MDR[DIVIDE]). */
+#define FSL_FEATURE_SAI_HAS_MCLKDIV_REGISTER (0)
+/* @brief Interrupt source number */
+#define FSL_FEATURE_SAI_INT_SOURCE_NUM (1)
+/* @brief Has register of MCR. */
+#define FSL_FEATURE_SAI_HAS_MCR (0)
+/* @brief Has bit field MICS of the MCR register. */
+#define FSL_FEATURE_SAI_HAS_NO_MCR_MICS (1)
+/* @brief Has register of MDR */
+#define FSL_FEATURE_SAI_HAS_MDR (0)
+/* @brief Has support the BCLK bypass mode when BCLK = MCLK. */
+#define FSL_FEATURE_SAI_HAS_BCLK_BYPASS (0)
+
+/* INTMUX module features */
+
+/* @brief Number of INTMUX channels (related to number of register CHn_CSR). */
+#define FSL_FEATURE_INTMUX_CHANNEL_COUNT (8)
+/* @brief Number of INTMUX IRQ source. */
+#define FSL_FEATURE_INTMUX_IRQ_COUNT (32)
+/* @brief The start IRQ index of first INTMUX source IRQ. */
+#define FSL_FEATURE_INTMUX_IRQ_START_INDEX (32)
+/* @brief The direction of INTMUX. OUT, route the CM4 subsystem IRQ to System. */
+#define FSL_FEATURE_INTMUX_DIRECTION_OUT (0)
+/* @brief The total number of level1 interrupt vectors. */
+#define FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS (32)
+
+/* LLWU module features */
+
+/* @brief Maximum number of pins connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN (32)
+/* @brief Maximum number of internal modules connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE (8)
+/* @brief Number of digital filters. */
+#define FSL_FEATURE_LLWU_HAS_PIN_FILTER (2)
+/* @brief Has MF register. */
+#define FSL_FEATURE_LLWU_HAS_MF (0)
+/* @brief Has PF register. */
+#define FSL_FEATURE_LLWU_HAS_PF (1)
+/* @brief Has possibility to enable reset in low leakage power mode and enable digital filter for RESET pin (register LLWU_RST). */
+#define FSL_FEATURE_LLWU_HAS_RESET_ENABLE (0)
+/* @brief Has no internal module wakeup flag register. */
+#define FSL_FEATURE_LLWU_HAS_NO_INTERNAL_MODULE_WAKEUP_FLAG_REG (1)
+/* @brief Has external pin 0 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN0 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN0_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN0_GPIO_PIN (1)
+/* @brief Has external pin 1 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN1 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN1_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN1_GPIO_PIN (2)
+/* @brief Has external pin 2 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN2 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN2_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN2_GPIO_PIN (22)
+/* @brief Has external pin 3 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN3 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN3_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN3_GPIO_PIN (30)
+/* @brief Has external pin 4 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN4 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN4_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN4_GPIO_PIN (1)
+/* @brief Has external pin 5 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN5 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN5_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN5_GPIO_PIN (2)
+/* @brief Has external pin 6 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN6 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN6_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN6_GPIO_PIN (4)
+/* @brief Has external pin 7 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN7 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN7_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN7_GPIO_PIN (6)
+/* @brief Has external pin 8 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN8 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN8_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN8_GPIO_PIN (7)
+/* @brief Has external pin 9 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN9 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN9_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN9_GPIO_PIN (8)
+/* @brief Has external pin 10 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN10 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN10_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN10_GPIO_PIN (16)
+/* @brief Has external pin 11 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN11 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN11_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN11_GPIO_PIN (20)
+/* @brief Has external pin 12 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN12 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN12_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN12_GPIO_PIN (22)
+/* @brief Has external pin 13 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN13 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN13_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN13_GPIO_PIN (25)
+/* @brief Has external pin 14 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN14 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN14_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN14_GPIO_PIN (28)
+/* @brief Has external pin 15 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN15 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN15_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN15_GPIO_PIN (7)
+/* @brief Has external pin 16 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN16 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN16_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN16_GPIO_PIN (9)
+/* @brief Has external pin 17 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN17 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN17_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN17_GPIO_PIN (11)
+/* @brief Has external pin 18 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN18 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN18_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN18_GPIO_PIN (12)
+/* @brief Has external pin 19 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN19 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN19_GPIO_IDX (GPIOD_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN19_GPIO_PIN (8)
+/* @brief Has external pin 20 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN20 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN20_GPIO_IDX (GPIOD_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN20_GPIO_PIN (10)
+/* @brief Has external pin 21 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN21 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN21_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN21_GPIO_PIN (1)
+/* @brief Has external pin 22 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN22 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN22_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN22_GPIO_PIN (3)
+/* @brief Has external pin 23 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN23 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN23_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN23_GPIO_PIN (8)
+/* @brief Has external pin 24 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN24 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN24_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN24_GPIO_PIN (9)
+/* @brief Has external pin 25 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN25 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN25_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN25_GPIO_PIN (10)
+/* @brief Has external pin 26 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN26 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN26_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN26_GPIO_PIN (12)
+/* @brief Has external pin 27 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN27 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN27_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN27_GPIO_PIN (0)
+/* @brief Has external pin 28 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN28 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN28_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN28_GPIO_PIN (0)
+/* @brief Has external pin 29 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN29 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN29_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN29_GPIO_PIN (0)
+/* @brief Has external pin 30 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN30 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN30_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN30_GPIO_PIN (0)
+/* @brief Has external pin 31 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN31 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN31_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN31_GPIO_PIN (0)
+/* @brief Has internal module 0 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE0 (1)
+/* @brief Has internal module 1 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE1 (1)
+/* @brief Has internal module 2 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE2 (1)
+/* @brief Has internal module 3 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE3 (1)
+/* @brief Has internal module 4 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE4 (1)
+/* @brief Has internal module 5 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE5 (1)
+/* @brief Has internal module 6 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE6 (1)
+/* @brief Has internal module 7 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE7 (1)
+/* @brief Has LLWU_VERID. */
+#define FSL_FEATURE_LLWU_HAS_VERID (1)
+/* @brief Has LLWU_PARAM. */
+#define FSL_FEATURE_LLWU_HAS_PARAM (1)
+/* @brief LLWU register bit width. */
+#define FSL_FEATURE_LLWU_REG_BITWIDTH (32)
+/* @brief Has DMA Enable register LLWU_DE. */
+#define FSL_FEATURE_LLWU_HAS_DMA_ENABLE_REG (1)
+
+/* LPDAC module features */
+
+/* @brief FIFO size. */
+#define FSL_FEATURE_LPDAC_FIFO_SIZE (16)
+
+/* LPI2C module features */
+
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPI2C_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPI2C_FIFO_SIZEn(x) (4)
+
+/* LPIT module features */
+
+/* @brief Number of channels (related to number of registers LDVALn, CVALn, TCTRLn, TFLGn). */
+#define FSL_FEATURE_LPIT_TIMER_COUNT (4)
+/* @brief Has lifetime timer (related to existence of registers LTMR64L and LTMR64H). */
+#define FSL_FEATURE_LPIT_HAS_LIFETIME_TIMER (0)
+/* @brief Has chain mode (related to existence of register bit field TCTRLn[CHN]). */
+#define FSL_FEATURE_LPIT_HAS_CHAIN_MODE (0)
+/* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */
+#define FSL_FEATURE_LPIT_HAS_SHARED_IRQ_HANDLER (0)
+
+/* LPSPI module features */
+
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPSPI_FIFO_SIZEn(x) (4)
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPSPI_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+
+/* LPTMR module features */
+
+/* @brief Has shared interrupt handler with another LPTMR module. */
+#define FSL_FEATURE_LPTMR_HAS_SHARED_IRQ_HANDLER (0)
+/* @brief Whether LPTMR counter is 32 bits width. */
+#define FSL_FEATURE_LPTMR_CNR_WIDTH_IS_32B (1)
+/* @brief Has timer DMA request enable (register bit CSR[TDRE]). */
+#define FSL_FEATURE_LPTMR_HAS_CSR_TDRE (1)
+
+/* LPUART module features */
+
+/* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
+#define FSL_FEATURE_LPUART_HAS_IRQ_EXTENDED_FUNCTIONS (0)
+/* @brief Has low power features (can be enabled in wait mode via register bit C1[DOZEEN] or CTRL[DOZEEN] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_LOW_POWER_UART_SUPPORT (1)
+/* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPUART_HAS_FIFO (1)
+/* @brief Has 32-bit register MODIR */
+#define FSL_FEATURE_LPUART_HAS_MODIR (1)
+/* @brief Hardware flow control (RTS, CTS) is supported. */
+#define FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT (1)
+/* @brief Infrared (modulation) is supported. */
+#define FSL_FEATURE_LPUART_HAS_IR_SUPPORT (1)
+/* @brief 2 bits long stop bit is available. */
+#define FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
+/* @brief If 10-bit mode is supported. */
+#define FSL_FEATURE_LPUART_HAS_10BIT_DATA_SUPPORT (1)
+/* @brief If 7-bit mode is supported. */
+#define FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT (1)
+/* @brief Baud rate fine adjustment is available. */
+#define FSL_FEATURE_LPUART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (0)
+/* @brief Baud rate oversampling is available (has bit fields C4[OSR], C5[BOTHEDGE], C5[RESYNCDIS] or BAUD[OSR], BAUD[BOTHEDGE], BAUD[RESYNCDIS] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (1)
+/* @brief Baud rate oversampling is available. */
+#define FSL_FEATURE_LPUART_HAS_RX_RESYNC_SUPPORT (1)
+/* @brief Baud rate oversampling is available. */
+#define FSL_FEATURE_LPUART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (1)
+/* @brief Peripheral type. */
+#define FSL_FEATURE_LPUART_IS_SCI (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPUART_FIFO_SIZEn(x) (8)
+/* @brief Maximal data width without parity bit. */
+#define FSL_FEATURE_LPUART_MAX_DATA_WIDTH_WITH_NO_PARITY (10)
+/* @brief Maximal data width with parity bit. */
+#define FSL_FEATURE_LPUART_MAX_DATA_WIDTH_WITH_PARITY (9)
+/* @brief Supports two match addresses to filter incoming frames. */
+#define FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING (1)
+/* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_DMA_ENABLE (1)
+/* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
+#define FSL_FEATURE_LPUART_HAS_DMA_SELECT (0)
+/* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_BIT_ORDER_SELECT (1)
+/* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
+#define FSL_FEATURE_LPUART_HAS_SMART_CARD_SUPPORT (0)
+/* @brief Has improved smart card (ISO7816 protocol) support. */
+#define FSL_FEATURE_LPUART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
+/* @brief Has local operation network (CEA709.1-B protocol) support. */
+#define FSL_FEATURE_LPUART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
+/* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
+#define FSL_FEATURE_LPUART_HAS_32BIT_REGISTERS (1)
+/* @brief Lin break detect available (has bit BAUD[LBKDIE]). */
+#define FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT (1)
+/* @brief UART stops in Wait mode available (has bit C1[UARTSWAI]). */
+#define FSL_FEATURE_LPUART_HAS_WAIT_MODE_OPERATION (0)
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPUART_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+/* @brief Has separate RX and TX interrupts. */
+#define FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ (0)
+/* @brief Has LPAURT_PARAM. */
+#define FSL_FEATURE_LPUART_HAS_PARAM (1)
+/* @brief Has LPUART_VERID. */
+#define FSL_FEATURE_LPUART_HAS_VERID (1)
+/* @brief Has LPUART_GLOBAL. */
+#define FSL_FEATURE_LPUART_HAS_GLOBAL (1)
+/* @brief Has LPUART_PINCFG. */
+#define FSL_FEATURE_LPUART_HAS_PINCFG (1)
+
+/* MCM module features */
+
+/* @brief Has L1 cache. */
+#define FSL_FEATURE_HAS_L1CACHE (1)
+
+/* MSCM module features */
+
+/* @brief Number of configuration information for processors. */
+#define FSL_FEATURE_MSCM_HAS_CP_COUNT (2)
+/* @brief Has data cache. */
+#define FSL_FEATURE_MSCM_HAS_DATACACHE (0)
+
+/* MU module features */
+
+/* @brief MU side for current core */
+#define FSL_FEATURE_MU_SIDE_A (1)
+/* @brief MU Has register CCR */
+#define FSL_FEATURE_MU_HAS_CCR (1)
+/* @brief MU Has register SR[RS], BSR[ARS] */
+#define FSL_FEATURE_MU_HAS_SR_RS (0)
+/* @brief MU Has register CR[RDIE], CR[RAIE], SR[RDIP], SR[RAIP] */
+#define FSL_FEATURE_MU_HAS_RESET_INT (1)
+/* @brief MU Has register SR[MURIP] */
+#define FSL_FEATURE_MU_HAS_SR_MURIP (1)
+/* @brief brief MU Has register SR[HRIP] */
+#define FSL_FEATURE_MU_HAS_SR_HRIP (1)
+/* @brief brief MU does not support enable clock of the other core, CR[CLKE] or CCR[CLKE]. */
+#define FSL_FEATURE_MU_NO_CLKE (0)
+/* @brief brief MU does not support NMI, CR[NMI]. */
+#define FSL_FEATURE_MU_NO_NMI (0)
+/* @brief brief MU does not support hold the other core reset. CR[RSTH] or CCR[RSTH]. */
+#define FSL_FEATURE_MU_NO_RSTH (0)
+/* @brief brief MU does not supports MU reset, CR[MUR]. */
+#define FSL_FEATURE_MU_NO_MUR (0)
+/* @brief brief MU does not supports hardware reset, CR[HR] or CCR[HR]. */
+#define FSL_FEATURE_MU_NO_HR (0)
+/* @brief brief MU supports mask the hardware reset. CR[HRM] or CCR[HRM]. */
+#define FSL_FEATURE_MU_HAS_HRM (1)
+
+/* interrupt module features */
+
+/* @brief Lowest interrupt request number. */
+#define FSL_FEATURE_INTERRUPT_IRQ_MIN (-14)
+/* @brief Highest interrupt request number. */
+#define FSL_FEATURE_INTERRUPT_IRQ_MAX (31)
+
+/* PCC module features */
+
+/* @brief Has CLOCK GATE CONTROL bit (e.g PCC_CGC) */
+#define FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL (1)
+
+/* PORT module features */
+
+/* @brief Has control lock (register bit PCR[LK]). */
+#define FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK (1)
+/* @brief Has open drain control (register bit PCR[ODE]). */
+#define FSL_FEATURE_PORT_HAS_OPEN_DRAIN (1)
+/* @brief Has digital filter (registers DFER, DFCR and DFWR). */
+#define FSL_FEATURE_PORT_HAS_DIGITAL_FILTER (1)
+/* @brief Has DMA request (register bit field PCR[IRQC] or ICR[IRQC] values). */
+#define FSL_FEATURE_PORT_HAS_DMA_REQUEST (1)
+/* @brief Has pull resistor selection available. */
+#define FSL_FEATURE_PORT_HAS_PULL_SELECTION (1)
+/* @brief Has pull resistor enable (register bit PCR[PE]). */
+#define FSL_FEATURE_PORT_HAS_PULL_ENABLE (1)
+/* @brief Has slew rate control (register bit PCR[SRE]). */
+#define FSL_FEATURE_PORT_HAS_SLEW_RATE (1)
+/* @brief Has passive filter (register bit field PCR[PFE]). */
+#define FSL_FEATURE_PORT_HAS_PASSIVE_FILTER (1)
+/* @brief Has drive strength control (register bit PCR[DSE]). */
+#define FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH (1)
+/* @brief Defines width of PCR[MUX] field. */
+#define FSL_FEATURE_PORT_PCR_MUX_WIDTH (3)
+/* @brief Has dedicated interrupt vector. */
+#define FSL_FEATURE_PORT_HAS_INTERRUPT_VECTOR (1)
+/* @brief Has independent interrupt control(register ICR). */
+#define FSL_FEATURE_PORT_HAS_INDEPENDENT_INTERRUPT_CONTROL (0)
+/* @brief Has multiple pin IRQ configuration (register GICLR and GICHR). */
+#define FSL_FEATURE_PORT_HAS_MULTIPLE_IRQ_CONFIG (1)
+/* @brief Defines whether PCR[IRQC] bit-field has flag states. */
+#define FSL_FEATURE_PORT_HAS_IRQC_FLAG (1)
+/* @brief Defines whether PCR[IRQC] bit-field has trigger states. */
+#define FSL_FEATURE_PORT_HAS_IRQC_TRIGGER (1)
+
+/* RTC module features */
+
+/* @brief Has wakeup pin. */
+#define FSL_FEATURE_RTC_HAS_WAKEUP_PIN (1)
+/* @brief Has wakeup pin selection (bit field CR[WPS]). */
+#define FSL_FEATURE_RTC_HAS_WAKEUP_PIN_SELECTION (1)
+/* @brief Has low power features (registers MER, MCLR and MCHR). */
+#define FSL_FEATURE_RTC_HAS_MONOTONIC (1)
+/* @brief Has read/write access control (registers WAR and RAR). */
+#define FSL_FEATURE_RTC_HAS_ACCESS_CONTROL (1)
+/* @brief Has security features (registers TTSR, MER, MCLR and MCHR). */
+#define FSL_FEATURE_RTC_HAS_SECURITY (1)
+/* @brief Has RTC_CLKIN available. */
+#define FSL_FEATURE_RTC_HAS_RTC_CLKIN (0)
+/* @brief Has prescaler adjust for LPO. */
+#define FSL_FEATURE_RTC_HAS_LPO_ADJUST (1)
+/* @brief Has Clock Pin Enable field. */
+#define FSL_FEATURE_RTC_HAS_CPE (1)
+/* @brief Has Timer Seconds Interrupt Configuration field. */
+#define FSL_FEATURE_RTC_HAS_TSIC (1)
+/* @brief Has OSC capacitor setting RTC_CR[SC2P ~ SC16P] */
+#define FSL_FEATURE_RTC_HAS_OSC_SCXP (1)
+/* @brief Has Tamper Interrupt Register (register TIR). */
+#define FSL_FEATURE_RTC_HAS_TIR (1)
+/* @brief Has Tamper Pin Interrupt Enable (bitfield TIR[TPIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_TPIE (1)
+/* @brief Has Security Interrupt Enable (bitfield TIR[SIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_SIE (1)
+/* @brief Has Loss of Clock Interrupt Enable (bitfield TIR[LCIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_LCIE (1)
+/* @brief Has Tamper Interrupt Detect Flag (bitfield SR[TIDF]). */
+#define FSL_FEATURE_RTC_HAS_SR_TIDF (1)
+/* @brief Has Tamper Detect Register (register TDR). */
+#define FSL_FEATURE_RTC_HAS_TDR (1)
+/* @brief Has Tamper Pin Flag (bitfield TDR[TPF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_TPF (1)
+/* @brief Has Security Tamper Flag (bitfield TDR[STF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_STF (1)
+/* @brief Has Loss of Clock Tamper Flag (bitfield TDR[LCTF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_LCTF (1)
+/* @brief Has Tamper Time Seconds Register (register TTSR). */
+#define FSL_FEATURE_RTC_HAS_TTSR (1)
+/* @brief Has Pin Configuration Register (register PCR). */
+#define FSL_FEATURE_RTC_HAS_PCR (1)
+/* @brief Has Oscillator Enable(bitfield CR[OSCE]). */
+#define FSL_FEATURE_RTC_HAS_NO_CR_OSCE (0)
+
+/* SCG module features */
+
+/* @brief Has platform clock divider SCG_CSR[DIVPLAT]. */
+#define FSL_FEATURE_SCG_HAS_DIVPLAT (0)
+/* @brief Has bus clock divider SCG_CSR[DIVBUS]. */
+#define FSL_FEATURE_SCG_HAS_DIVBUS (1)
+/* @brief Has external clock divide ratio SCG_CSR[DIVEXT]. */
+#define FSL_FEATURE_SCG_HAS_DIVEXT (1)
+/* @brief Has OSC capacitor setting SOSCCFG[SC2P ~ SC16P]. */
+#define FSL_FEATURE_SCG_HAS_OSC_SCXP (0)
+/* @brief Has SOSCCSR[SOSCERCLKEN]. */
+#define FSL_FEATURE_SCG_HAS_OSC_ERCLK (0)
+/* @brief Has OSC freq range SOSCCFG[RANGE]. */
+#define FSL_FEATURE_SCG_HAS_SOSC_RANGE (0)
+/* @brief Has CLKOUT configure register SCG_CLKOUTCNFG. */
+#define FSL_FEATURE_SCG_HAS_CLKOUTCNFG (1)
+/* @brief Has SCG_SOSCDIV[SOSCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SOSCDIV3 (1)
+/* @brief Has SCG_SIRCDIV[SIRCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SIRCDIV3 (1)
+/* @brief Has SCG_SIRCCSR[LPOPO]. */
+#define FSL_FEATURE_SCG_HAS_SIRC_LPOPO (0)
+/* @brief Has SCG_FIRCDIV[FIRCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_FIRCDIV3 (1)
+/* @brief Has SCG_FIRCCSR[FIRCLPEN]. */
+#define FSL_FEATURE_SCG_HAS_FIRCLPEN (1)
+/* @brief Has SCG_FIRCCSR[FIRCREGOFF]. */
+#define FSL_FEATURE_SCG_HAS_FIRCREGOFF (1)
+/* @brief Has SCG_SPLLDIV[SPLLDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SPLLDIV3 (0)
+/* @brief Has SCG_SPLLCFG[PLLPOSTDIV1]. */
+#define FSL_FEATURE_SCG_HAS_SPLLPOSTDIV1 (0)
+/* @brief Has SCG_SPLLCFG[PLLPOSTDIV2]. */
+#define FSL_FEATURE_SCG_HAS_SPLLPOSTDIV2 (0)
+/* @brief Has SCG_SPLLCFG[PLLS]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_PLLS (0)
+/* @brief Has SCG_SPLLCFG[BYPASS]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_BYPASS (0)
+/* @brief Has SCG_SPLLCFG[PFDSEL]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_PFDSEL (0)
+/* @brief Has SCG_SPLLCSR[SPLLCM]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_MONITOR (0)
+/* @brief Has SCG_LPFLLDIV[FLLDIV3]. */
+#define FSL_FEATURE_SCG_HAS_FLLDIV3 (1)
+/* @brief Has low power FLL, SCG_LPFLLCSR. */
+#define FSL_FEATURE_SCG_HAS_LPFLL (1)
+/* @brief Has system PLL, SCG_SPLLCSR. */
+#define FSL_FEATURE_SCG_HAS_SPLL (0)
+/* @brief Has system PLL PFD, SCG_SPLLPFD. */
+#define FSL_FEATURE_SCG_HAS_SPLLPFD (0)
+/* @brief Has auxiliary PLL, SCG_APLLCSR. */
+#define FSL_FEATURE_SCG_HAS_APLL (0)
+/* @brief Has RTC OSC control, SCG_ROSCCSR. */
+#define FSL_FEATURE_SCG_HAS_ROSC (1)
+/* @brief Has RTC OSC clock source. */
+#define FSL_FEATURE_SCG_HAS_ROSC_SYS_CLK_SRC (1)
+/* @brief Has RTC OSC clock out select. */
+#define FSL_FEATURE_SCG_HAS_ROSC_CLKOUT (1)
+/* @brief Has EXTERNAL clock out select. */
+#define FSL_FEATURE_SCG_HAS_EXT_CLKOUT (1)
+/* @brief Has no System OSC configuration register, SCG_SOSCCFG. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCFG (1)
+/* @brief Has no SCG_SOSCCSR[SOSCEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCEN (0)
+/* @brief Has no SCG_SOSCCSR[SOSCSTEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCSTEN (0)
+/* @brief Has no SCG_SOSCCSR[SOSCLPEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCLPEN (0)
+/* @brief Has no FIRC trim configuration register, SCG_FIRCTCFG. */
+#define FSL_FEATURE_SCG_HAS_NO_FIRCTCFG (0)
+/* @brief Has FIRC trim source USB0 Start of Frame. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_USB0 (0)
+/* @brief Has FIRC trim source USB1 Start of Frame. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_USB1 (0)
+/* @brief Has FIRC trim source system OSC. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_SOSC (1)
+/* @brief Has FIRC trim source RTC OSC. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_RTCOSC (1)
+
+/* SEMA42 module features */
+
+/* @brief Gate counts */
+#define FSL_FEATURE_SEMA42_GATE_COUNT (16)
+
+/* SIM module features */
+
+/* @brief Has USB FS divider. */
+#define FSL_FEATURE_SIM_USBFS_USE_SPECIAL_DIVIDER (0)
+/* @brief Is PLL clock divided by 2 before MCG PLL/FLL clock selection. */
+#define FSL_FEATURE_SIM_PLLCLK_USE_SPECIAL_DIVIDER (0)
+/* @brief Has RAM size specification (register bit field SOPT1[RAMSIZE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RAMSIZE (0)
+/* @brief Has 32k oscillator clock output (register bit SOPT1[OSC32KOUT]). */
+#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_OUT (0)
+/* @brief Has 32k oscillator clock selection (register bit field SOPT1[OSC32KSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_SELECTION (0)
+/* @brief 32k oscillator clock selection width (width of register bit field SOPT1[OSC32KSEL]). */
+#define FSL_FEATURE_SIM_OPT_OSC32K_SELECTION_WIDTH (0)
+/* @brief Has RTC clock output selection (register bit SOPT2[RTCCLKOUTSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RTC_CLOCK_OUT_SELECTION (0)
+/* @brief Has USB voltage regulator (register bits SOPT1[USBVSTBY], SOPT1[USBSSTBY], SOPT1[USBREGEN], SOPT1CFG[URWE], SOPT1CFG[UVSWE], SOPT1CFG[USSWE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USB_VOLTAGE_REGULATOR (0)
+/* @brief USB has integrated PHY (register bits USBPHYCTL[USBVREGSEL], USBPHYCTL[USBVREGPD], USBPHYCTL[USB3VOUTTRG], USBPHYCTL[USBDISILIM], SOPT2[USBSLSRC], SOPT2[USBREGEN]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USB_PHY (0)
+/* @brief Has PTD7 pad drive strength control (register bit SOPT2[PTD7PAD]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PTD7PAD (0)
+/* @brief Has FlexBus security level selection (register bit SOPT2[FBSL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FBSL (0)
+/* @brief Has number of FlexBus hold cycle before FlexBus can release bus (register bit SOPT6[PCR]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PCR (0)
+/* @brief Has number of NFC hold cycle in case of FlexBus request (register bit SOPT6[MCC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_MCC (0)
+/* @brief Has UART open drain enable (register bits UARTnODE, where n is a number, in register SOPT5). */
+#define FSL_FEATURE_SIM_OPT_HAS_ODE (0)
+/* @brief Number of LPUART modules (number of register bits LPUARTn, where n is a number, in register SCGC5). */
+#define FSL_FEATURE_SIM_OPT_LPUART_COUNT (0)
+/* @brief Number of UART modules (number of register bits UARTn, where n is a number, in register SCGC4). */
+#define FSL_FEATURE_SIM_OPT_UART_COUNT (0)
+/* @brief Has UART0 open drain enable (register bit SOPT5[UART0ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_ODE (0)
+/* @brief Has UART1 open drain enable (register bit SOPT5[UART1ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_ODE (0)
+/* @brief Has UART2 open drain enable (register bit SOPT5[UART2ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART2_ODE (0)
+/* @brief Has LPUART0 open drain enable (register bit SOPT5[LPUART0ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_ODE (0)
+/* @brief Has LPUART1 open drain enable (register bit SOPT5[LPUART1ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_ODE (0)
+/* @brief Has CMT/UART pad drive strength control (register bit SOPT2[CMTUARTPAD]). */
+#define FSL_FEATURE_SIM_OPT_HAS_CMTUARTPAD (0)
+/* @brief Has LPUART0 transmit data source selection (register bit SOPT5[LPUART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_TX_SRC (0)
+/* @brief Has LPUART0 receive data source selection (register bit SOPT5[LPUART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_RX_SRC (0)
+/* @brief Has LPUART1 transmit data source selection (register bit SOPT5[LPUART1TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_TX_SRC (0)
+/* @brief Has LPUART1 receive data source selection (register bit SOPT5[LPUART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_RX_SRC (0)
+/* @brief Has UART0 transmit data source selection (register bit SOPT5[UART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_TX_SRC (0)
+/* @brief UART0 transmit data source selection width (width of register bit SOPT5[UART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART0_TX_SRC_WIDTH (0)
+/* @brief Has UART0 receive data source selection (register bit SOPT5[UART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_RX_SRC (0)
+/* @brief UART0 receive data source selection width (width of register bit SOPT5[UART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART0_RX_SRC_WIDTH (0)
+/* @brief Has UART1 transmit data source selection (register bit SOPT5[UART1TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_TX_SRC (0)
+/* @brief Has UART1 receive data source selection (register bit SOPT5[UART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_RX_SRC (0)
+/* @brief UART1 receive data source selection width (width of register bit SOPT5[UART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART1_RX_SRC_WIDTH (0)
+/* @brief Has FTM module(s) configuration. */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM (0)
+/* @brief Number of FTM modules. */
+#define FSL_FEATURE_SIM_OPT_FTM_COUNT (0)
+/* @brief Number of FTM triggers with selectable source. */
+#define FSL_FEATURE_SIM_OPT_FTM_TRIGGER_COUNT (0)
+/* @brief Has FTM0 triggers source selection (register bits SOPT4[FTM0TRGnSRC], where n is a number). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM0_TRIGGER (0)
+/* @brief Has FTM3 triggers source selection (register bits SOPT4[FTM3TRGnSRC], where n is a number). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM3_TRIGGER (0)
+/* @brief Has FTM1 channel 0 input capture source selection (register bit SOPT4[FTM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM1_CHANNELS (0)
+/* @brief Has FTM2 channel 0 input capture source selection (register bit SOPT4[FTM2CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNELS (0)
+/* @brief Has FTM3 channel 0 input capture source selection (register bit SOPT4[FTM3CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM3_CHANNELS (0)
+/* @brief Has FTM2 channel 1 input capture source selection (register bit SOPT4[FTM2CH1SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNEL1 (0)
+/* @brief Number of configurable FTM0 fault detection input (number of register bits SOPT4[FTM0FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM0_FAULT_COUNT (0)
+/* @brief Number of configurable FTM1 fault detection input (number of register bits SOPT4[FTM1FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM1_FAULT_COUNT (0)
+/* @brief Number of configurable FTM2 fault detection input (number of register bits SOPT4[FTM2FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM2_FAULT_COUNT (0)
+/* @brief Number of configurable FTM3 fault detection input (number of register bits SOPT4[FTM3FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM3_FAULT_COUNT (0)
+/* @brief Has FTM hardware trigger 0 software synchronization (register bit SOPT8[FTMnSYNCBIT], where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM_TRIGGER_SYNC (0)
+/* @brief Has FTM channels output source selection (register bit SOPT8[FTMxOCHnSRC], where x is a module instance index and n is a channel index). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM_CHANNELS_OUTPUT_SRC (0)
+/* @brief Has TPM module(s) configuration. */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM (0)
+/* @brief The highest TPM module index. */
+#define FSL_FEATURE_SIM_OPT_MAX_TPM_INDEX (0)
+/* @brief Has TPM module with index 0. */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM0 (0)
+/* @brief Has TPM0 clock selection (register bit field SOPT4[TPM0CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM0_CLK_SEL (0)
+/* @brief Is TPM channels configuration in the SOPT4 (not SOPT9) register (register bits TPMnCH0SRC, TPMnCLKSEL, where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM_CHANNELS_CONFIG_IN_SOPT4_REG (0)
+/* @brief Has TPM1 channel 0 input capture source selection (register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CH0_SRC_SELECTION (0)
+/* @brief Has TPM1 clock selection (register bit field SOPT4[TPM1CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CLK_SEL (0)
+/* @brief TPM1 channel 0 input capture source selection width (width of register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_TPM1_CH0_SRC_SELECTION_WIDTH (0)
+/* @brief Has TPM2 channel 0 input capture source selection (register bit field SOPT4[TPM2CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CH0_SRC_SELECTION (0)
+/* @brief Has TPM2 clock selection (register bit field SOPT4[TPM2CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CLK_SEL (0)
+/* @brief Has PLL/FLL clock selection (register bit field SOPT2[PLLFLLSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PLL_FLL_SELECTION (0)
+/* @brief PLL/FLL clock selection width (width of register bit field SOPT2[PLLFLLSEL]). */
+#define FSL_FEATURE_SIM_OPT_PLL_FLL_SELECTION_WIDTH (0)
+/* @brief Has NFC clock source selection (register bit SOPT2[NFCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_NFCSRC (0)
+/* @brief Has eSDHC clock source selection (register bit SOPT2[ESDHCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_ESDHCSRC (0)
+/* @brief Has SDHC clock source selection (register bit SOPT2[SDHCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_SDHCSRC (0)
+/* @brief Has LCDC clock source selection (register bits SOPT2[LCDCSRC], SOPT2[LCDC_CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LCDCSRC (0)
+/* @brief Has ENET timestamp clock source selection (register bit SOPT2[TIMESRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TIMESRC (0)
+/* @brief Has ENET RMII clock source selection (register bit SOPT2[RMIISRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RMIISRC (0)
+/* @brief Has USB clock source selection (register bit SOPT2[USBSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBSRC (0)
+/* @brief Has USB FS clock source selection (register bit SOPT2[USBFSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBFSRC (0)
+/* @brief Has USB HS clock source selection (register bit SOPT2[USBHSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBHSRC (0)
+/* @brief Has LPUART clock source selection (register bit SOPT2[LPUARTSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUARTSRC (0)
+/* @brief Has LPUART0 clock source selection (register bit SOPT2[LPUART0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0SRC (0)
+/* @brief Has LPUART1 clock source selection (register bit SOPT2[LPUART1SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1SRC (0)
+/* @brief Has FLEXIOSRC clock source selection (register bit SOPT2[FLEXIOSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FLEXIOSRC (0)
+/* @brief Has UART0 clock source selection (register bit SOPT2[UART0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0SRC (0)
+/* @brief Has TPM clock source selection (register bit SOPT2[TPMSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPMSRC (0)
+/* @brief Has debug trace clock selection (register bit SOPT2[TRACECLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TRACE_CLKSEL (0)
+/* @brief Number of ADC modules (register bits SOPT7[ADCnTRGSEL], SOPT7[ADCnPRETRGSEL], SOPT7[ADCnALTTRGSEL], where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_ADC_COUNT (0)
+/* @brief ADC module has alternate trigger (register bit SOPT7[ADC0ALTTRGEN]). */
+#define FSL_FEATURE_SIM_OPT_ADC_HAS_ALTERNATE_TRIGGER (0)
+/* @brief ADC0 alternate trigger enable width (width of bit field ADC0ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC0ALTTRGEN_WIDTH (0)
+/* @brief ADC1 alternate trigger enable width (width of bit field ADC1ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC1ALTTRGEN_WIDTH (0)
+/* @brief ADC2 alternate trigger enable width (width of bit field ADC2ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC2ALTTRGEN_WIDTH (0)
+/* @brief ADC3 alternate trigger enable width (width of bit field ADC3ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC3ALTTRGEN_WIDTH (0)
+/* @brief HSADC0 converter A alternate trigger enable width (width of bit field HSADC0AALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC0AALTTRGEN_WIDTH (0)
+/* @brief HSADC1 converter A alternate trigger enable width (width of bit field HSADC1AALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC1AALTTRGEN_WIDTH (0)
+/* @brief ADC converter A alternate trigger enable width (width of bit field ADCAALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADCAALTTRGEN_WIDTH (0)
+/* @brief HSADC0 converter B alternate trigger enable width (width of bit field HSADC0BALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC0BALTTRGEN_WIDTH (0)
+/* @brief HSADC1 converter B alternate trigger enable width (width of bit field HSADC1BALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC1BALTTRGEN_WIDTH (0)
+/* @brief ADC converter B alternate trigger enable width (width of bit field ADCBALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADCBALTTRGEN_WIDTH (0)
+/* @brief Has clock 2 output divider (register bit field CLKDIV1[OUTDIV2]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV2 (0)
+/* @brief Has clock 3 output divider (register bit field CLKDIV1[OUTDIV3]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV3 (0)
+/* @brief Has clock 4 output divider (register bit field CLKDIV1[OUTDIV4]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV4 (0)
+/* @brief Clock 4 output divider width (width of register bit field CLKDIV1[OUTDIV4]). */
+#define FSL_FEATURE_SIM_DIVIDER_OUTDIV4_WIDTH (0)
+/* @brief Has clock 5 output divider (register bit field CLKDIV1[OUTDIV5]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV5 (0)
+/* @brief Has USB clock divider (register bit field CLKDIV2[USBDIV] and CLKDIV2[USBFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBDIV (0)
+/* @brief Has USB FS clock divider (register bit field CLKDIV2[USBFSDIV] and CLKDIV2[USBFSFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBFSDIV (0)
+/* @brief Has USB HS clock divider (register bit field CLKDIV2[USBHSDIV] and CLKDIV2[USBHSFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBHSDIV (0)
+/* @brief Has PLL/FLL clock divider (register bit field CLKDIV3[PLLFLLDIV] and CLKDIV3[PLLFLLFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_PLLFLLDIV (0)
+/* @brief Has LCDC clock divider (register bit field CLKDIV3[LCDCDIV] and CLKDIV3[LCDCFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_LCDCDIV (0)
+/* @brief Has trace clock divider (register bit field CLKDIV4[TRACEDIV] and CLKDIV4[TRACEFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_TRACEDIV (0)
+/* @brief Has NFC clock divider (register bit field CLKDIV4[NFCDIV] and CLKDIV4[NFCFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_NFCDIV (0)
+/* @brief Has Kinetis family ID (register bit field SDID[FAMILYID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_FAMILYID (0)
+/* @brief Has Kinetis family ID (register bit field SDID[FAMID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_FAMID (1)
+/* @brief Has Kinetis sub-family ID (register bit field SDID[SUBFAMID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SUBFAMID (1)
+/* @brief Has Kinetis series ID (register bit field SDID[SERIESID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SERIESID (1)
+/* @brief Has device die ID (register bit field SDID[DIEID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_DIEID (1)
+/* @brief Has system SRAM size specifier (register bit field SDID[SRAMSIZE]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SRAMSIZE (0)
+/* @brief Has flash mode (register bit FCFG1[FLASHDOZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDOZE (1)
+/* @brief Has flash disable (register bit FCFG1[FLASHDIS]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDIS (1)
+/* @brief Has FTFE disable (register bit FCFG1[FTFDIS]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FTFDIS (0)
+/* @brief Has FlexNVM size specifier (register bit field FCFG1[NVMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_NVMSIZE (0)
+/* @brief Has EEPROM size specifier (register bit field FCFG1[EESIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_EESIZE (0)
+/* @brief Has FlexNVM partition (register bit field FCFG1[DEPART]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_DEPART (0)
+/* @brief Has flash for core0(CM4) (register bit field FCFG1[CORE0_PFSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE0_PFSIZE (1)
+/* @brief Has flash for core1(CM0) (register bit field FCFG1[CORE1_PFSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE1_PFSIZE (1)
+/* @brief Has sram for core0(CM4) (register bit field FCFG1[CORE0_SRAMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE0_SRAMSIZE (1)
+/* @brief Has sram for core1(CM0) (register bit field FCFG1[CORE1_SRAMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE1_SRAMSIZE (1)
+/* @brief Maximum flash address block 0 address specifier (register bit field FCFG2[MAXADDR0]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR0 (0)
+/* @brief Maximum flash address block 1 address specifier (register bit field FCFG2[MAXADDR1]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR1 (0)
+/* @brief Maximum flash address block 0 or 1 address specifier (register bit field FCFG2[MAXADDR01]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR01 (1)
+/* @brief Maximum flash address block 2 or 3 address specifier (register bit field FCFG2[MAXADDR23]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR23 (0)
+/* @brief Has program flash availability specifier (register bit FCFG2[PFLSH]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH (0)
+/* @brief Has program flash swapping (register bit FCFG2[SWAPPFLSH]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH_SWAP (0)
+/* @brief Has miscellanious control register (register MCR). */
+#define FSL_FEATURE_SIM_HAS_MISC_CONTROLS (0)
+/* @brief Has COP watchdog (registers COPC and SRVCOP). */
+#define FSL_FEATURE_SIM_HAS_COP_WATCHDOG (0)
+/* @brief Has COP watchdog stop (register bits COPC[COPSTPEN], COPC[COPDBGEN] and COPC[COPCLKSEL]). */
+#define FSL_FEATURE_SIM_HAS_COP_STOP (0)
+/* @brief Has LLWU clock gate bit (e.g SIM_SCGC4). */
+#define FSL_FEATURE_SIM_HAS_SCGC_LLWU (0)
+/* @brief Has MISCCTRL reg. */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL (0)
+/* @brief Has LTCEN bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_LTCEN (0)
+/* @brief Has DMAINTSEL0 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL0 (0)
+/* @brief Has DMAINTSEL1 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL1 (0)
+/* @brief Has DMAINTSEL2 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL2 (0)
+/* @brief Has DMAINTSEL3 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL3 (0)
+/* @brief Has SECKEY0 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY0 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY0). */
+#define FSL_FEATURE_SIM_HAS_SECKEY0_SECKEY (0)
+/* @brief Has SECKEY1 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY1 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY1). */
+#define FSL_FEATURE_SIM_HAS_SECKEY1_SECKEY (0)
+/* @brief Has SECKEY2 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY2 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY2). */
+#define FSL_FEATURE_SIM_HAS_SECKEY2_SECKEY (0)
+/* @brief Has SECKEY3 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY3 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY3). */
+#define FSL_FEATURE_SIM_HAS_SECKEY3_SECKEY (0)
+/* @brief Has no SDID reg. */
+#define FSL_FEATURE_SIM_HAS_NO_SDID (0)
+/* @brief Has no UID reg. */
+#define FSL_FEATURE_SIM_HAS_NO_UID (0)
+/* @brief Has RFADDRL and RFADDRH registers. */
+#define FSL_FEATURE_SIM_HAS_RF_MAC_ADDR (1)
+/* @brief Has SYSTICK_CLK_EN bit in SIM_MISC2 register. */
+#define FSL_FEATURE_SIM_MISC2_HAS_SYSTICK_CLK_EN (1)
+/* @brief Has UIDM registers. */
+#define FSL_FEATURE_SIM_HAS_UIDM (1)
+
+/* SMC module features */
+
+/* @brief Has partial stop option (register bit STOPCTRL[PSTOPO]). */
+#define FSL_FEATURE_SMC_HAS_PSTOPO (0)
+/* @brief Has LPO power option (register bit STOPCTRL[LPOPO]). */
+#define FSL_FEATURE_SMC_HAS_LPOPO (0)
+/* @brief Has POR power option (register bit STOPCTRL[PORPO] or VLLSCTRL[PORPO]). */
+#define FSL_FEATURE_SMC_HAS_PORPO (0)
+/* @brief Has low power wakeup on interrupt (register bit PMCTRL[LPWUI]). */
+#define FSL_FEATURE_SMC_HAS_LPWUI (0)
+/* @brief Has LLS or VLLS mode control (register bit STOPCTRL[LLSM]). */
+#define FSL_FEATURE_SMC_HAS_LLS_SUBMODE (0)
+/* @brief Has RAM partition 2 power option (register bit STOPCTRL[RAM2PO]). */
+#define FSL_FEATURE_SMC_HAS_RAM2_POWER_OPTION (0)
+/* @brief Has VLLS mode control (register bit VLLSCTRL[VLLSM]). */
+#define FSL_FEATURE_SMC_USE_VLLSCTRL_REG (0)
+/* @brief Has VLLS mode control (register bit STOPCTRL[VLLSM]). */
+#define FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM (0)
+/* @brief Has high speed run mode (register bit PMPROT[AHSRUN]). */
+#define FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE (1)
+/* @brief Has low leakage stop mode (register bit PMPROT[ALLS]). */
+#define FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE (1)
+/* @brief Has very low leakage stop mode (register bit PMPROT[AVLLS]). */
+#define FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE (1)
+/* @brief Has stop submode. */
+#define FSL_FEATURE_SMC_HAS_SUB_STOP_MODE (1)
+/* @brief Has stop submode 0(VLLS0). */
+#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 (1)
+/* @brief Has stop submode 2(VLLS2). */
+#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE2 (1)
+/* @brief Has SMC_PARAM. */
+#define FSL_FEATURE_SMC_HAS_PARAM (1)
+/* @brief Has SMC_VERID. */
+#define FSL_FEATURE_SMC_HAS_VERID (1)
+/* @brief Has SMC_CSRE. */
+#define FSL_FEATURE_SMC_HAS_CSRE (0)
+/* @brief Has stop abort flag (register bit PMCTRL[STOPA]). */
+#define FSL_FEATURE_SMC_HAS_PMCTRL_STOPA (0)
+/* @brief Has tamper reset (register bit SRS[TAMPER]). */
+#define FSL_FEATURE_SMC_HAS_SRS_TAMPER (0)
+/* @brief Has security violation reset (register bit SRS[SECVIO]). */
+#define FSL_FEATURE_SMC_HAS_SRS_SECVIO (0)
+/* @brief Has security violation reset (register bit SRS[VBAT]). */
+#define FSL_FEATURE_SMC_HAS_SRS_VBAT (0)
+/* @brief Has security violation reset (register bit SRS[CORE0]). */
+#define FSL_FEATURE_SMC_HAS_SRS_CORE0 (1)
+/* @brief Has security violation reset (register bit SRS[CORE1]). */
+#define FSL_FEATURE_SMC_HAS_SRS_CORE1 (1)
+/* @brief Has security violation reset (register bit SRIE[VBAT]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_VBAT (0)
+/* @brief Has security violation reset (register bit SRIE[CORE0]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_CORE0 (1)
+/* @brief Has security violation reset (register bit SRIE[CORE1]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_CORE1 (1)
+
+/* SysTick module features */
+
+/* @brief Systick has external reference clock. */
+#define FSL_FEATURE_SYSTICK_HAS_EXT_REF (1)
+/* @brief Systick external reference clock is core clock divided by this value. */
+#define FSL_FEATURE_SYSTICK_EXT_REF_CORE_DIV (16)
+
+/* TPM module features */
+
+/* @brief Number of channels. */
+#define FSL_FEATURE_TPM_CHANNEL_COUNTn(x) \
+    ((x) == TPM0 ? (6) : \
+    ((x) == TPM1 ? (2) : \
+    ((x) == TPM2 ? (6) : \
+    ((x) == TPM3 ? (2) : (-1)))))
+/* @brief Has counter reset by the selected input capture event (register bits C0SC[ICRST], C1SC[ICRST], ...). */
+#define FSL_FEATURE_TPM_HAS_COUNTER_RESET_BY_CAPTURE_EVENT (0)
+/* @brief Has TPM_PARAM. */
+#define FSL_FEATURE_TPM_HAS_PARAM (1)
+/* @brief Has TPM_VERID. */
+#define FSL_FEATURE_TPM_HAS_VERID (1)
+/* @brief Has TPM_GLOBAL. */
+#define FSL_FEATURE_TPM_HAS_GLOBAL (1)
+/* @brief Has TPM_TRIG. */
+#define FSL_FEATURE_TPM_HAS_TRIG (1)
+/* @brief Has counter pause on trigger. */
+#define FSL_FEATURE_TPM_HAS_PAUSE_COUNTER_ON_TRIGGER (1)
+/* @brief Has external trigger selection. */
+#define FSL_FEATURE_TPM_HAS_EXTERNAL_TRIGGER_SELECTION (1)
+/* @brief Has TPM_COMBINE register. */
+#define FSL_FEATURE_TPM_HAS_COMBINE (1)
+/* @brief Whether COMBINE register has effect. */
+#define FSL_FEATURE_TPM_COMBINE_HAS_EFFECTn(x) (1)
+/* @brief Has TPM_POL. */
+#define FSL_FEATURE_TPM_HAS_POL (1)
+/* @brief Has TPM_FILTER register. */
+#define FSL_FEATURE_TPM_HAS_FILTER (1)
+/* @brief Whether FILTER register has effect. */
+#define FSL_FEATURE_TPM_FILTER_HAS_EFFECTn(x) (1)
+/* @brief Has TPM_QDCTRL register. */
+#define FSL_FEATURE_TPM_HAS_QDCTRL (1)
+/* @brief Whether QDCTRL register has effect. */
+#define FSL_FEATURE_TPM_QDCTRL_HAS_EFFECTn(x) (1)
+
+/* TRGMUX module features */
+
+/* No feature definitions */
+
+/* TRNG module features */
+
+/* No feature definitions */
+
+/* TSTMR module features */
+
+/* @brief TSTMR clock frequency is 1MHZ. */
+#define FSL_FEATURE_TSTMR_CLOCK_FREQUENCY_1MHZ (1)
+
+/* USB module features */
+
+/* @brief KHCI module instance count */
+#define FSL_FEATURE_USB_KHCI_COUNT (1)
+/* @brief HOST mode enabled */
+#define FSL_FEATURE_USB_KHCI_HOST_ENABLED (0)
+/* @brief OTG mode enabled */
+#define FSL_FEATURE_USB_KHCI_OTG_ENABLED (0)
+/* @brief Size of the USB dedicated RAM */
+#define FSL_FEATURE_USB_KHCI_USB_RAM (2048)
+/* @brief Base address of the USB dedicated RAM */
+#define FSL_FEATURE_USB_KHCI_USB_RAM_BASE_ADDRESS (1208025088)
+/* @brief Has KEEP_ALIVE_CTRL register */
+#define FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED (1)
+/* @brief Mode control of the USB Keep Alive */
+#define FSL_FEATURE_USB_KHCI_KEEP_ALIVE_MODE_CONTROL (USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK)
+/* @brief Has the Dynamic SOF threshold compare support */
+#define FSL_FEATURE_USB_KHCI_DYNAMIC_SOF_THRESHOLD_COMPARE_ENABLED (1)
+/* @brief Has the VBUS detect support */
+#define FSL_FEATURE_USB_KHCI_VBUS_DETECT_ENABLED (1)
+/* @brief Has the IRC48M module clock support */
+#define FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED (1)
+/* @brief Number of endpoints supported */
+#define FSL_FEATURE_USB_ENDPT_COUNT (16)
+/* @brief Has STALL_IL/OL_DIS registers */
+#define FSL_FEATURE_USB_KHCI_HAS_STALL_LOW (1)
+/* @brief Has STALL_IH/OH_DIS registers */
+#define FSL_FEATURE_USB_KHCI_HAS_STALL_HIGH (1)
+
+/* USDHC module features */
+
+/* @brief Has external DMA support (VEND_SPEC[EXT_DMA_EN]) */
+#define FSL_FEATURE_USDHC_HAS_EXT_DMA (0)
+/* @brief Has HS400 mode (MIX_CTRL[HS400_MODE]) */
+#define FSL_FEATURE_USDHC_HAS_HS400_MODE (0)
+/* @brief Has SDR50 support (HOST_CTRL_CAP[SDR50_SUPPORT]) */
+#define FSL_FEATURE_USDHC_HAS_SDR50_MODE (0)
+/* @brief Has SDR104 support (HOST_CTRL_CAP[SDR104_SUPPORT]) */
+#define FSL_FEATURE_USDHC_HAS_SDR104_MODE (0)
+
+/* VREF module features */
+
+/* @brief Has chop oscillator (bit TRM[CHOPEN]) */
+#define FSL_FEATURE_VREF_HAS_CHOP_OSC (1)
+/* @brief Has second order curvature compensation (bit SC[ICOMPEN]) */
+#define FSL_FEATURE_VREF_HAS_COMPENSATION (1)
+/* @brief If high/low buffer mode supported */
+#define FSL_FEATURE_VREF_MODE_LV_TYPE (1)
+/* @brief Module has also low reference (registers VREFL/VREFH) */
+#define FSL_FEATURE_VREF_HAS_LOW_REFERENCE (0)
+/* @brief Has VREF_TRM4. */
+#define FSL_FEATURE_VREF_HAS_TRM4 (1)
+
+/* WDOG module features */
+
+/* @brief Watchdog is available. */
+#define FSL_FEATURE_WDOG_HAS_WATCHDOG (1)
+/* @brief WDOG_CNT can be 32-bit written. */
+#define FSL_FEATURE_WDOG_HAS_32BIT_ACCESS (1)
+
+/* XRDC module features */
+
+/* @brief Does not have global valid (register bit CR[GVLD]). */
+#define FSL_FEATURE_XRDC_HAS_NO_CR_GVLD (1)
+/* @brief Has domain ID of faulted access (register bit FDID[FDID]). */
+#define FSL_FEATURE_XRDC_HAS_FDID (1)
+/* @brief Has special 4-state model option (register bit PID[SP4SM]). */
+#define FSL_FEATURE_XRDC_PID_SP4SM (1)
+/* @brief Does not have logical partition identifier (register bit MDA_W[LPID]). */
+#define FSL_FEATURE_XRDC_NO_MDA_LPID (1)
+/* @brief Does not have logical partition enable option (register bit MDA_W[LPE]). */
+#define FSL_FEATURE_XRDC_NO_MDA_LPE (1)
+/* @brief Does not have peripheral semaphore enable option (register bit PDAC_W0[SE]). */
+#define FSL_FEATURE_XRDC_NO_PDAC_SE (1)
+/* @brief Does not have peripheral semaphore number (register bit PDAC_W0[SNUM]). */
+#define FSL_FEATURE_XRDC_NO_PDAC_SNUM (1)
+/* @brief Has peripheral excessive access lock owner (register bit PDAC_W0[EALO]). */
+#define FSL_FEATURE_XRDC_HAS_PDAC_EALO (1)
+/* @brief Has peripheral excessive access lock option (register bit PDAC_W1[EAL]). */
+#define FSL_FEATURE_XRDC_HAS_PDAC_EAL (1)
+/* @brief Has memory region end address (register bit MRGD_W1[ENDADDR]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_ENDADDR (1)
+/* @brief Does not have memory region semaphore enable option (register bit MRGD_W2[SE]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SE (1)
+/* @brief Does not have memory region semaphore number (register bit MRGD_W2[SNUM]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SNUM (1)
+/* @brief Does not domain x access control policy option (register bit MRGD_W2[DxACP]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_DXACP (1)
+/* @brief Does not have region size configuration (register bit MRGD_W2[SZ]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SZ (1)
+/* @brief Does not have subregion disable option (register bit MRGD_W2[SRD]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SRD (1)
+/* @brief Has memory region excessive access lock owner (register bit MRGD_W2[EALO]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_EALO (1)
+/* @brief Has domain x access policy select option (register bit MRGD_W2[DxSEL]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_DXSEL (1)
+/* @brief Has memory region excessive access lock option (register bit MRGD_W3[EAL]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_EAL (1)
+/* @brief Does not have lock option in MRGD_W3 register (register bit MRGD_W3[LK2]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_W3_LK2 (1)
+/* @brief Does not have valid option in MRGD_W3 register (register bit MRGD_W3[VLD]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_W3_VLD (1)
+/* @brief Has code region indicator select option (register bit MRGD_W3[CR]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_CR (1)
+/* @brief Has ASSSET lock option (register bit MRGD_W4[LKAS1]/[LKAS2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_LKAS (1)
+/* @brief Has programmable access flags (register bit MRGD_W4[ACCSET1]/[ACCSET2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_ACCSET (1)
+/* @brief Has lock option in MRGD_W4 register (register bit MRGD_W4[LK2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_W4_LK2 (1)
+/* @brief Has valid option in MRGD_W4 register (register bit MRGD_W4[VLD]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_W4_VLD (1)
+/* @brief XRDC domain number (reset value of HWCFG0[NDID] plus 1). */
+#define FSL_FEATURE_XRDC_DOMAIN_COUNT (3)
+
+#endif /* _RV32M1_ri5cy_FEATURES_H_ */
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy.h
new file mode 100644 (file)
index 0000000..55b369a
--- /dev/null
@@ -0,0 +1,32675 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_zero_riscy
+**                          RV32M1_zero_riscy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         CMSIS Peripheral Access Layer for RV32M1_zero_riscy
+**
+**     Copyright 1997-2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_zero_riscy.h
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief CMSIS Peripheral Access Layer for RV32M1_zero_riscy
+ *
+ * CMSIS Peripheral Access Layer for RV32M1_zero_riscy
+ */
+
+#ifndef _RV32M1_CM0PLUS_H_
+#define _RV32M1_CM0PLUS_H_                  /**< Symbol preventing repeated inclusion */
+
+/** Memory map major version (memory maps with equal major version number are
+ * compatible) */
+#define MCU_MEM_MAP_VERSION 0x0100U
+/** Memory map minor version */
+#define MCU_MEM_MAP_VERSION_MINOR 0x0000U
+
+
+/* ----------------------------------------------------------------------------
+   -- Interrupt vector numbers
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Interrupt_vector_numbers Interrupt vector numbers
+ * @{
+ */
+
+/** Interrupt Number Definitions */
+#define NUMBER_OF_INT_VECTORS 80                 /**< Number of interrupts in the Vector table */
+
+typedef enum IRQn {
+  /* Auxiliary constants */
+  NotAvail_IRQn                = -128,             /**< Not available device specific interrupt */
+
+  /* Device specific interrupts */
+  CTI1_IRQn                    = 0,                /**< Cross Trigger Interface 1 */
+  DMA1_04_IRQn                 = 1,                /**< DMA1 channel 0/4 transfer complete */
+  DMA1_15_IRQn                 = 2,                /**< DMA1 channel 1/5 transfer complete */
+  DMA1_26_IRQn                 = 3,                /**< DMA1 channel 2/6 transfer complete */
+  DMA1_37_IRQn                 = 4,                /**< DMA1 channel 3/7 transfer complete */
+  DMA1_Error_IRQn              = 5,                /**< DMA1 channel 0-7 error interrupt */
+  CMC1_IRQn                    = 6,                /**< Core Mode Controller 1 */
+  LLWU1_IRQn                   = 7,                /**< Low leakage wakeup 1 */
+  MUB_IRQn                     = 8,                /**< MU Side B interrupt */
+  WDOG1_IRQn                   = 9,                /**< WDOG1 interrupt */
+  CAU3_Task_Complete_IRQn      = 10,               /**< Cryptographic Acceleration Unit version 3 Task Complete */
+  CAU3_Security_Violation_IRQn = 11,               /**< Cryptographic Acceleration Unit version 3 Security Violation */
+  TRNG_IRQn                    = 12,               /**< TRNG interrupt */
+  LPIT1_IRQn                   = 13,               /**< LPIT1 interrupt */
+  LPTMR2_IRQn                  = 14,               /**< LPTMR2 interrupt */
+  TPM3_IRQn                    = 15,               /**< TPM3 single interrupt vector for all sources */
+  LPI2C3_IRQn                  = 16,               /**< LPI2C3 interrupt */
+  RF0_0_IRQn                   = 17,               /**< RF0 interrupt 0 */
+  RF0_1_IRQn                   = 18,               /**< RF0 interrupt 1 */
+  LPSPI3_IRQn                  = 19,               /**< LPSPI3 single interrupt vector for all sources */
+  LPUART3_IRQn                 = 20,               /**< LPUART3 status and error */
+  PORTE_IRQn                   = 21,               /**< PORTE Pin detect */
+  LPCMP1_IRQn                  = 22,               /**< LPCMP1 interrupt */
+  RTC_IRQn                     = 23,               /**< RTC */
+  INTMUX1_0_IRQn               = 24,               /**< INTMUX1 channel0 interrupt */
+  INTMUX1_1_IRQn               = 25,               /**< INTMUX1 channel1 interrupt */
+  INTMUX1_2_IRQn               = 26,               /**< INTMUX1 channel2 interrupt */
+  INTMUX1_3_IRQn               = 27,               /**< INTMUX1 channel3 interrupt */
+  INTMUX1_4_IRQn               = 28,               /**< INTMUX1 channel4 interrupt */
+  INTMUX1_5_IRQn               = 29,               /**< INTMUX1 channel5 interrupt */
+  INTMUX1_6_IRQn               = 30,               /**< INTMUX1 channel6 interrupt */
+  INTMUX1_7_IRQn               = 31,               /**< INTMUX1 channel7 interrupt */
+  EWM_IRQn                     = 32,               /**< EWM interrupt  (INTMUX1 source IRQ0) */
+  FTFE_Command_Complete_IRQn   = 33,               /**< FTFE interrupt  (INTMUX1 source IRQ1) */
+  FTFE_Read_Collision_IRQn     = 34,               /**< FTFE interrupt  (INTMUX1 source IRQ2) */
+  SPM_IRQn                     = 35,               /**< SPM (INTMUX1 source IRQ3) */
+  SCG_IRQn                     = 36,               /**< SCG interrupt (INTMUX1 source IRQ4) */
+  LPIT0_IRQn                   = 37,               /**< LPIT0 interrupt (INTMUX1 source IRQ5) */
+  LPTMR0_IRQn                  = 38,               /**< LPTMR0 interrupt (INTMUX1 source IRQ6) */
+  LPTMR1_IRQn                  = 39,               /**< LPTMR1 interrupt (INTMUX1 source IRQ7) */
+  TPM0_IRQn                    = 40,               /**< TPM0 single interrupt vector for all sources (INTMUX1 source IRQ8) */
+  TPM1_IRQn                    = 41,               /**< TPM1 single interrupt vector for all sources (INTMUX1 source IRQ9) */
+  TPM2_IRQn                    = 42,               /**< TPM2 single interrupt vector for all sources (INTMUX1 source IRQ10) */
+  EMVSIM0_IRQn                 = 43,               /**< EMVSIM0 interrupt (INTMUX1 source IRQ11) */
+  FLEXIO0_IRQn                 = 44,               /**< FLEXIO0 (INTMUX1 source IRQ12) */
+  LPI2C0_IRQn                  = 45,               /**< LPI2C0 interrupt (INTMUX1 source IRQ13) */
+  LPI2C1_IRQn                  = 46,               /**< LPI2C1 interrupt (INTMUX1 source IRQ14) */
+  LPI2C2_IRQn                  = 47,               /**< LPI2C2 interrupt (INTMUX1 source IRQ15) */
+  I2S0_IRQn                    = 48,               /**< I2S0 interrupt (INTMUX1 source IRQ16) */
+  USDHC0_IRQn                  = 49,               /**< SDHC0 interrupt (INTMUX1 source IRQ17) */
+  LPSPI0_IRQn                  = 50,               /**< LPSPI0 single interrupt vector for all sources (INTMUX1 source IRQ18) */
+  LPSPI1_IRQn                  = 51,               /**< LPSPI1 single interrupt vector for all sources (INTMUX1 source IRQ19) */
+  LPSPI2_IRQn                  = 52,               /**< LPSPI2 single interrupt vector for all sources (INTMUX1 source IRQ20) */
+  LPUART0_IRQn                 = 53,               /**< LPUART0 status and error (INTMUX1 source IRQ21) */
+  LPUART1_IRQn                 = 54,               /**< LPUART1 status and error (INTMUX1 source IRQ22) */
+  LPUART2_IRQn                 = 55,               /**< LPUART2 status and error (INTMUX1 source IRQ23) */
+  USB0_IRQn                    = 56,               /**< USB0 interrupt (INTMUX1 source IRQ24) */
+  PORTA_IRQn                   = 57,               /**< PORTA Pin detect (INTMUX1 source IRQ25) */
+  PORTB_IRQn                   = 58,               /**< PORTB Pin detect (INTMUX1 source IRQ26) */
+  PORTC_IRQn                   = 59,               /**< PORTC Pin detect (INTMUX1 source IRQ27) */
+  PORTD_IRQn                   = 60,               /**< PORTD Pin detect (INTMUX1 source IRQ28) */
+  ADC0_IRQn                    = 61,               /**< LPADC0 interrupt (INTMUX1 source IRQ29) */
+  LPCMP0_IRQn                  = 62,               /**< LPCMP0 interrupt (INTMUX1 source IRQ30) */
+  LPDAC0_IRQn                  = 63                /**< DAC0 interrupt (INTMUX1 source IRQ31) */
+} IRQn_Type;
+
+/*!
+ * @}
+ */ /* end of group Interrupt_vector_numbers */
+
+
+/* ----------------------------------------------------------------------------
+   -- Cortex M0 Core Configuration
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Cortex_Core_Configuration Cortex M0 Core Configuration
+ * @{
+ */
+
+#define __CM0PLUS_REV                  0x0000    /**< Core revision r0p0 */
+#define __MPU_PRESENT                  1         /**< Defines if an MPU is present or not */
+#define __VTOR_PRESENT                 1         /**< Defines if VTOR is present or not */
+#define __NVIC_PRIO_BITS               2         /**< Number of priority bits implemented in the NVIC */
+#define __Vendor_SysTickConfig         0         /**< Vendor specific implementation of SysTickConfig is defined */
+
+#include "core_riscv32.h"              /* Core Peripheral Access Layer */
+#include "system_RV32M1_zero_riscy.h" /* Device specific configuration file */
+
+/*!
+ * @}
+ */ /* end of group Cortex_Core_Configuration */
+
+
+/* ----------------------------------------------------------------------------
+   -- Mapping Information
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Mapping_Information Mapping Information
+ * @{
+ */
+
+/** Mapping Information */
+/*!
+ * @addtogroup edma_request
+ * @{ */
+
+/*******************************************************************************
+ * Definitions
+*******************************************************************************/
+
+/*!
+ * @brief Enumeration for the DMA hardware request
+ *
+ * Defines the enumeration for the DMA hardware request collections.
+ */
+typedef enum _dma_request_source
+{
+    kDmaRequestMux1LLWU1            = 0|0x200U,    /**< LLWU1 Wakeup */
+    kDmaRequestMux1CAEv3            = 1|0x200U,    /**< CAEv3 Data Request */
+    kDmaRequestMux1LPTMR2           = 2|0x200U,    /**< LPTMR2 Trigger */
+    kDmaRequestMux1TPM3Channel0     = 3|0x200U,    /**< TPM3 Channel 0 */
+    kDmaRequestMux1TPM3Channel1     = 4|0x200U,    /**< TPM3 Channel 1 */
+    kDmaRequestMux1TPM3Overflow     = 5|0x200U,    /**< TPM3 Overflow */
+    kDmaRequestMux1LPI2C3Rx         = 6|0x200U,    /**< LPI2C3 Receive */
+    kDmaRequestMux1LPI2C3Tx         = 7|0x200U,    /**< LPI2C3 Transmit */
+    kDmaRequestMux1RF0Rx            = 8|0x200U,    /**< 2.4GHz Radio 0 Receive */
+    kDmaRequestMux1LPSPI3Rx         = 9|0x200U,    /**< LPSPI3 Receive */
+    kDmaRequestMux1LPSPI3Tx         = 10|0x200U,   /**< LPSPI3 Transmit */
+    kDmaRequestMux1LPUART3Rx        = 11|0x200U,   /**< LPUART3 Receive */
+    kDmaRequestMux1LPUART3Tx        = 12|0x200U,   /**< LPUART3 Transmit */
+    kDmaRequestMux1PORTE            = 13|0x200U,   /**< PORTE Pin Request */
+    kDmaRequestMux1LPCMP1           = 14|0x200U,   /**< LPCMP1 Comparator Trigger */
+    kDmaRequestMux1LPTMR1           = 15|0x200U,   /**< LPTMR1 Trigger */
+    kDmaRequestMux1FLEXIO0Channel0  = 16|0x200U,   /**< FLEXIO0 Channel 0 */
+    kDmaRequestMux1FLEXIO0Channel1  = 17|0x200U,   /**< FLEXIO0 Channel 1 */
+    kDmaRequestMux1FLEXIO0Channel2  = 18|0x200U,   /**< FLEXIO0 Channel 2 */
+    kDmaRequestMux1FLEXIO0Channel3  = 19|0x200U,   /**< FLEXIO0 Channel 3 */
+    kDmaRequestMux1FLEXIO0Channel4  = 20|0x200U,   /**< FLEXIO0 Channel 4 */
+    kDmaRequestMux1FLEXIO0Channel5  = 21|0x200U,   /**< FLEXIO0 Channel 5 */
+    kDmaRequestMux1FLEXIO0Channel6  = 22|0x200U,   /**< FLEXIO0 Channel 6 */
+    kDmaRequestMux1FLEXIO0Channel7  = 23|0x200U,   /**< FLEXIO0 Channel 7 */
+    kDmaRequestMux1I2S0Rx           = 24|0x200U,   /**< I2S0 Receive */
+    kDmaRequestMux1I2S0Tx           = 25|0x200U,   /**< I2S0 Transmit */
+    kDmaRequestMux1PORTA            = 26|0x200U,   /**< PORTA Pin Request */
+    kDmaRequestMux1PORTB            = 27|0x200U,   /**< PORTB Pin Request */
+    kDmaRequestMux1PORTC            = 28|0x200U,   /**< PORTC Pin Request */
+    kDmaRequestMux1PORTD            = 29|0x200U,   /**< PORTD Pin Request */
+    kDmaRequestMux1LPADC0           = 30|0x200U,   /**< LPADC0 Conversion Complete */
+    kDmaRequestMux1DAC0             = 31|0x200U,   /**< DAC0 Conversion Complete */
+} dma_request_source_t;
+
+/* @} */
+
+/*!
+ * @addtogroup trgmux_source
+ * @{ */
+
+/*******************************************************************************
+ * Definitions
+*******************************************************************************/
+
+/*!
+ * @brief Enumeration for the TRGMUX source
+ *
+ * Defines the enumeration for the TRGMUX source collections.
+ */
+typedef enum _trgmux_source
+{
+    kTRGMUX_Source0Disabled         = 0U,          /**< Trigger function is disabled */
+    kTRGMUX_Source1Disabled         = 0U,          /**< Trigger function is disabled */
+    kTRGMUX_Source0Llwu0            = 1U,          /**< LLWU0 trigger is selected */
+    kTRGMUX_Source1Llwu1            = 1U,          /**< LLWU1 trigger is selected */
+    kTRGMUX_Source0Lpit0Channel0    = 2U,          /**< LPIT0 Channel 0 is selected */
+    kTRGMUX_Source1Lpit1Channel0    = 2U,          /**< LPIT1 Channel 0 is selected */
+    kTRGMUX_Source0Lpit0Channel1    = 3U,          /**< LPIT0 Channel 1 is selected */
+    kTRGMUX_Source1Lpit1Channel1    = 3U,          /**< LPIT1 Channel 1 is selected */
+    kTRGMUX_Source0Lpit0Channel2    = 4U,          /**< LPIT0 Channel 2 is selected */
+    kTRGMUX_Source1Lpit1Channel2    = 4U,          /**< LPIT1 Channel 2 is selected */
+    kTRGMUX_Source0Lpit0Channel3    = 5U,          /**< LPIT0 Channel 3 is selected */
+    kTRGMUX_Source1Lpit1Channel3    = 5U,          /**< LPIT1 Channel 3 is selected */
+    kTRGMUX_Source0RtcAlarm         = 6U,          /**< RTC Alarm is selected */
+    kTRGMUX_Source1Lptmr2Trigger    = 6U,          /**< LPTMR2 Trigger is selected */
+    kTRGMUX_Source0RtcSeconds       = 7U,          /**< RTC Seconds is selected */
+    kTRGMUX_Source1Tpm3ChannelEven  = 7U,          /**< TPM3 Channel Even is selected */
+    kTRGMUX_Source0Lptmr0Trigger    = 8U,          /**< LPTMR0 Trigger is selected */
+    kTRGMUX_Source1Tpm3ChannelOdd   = 8U,          /**< TPM3 Channel Odd is selected */
+    kTRGMUX_Source0Lptmr1Trigger    = 9U,          /**< LPTMR1 Trigger is selected */
+    kTRGMUX_Source1Tpm3Overflow     = 9U,          /**< TPM3 Overflow is selected */
+    kTRGMUX_Source0Tpm0ChannelEven  = 10U,         /**< TPM0 Channel Even is selected */
+    kTRGMUX_Source1Lpi2c3MasterStop = 10U,         /**< LPI2C3 Master Stop is selected */
+    kTRGMUX_Source0Tpm0ChannelOdd   = 11U,         /**< TPM0 Channel Odd is selected */
+    kTRGMUX_Source1Lpi2c3SlaveStop  = 11U,         /**< LPI2C3 Slave Stop is selected */
+    kTRGMUX_Source0Tpm0Overflow     = 12U,         /**< TPM0 Overflow is selected */
+    kTRGMUX_Source1Lpspi3Frame      = 12U,         /**< LPSPI3 Frame is selected */
+    kTRGMUX_Source0Tpm1ChannelEven  = 13U,         /**< TPM1 Channel Even is selected */
+    kTRGMUX_Source1Lpspi3RX         = 13U,         /**< LPSPI3 Rx is selected */
+    kTRGMUX_Source0Tpm1ChannelOdd   = 14U,         /**< TPM1 Channel Odd is selected */
+    kTRGMUX_Source1Lpuart3RxData    = 14U,         /**< LPUART3 Rx Data is selected */
+    kTRGMUX_Source0Tpm1Overflow     = 15U,         /**< TPM1 Overflow is selected */
+    kTRGMUX_Source1Lpuart3RxIdle    = 15U,         /**< LPUART3 Rx Idle is selected */
+    kTRGMUX_Source0Tpm2ChannelEven  = 16U,         /**< TPM2 Channel Even is selected */
+    kTRGMUX_Source1Lpuart3TxData    = 16U,         /**< LPUART3 Tx Data is selected */
+    kTRGMUX_Source0Tpm2ChannelOdd   = 17U,         /**< TPM2 Channel Odd is selected */
+    kTRGMUX_Source1PortEPinTrigger  = 17U,         /**< PORTE Pin Trigger is selected */
+    kTRGMUX_Source0Tpm2Overflow     = 18U,         /**< TPM2 Overflow is selected */
+    kTRGMUX_Source1Lpcmp1Output     = 18U,         /**< LPCMP1 Output is selected */
+    kTRGMUX_Source0FlexIO0Timer0    = 19U,         /**< FlexIO0 Timer 0 is selected */
+    kTRGMUX_Source1RtcAlarm         = 19U,         /**< RTC Alarm is selected */
+    kTRGMUX_Source0FlexIO0Timer1    = 20U,         /**< FlexIO0 Timer 1 is selected */
+    kTRGMUX_Source1RtcSeconds       = 20U,         /**< RTC Seconds is selected */
+    kTRGMUX_Source0FlexIO0Timer2    = 21U,         /**< FlexIO0 Timer 2 is selected */
+    kTRGMUX_Source1Lptmr0Trigger    = 21U,         /**< LPTMR0 Trigger is selected */
+    kTRGMUX_Source0FlexIO0Timer3    = 22U,         /**< FlexIO0 Timer 3 is selected */
+    kTRGMUX_Source1Lptmr1Trigger    = 22U,         /**< LPTMR1 Trigger is selected */
+    kTRGMUX_Source0FlexIO0Timer4    = 23U,         /**< FLexIO0 Timer 4 is selected */
+    kTRGMUX_Source1Tpm1ChannelEven  = 23U,         /**< TPM1 Channel Even is selected */
+    kTRGMUX_Source0FlexIO0Timer5    = 24U,         /**< FlexIO0 Timer 5 is selected */
+    kTRGMUX_Source1Tpm1ChannelOdd   = 24U,         /**< TPM1 Channel Odd is selected */
+    kTRGMUX_Source0FlexIO0Timer6    = 25U,         /**< FlexIO0 Timer 6 is selected */
+    kTRGMUX_Source1Tpm1Overflow     = 25U,         /**< TPM1 Overflow is selected */
+    kTRGMUX_Source0FlexIO0Timer7    = 26U,         /**< FlexIO0 Timer 7 is selected */
+    kTRGMUX_Source1Tpm2ChannelEven  = 26U,         /**< TPM2 Channel Even is selected */
+    kTRGMUX_Source0Lpi2c0MasterStop = 27U,         /**< LPI2C0 Master Stop is selected */
+    kTRGMUX_Source1Tpm2ChannelOdd   = 27U,         /**< TPM2 Channel Odd is selected */
+    kTRGMUX_Source0Lpi2c0SlaveStop  = 28U,         /**< LPI2C0 Slave Stop is selected */
+    kTRGMUX_Source1Tpm2Overflow     = 28U,         /**< TPM2 Overflow is selected */
+    kTRGMUX_Source0Lpi2c1MasterStop = 29U,         /**< LPI2C1 Master Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer0    = 29U,         /**< FlexIO0 Timer 0 is selected */
+    kTRGMUX_Source0Lpi2c1SlaveStop  = 30U,         /**< LPI2C1 Slave Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer1    = 30U,         /**< FlexIO0 Timer 1 is selected */
+    kTRGMUX_Source0Lpi2c2MasterStop = 31U,         /**< LPI2C2 Master Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer2    = 31U,         /**< FlexIO0 Timer 2 is selected */
+    kTRGMUX_Source0Lpi2c2SlaveStop  = 32U,         /**< LPI2C2 Slave Stop is selected */
+    kTRGMUX_Source1FlexIO0Timer3    = 32U,         /**< FlexIO0 Timer 3 is selected */
+    kTRGMUX_Source0Sai0Rx           = 33U,         /**< SAI0 Rx Frame Sync is selected */
+    kTRGMUX_Source1FlexIO0Timer4    = 33U,         /**< FLexIO0 Timer 4 is selected */
+    kTRGMUX_Source0Sai0Tx           = 34U,         /**< SAI0 Tx Frame Sync is selected */
+    kTRGMUX_Source1FlexIO0Timer5    = 34U,         /**< FlexIO0 Timer 5 is selected */
+    kTRGMUX_Source0Lpspi0Frame      = 35U,         /**< LPSPI0 Frame is selected */
+    kTRGMUX_Source1FlexIO0Timer6    = 35U,         /**< FlexIO0 Timer 6 is selected */
+    kTRGMUX_Source0Lpspi0Rx         = 36U,         /**< LPSPI0 Rx is selected */
+    kTRGMUX_Source1FlexIO0Timer7    = 36U,         /**< FlexIO0 Timer 7 is selected */
+    kTRGMUX_Source0Lpspi1Frame      = 37U,         /**< LPSPI1 Frame is selected */
+    kTRGMUX_Source1Lpi2c0MasterStop = 37U,         /**< LPI2C0 Master Stop is selected */
+    kTRGMUX_Source0Lpspi1Rx         = 38U,         /**< LPSPI1 Rx is selected */
+    kTRGMUX_Source1Lpi2c0SlaveStop  = 38U,         /**< LPI2C0 Slave Stop is selected */
+    kTRGMUX_Source0Lpspi2Frame      = 39U,         /**< LPSPI2 Frame is selected */
+    kTRGMUX_Source1Lpi2c1MasterStop = 39U,         /**< LPI2C1 Master Stop is selected */
+    kTRGMUX_Source0Lpspi2RX         = 40U,         /**< LPSPI2 Rx is selected */
+    kTRGMUX_Source1Lpi2c1SlaveStop  = 40U,         /**< LPI2C1 Slave Stop is selected */
+    kTRGMUX_Source0Lpuart0RxData    = 41U,         /**< LPUART0 Rx Data is selected */
+    kTRGMUX_Source1Lpi2c2MasterStop = 41U,         /**< LPI2C2 Master Stop is selected */
+    kTRGMUX_Source0Lpuart0RxIdle    = 42U,         /**< LPUART0 Rx Idle is selected */
+    kTRGMUX_Source1Lpi2c2SlaveStop  = 42U,         /**< LPI2C2 Slave Stop is selected */
+    kTRGMUX_Source0Lpuart0TxData    = 43U,         /**< LPUART0 Tx Data is selected */
+    kTRGMUX_Source1Sai0Rx           = 43U,         /**< SAI0 Rx Frame Sync is selected */
+    kTRGMUX_Source0Lpuart1RxData    = 44U,         /**< LPUART1 Rx Data is selected */
+    kTRGMUX_Source1Sai0Tx           = 44U,         /**< SAI0 Tx Frame Sync is selected */
+    kTRGMUX_Source0Lpuart1RxIdle    = 45U,         /**< LPUART1 Rx Idle is selected */
+    kTRGMUX_Source1Lpspi0Frame      = 45U,         /**< LPSPI0 Frame is selected */
+    kTRGMUX_Source0Lpuart1TxData    = 46U,         /**< LPUART1 TX Data is selected */
+    kTRGMUX_Source1Lpspi0Rx         = 46U,         /**< LPSPI0 Rx is selected */
+    kTRGMUX_Source0Lpuart2RxData    = 47U,         /**< LPUART2 RX Data is selected */
+    kTRGMUX_Source1Lpspi1Frame      = 47U,         /**< LPSPI1 Frame is selected */
+    kTRGMUX_Source0Lpuart2RxIdle    = 48U,         /**< LPUART2 RX Idle is selected */
+    kTRGMUX_Source1Lpspi1Rx         = 48U,         /**< LPSPI1 Rx is selected */
+    kTRGMUX_Source0Lpuart2TxData    = 49U,         /**< LPUART2 TX Data is selected */
+    kTRGMUX_Source1Lpspi2Frame      = 49U,         /**< LPSPI2 Frame is selected */
+    kTRGMUX_Source0Usb0Frame        = 50U,         /**< USB0 Start of Frame is selected */
+    kTRGMUX_Source1Lpspi2RX         = 50U,         /**< LPSPI2 Rx is selected */
+    kTRGMUX_Source0PortAPinTrigger  = 51U,         /**< PORTA Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0RxData    = 51U,         /**< LPUART0 Rx Data is selected */
+    kTRGMUX_Source0PortBPinTrigger  = 52U,         /**< PORTB Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0RxIdle    = 52U,         /**< LPUART0 Rx Idle is selected */
+    kTRGMUX_Source0PortCPinTrigger  = 53U,         /**< PORTC Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart0TxData    = 53U,         /**< LPUART0 Tx Data is selected */
+    kTRGMUX_Source0PortDPinTrigger  = 54U,         /**< PORTD Pin Trigger is selected */
+    kTRGMUX_Source1Lpuart1RxData    = 54U,         /**< LPUART1 Rx Data is selected */
+    kTRGMUX_Source0Lpcmp0Output     = 55U,         /**< LPCMP0 Output is selected */
+    kTRGMUX_Source1Lpuart1RxIdle    = 55U,         /**< LPUART1 Rx Idle is selected */
+    kTRGMUX_Source0Lpi2c3MasterStop = 56U,         /**< LPI2C3 Master Stop is selected */
+    kTRGMUX_Source1Lpuart1TxData    = 56U,         /**< LPUART1 TX Data is selected */
+    kTRGMUX_Source0Lpi2c3SlaveStop  = 57U,         /**< LPI2C3 Slave Stop is selected */
+    kTRGMUX_Source1Lpuart2RxData    = 57U,         /**< LPUART2 RX Data is selected */
+    kTRGMUX_Source0Lpspi3Frame      = 58U,         /**< LPSPI3 Frame is selected */
+    kTRGMUX_Source1Lpuart2RxIdle    = 58U,         /**< LPUART2 RX Idle is selected */
+    kTRGMUX_Source0Lpspi3Rx         = 59U,         /**< LPSPI3 Rx Data is selected */
+    kTRGMUX_Source1Lpuart2TxData    = 59U,         /**< LPUART2 TX Data is selected */
+    kTRGMUX_Source0Lpuart3RxData    = 60U,         /**< LPUART3 Rx Data is selected */
+    kTRGMUX_Source1PortAPinTrigger  = 60U,         /**< PORTA Pin Trigger is selected */
+    kTRGMUX_Source0Lpuart3RxIdle    = 61U,         /**< LPUART3 Rx Idle is selected */
+    kTRGMUX_Source1PortBPinTrigger  = 61U,         /**< PORTB Pin Trigger is selected */
+    kTRGMUX_Source0Lpuart3TxData    = 62U,         /**< LPUART3 Tx Data is selected */
+    kTRGMUX_Source1PortCPinTrigger  = 62U,         /**< PORTC Pin Trigger is selected */
+    kTRGMUX_Source0PortEPinTrigger  = 63U,         /**< PORTE Pin Trigger is selected */
+    kTRGMUX_Source1PortDPinTrigger  = 63U,         /**< PORTD Pin Trigger is selected */
+} trgmux_source_t;
+
+/* @} */
+
+/*!
+ * @brief Enumeration for the TRGMUX device
+ *
+ * Defines the enumeration for the TRGMUX device collections.
+ */
+typedef enum _trgmux_device
+{
+    kTRGMUX_Trgmux0Dmamux0          = 0U,          /**< DMAMUX0 device trigger input */
+    kTRGMUX_Trgmux1Dmamux1          = 0U,          /**< DMAMUX1 device trigger input */
+    kTRGMUX_Trgmux0Lpit0            = 1U,          /**< LPIT0 device trigger input */
+    kTRGMUX_Trgmux1Lpit1            = 1U,          /**< LPIT1 device trigger input */
+    kTRGMUX_Trgmux0Tpm0             = 2U,          /**< TPM0 device trigger input */
+    kTRGMUX_Trgmux1Tpm3             = 2U,          /**< TPM3 device trigger input */
+    kTRGMUX_Trgmux0Tpm1             = 3U,          /**< TPM1 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c3           = 3U,          /**< LPI2C3 device trigger input */
+    kTRGMUX_Trgmux0Tpm2             = 4U,          /**< TPM2 device trigger input */
+    kTRGMUX_Trgmux1Lpspi3           = 4U,          /**< LPSPI3 device trigger input */
+    kTRGMUX_Trgmux0Flexio0          = 5U,          /**< FLEXIO0 device trigger input */
+    kTRGMUX_Trgmux1Lpuart3          = 5U,          /**< LPUART3 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c0           = 6U,          /**< LPI2C0 device trigger input */
+    kTRGMUX_Trgmux1Lpcmp1           = 6U,          /**< LPCMP1 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c1           = 7U,          /**< LPI2C1 device trigger input */
+    kTRGMUX_Trgmux1Dmamux0          = 7U,          /**< DMAMUX0 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c2           = 8U,          /**< LPI2C2 device trigger input */
+    kTRGMUX_Trgmux1Lpit0            = 8U,          /**< LPIT0 device trigger input */
+    kTRGMUX_Trgmux0Lpspi0           = 9U,          /**< LPSPI0 device trigger input */
+    kTRGMUX_Trgmux1Tpm0             = 9U,          /**< TPM0 device trigger input */
+    kTRGMUX_Trgmux0Lpspi1           = 10U,         /**< LPSPI1 device trigger input */
+    kTRGMUX_Trgmux1Tpm1             = 10U,         /**< TPM1 device trigger input */
+    kTRGMUX_Trgmux0Lpspi2           = 11U,         /**< LPSPI2 device trigger input */
+    kTRGMUX_Trgmux1Tpm2             = 11U,         /**< TPM2 device trigger input */
+    kTRGMUX_Trgmux0Lpuart0          = 12U,         /**< LPUART0 device trigger input */
+    kTRGMUX_Trgmux1Flexio0          = 12U,         /**< FLEXIO0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart1          = 13U,         /**< LPUART1 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c0           = 13U,         /**< LPI2C0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart2          = 14U,         /**< LPUART2 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c1           = 14U,         /**< LPI2C1 device trigger input */
+    kTRGMUX_Trgmux0Adc0             = 15U,         /**< ADC0 device trigger input */
+    kTRGMUX_Trgmux1Lpi2c2           = 15U,         /**< LPI2C2 device trigger input */
+    kTRGMUX_Trgmux0Lpcmp0           = 16U,         /**< LPCMP0 device trigger input */
+    kTRGMUX_Trgmux1Lpspi0           = 16U,         /**< LPSPI0 device trigger input */
+    kTRGMUX_Trgmux0Dac0             = 17U,         /**< DAC0 device trigger input */
+    kTRGMUX_Trgmux1Lpspi1           = 17U,         /**< LPSPI1 device trigger input */
+    kTRGMUX_Trgmux0Dmamux1          = 18U,         /**< DMAMUX1 device trigger input */
+    kTRGMUX_Trgmux1Lpspi2           = 18U,         /**< LPSPI2 device trigger input */
+    kTRGMUX_Trgmux0Lpit1            = 19U,         /**< LPIT1 device trigger input */
+    kTRGMUX_Trgmux1Lpuart0          = 19U,         /**< LPUART0 device trigger input */
+    kTRGMUX_Trgmux0Tpm3             = 20U,         /**< TPM3 device trigger input */
+    kTRGMUX_Trgmux1Lpuart1          = 20U,         /**< LPUART1 device trigger input */
+    kTRGMUX_Trgmux0Lpi2c3           = 21U,         /**< LPI2C3 device trigger input */
+    kTRGMUX_Trgmux1Lpuart2          = 21U,         /**< LPUART2 device trigger input */
+    kTRGMUX_Trgmux0Lpspi3           = 22U,         /**< LPSPI3 device trigger input */
+    kTRGMUX_Trgmux1Adc0             = 22U,         /**< ADC0 device trigger input */
+    kTRGMUX_Trgmux0Lpuart3          = 23U,         /**< LPUART3 device trigger input */
+    kTRGMUX_Trgmux1Lpcmp0           = 23U,         /**< LPCMP0 device trigger input */
+    kTRGMUX_Trgmux0Lpcmp1           = 24U,         /**< LPCMP1 device trigger input */
+    kTRGMUX_Trgmux1Lpdac0           = 24U,         /**< LPDAC0 device trigger input */
+} trgmux_device_t;
+
+/* @} */
+
+/*!
+ * @addtogroup xrdc_mapping
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*!
+ * @brief Structure for the XRDC mapping
+ *
+ * Defines the structure for the XRDC resource collections.
+ */
+
+typedef enum _xrdc_master
+{
+    kXRDC_MasterCM4CodeBus          = 0U,          /**< CM4 C-BUS */
+    kXRDC_MasterCM4SystemBus        = 1U,          /**< CM4 S-BUS */
+    kXRDC_MasterRI5CYCodeBus        = 16U,         /**< RI5CY C-BUS */
+    kXRDC_MasterRI5CYSystemBus      = 17U,         /**< RI5CY S-BUS */
+    kXRDC_MasterEdma0               = 2U,          /**< EDMA0 */
+    kXRDC_MasterUsdhc               = 3U,          /**< USDHC */
+    kXRDC_MasterUsb                 = 4U,          /**< USB */
+    kXRDC_MasterCM0P                = 32U,         /**< CM0P */
+    kXRDC_MasterEdma1               = 33U,         /**< EDMA1 */
+    kXRDC_MasterCau3                = 34U,         /**< CAU3 */
+    kXRDC_MasterZERORISCYCodeBus    = 35U,         /**<  ZERO RISCY C-BUS */
+    kXRDC_MasterZERORISCYSystemBus  = 36U,         /**< ZERO RISCY S-BUS */
+} xrdc_master_t;
+
+/* @} */
+
+typedef enum _xrdc_mem
+{
+    kXRDC_MemMrc0_0                 = 0U,          /**< MRC0 Memory 0 */
+    kXRDC_MemMrc0_1                 = 1U,          /**< MRC0 Memory 1 */
+    kXRDC_MemMrc0_2                 = 2U,          /**< MRC0 Memory 2 */
+    kXRDC_MemMrc0_3                 = 3U,          /**< MRC0 Memory 3 */
+    kXRDC_MemMrc0_4                 = 4U,          /**< MRC0 Memory 4 */
+    kXRDC_MemMrc0_5                 = 5U,          /**< MRC0 Memory 5 */
+    kXRDC_MemMrc0_6                 = 6U,          /**< MRC0 Memory 6 */
+    kXRDC_MemMrc0_7                 = 7U,          /**< MRC0 Memory 7 */
+    kXRDC_MemMrc1_0                 = 16U,         /**< MRC1 Memory 0 */
+    kXRDC_MemMrc1_1                 = 17U,         /**< MRC1 Memory 1 */
+    kXRDC_MemMrc1_2                 = 18U,         /**< MRC1 Memory 2 */
+    kXRDC_MemMrc1_3                 = 19U,         /**< MRC1 Memory 3 */
+    kXRDC_MemMrc1_4                 = 20U,         /**< MRC1 Memory 4 */
+    kXRDC_MemMrc1_5                 = 21U,         /**< MRC1 Memory 5 */
+    kXRDC_MemMrc1_6                 = 22U,         /**< MRC1 Memory 6 */
+    kXRDC_MemMrc1_7                 = 23U,         /**< MRC1 Memory 7 */
+} xrdc_mem_t;
+
+typedef enum _xrdc_periph
+{
+    kXRDC_PeriphMscm                = 1U,          /**< Miscellaneous System Control Module (MSCM) */
+    kXRDC_PeriphDma0                = 8U,          /**< Direct Memory Access 0 (DMA0) controller */
+    kXRDC_PeriphDma0Tcd             = 9U,          /**< Direct Memory Access 0 (DMA0) controller transfer control descriptors */
+    kXRDC_PeriphFlexBus             = 12U,         /**< External Bus Interface(FlexBus) */
+    kXRDC_PeriphXrdcMgr             = 20U,         /**< Extended Resource Domain Controller (XRDC) MGR */
+    kXRDC_PeriphXrdcMdac            = 21U,         /**< Extended Resource Domain Controller (XRDC) MDAC */
+    kXRDC_PeriphXrdcPac             = 22U,         /**< Extended Resource Domain Controller (XRDC) PAC */
+    kXRDC_PeriphXrdcMrc             = 23U,         /**< Extended Resource Domain Controller (XRDC) MRC */
+    kXRDC_PeriphSema420             = 27U,         /**< Semaphore Unit 0 (SEMA420) */
+    kXRDC_PeriphCmc0                = 32U,         /**< Core Mode Controller (CMC) */
+    kXRDC_PeriphDmamux0             = 33U,         /**< Direct Memory Access Multiplexer 0 (DMAMUX0) */
+    kXRDC_PeriphEwm                 = 34U,         /**< External Watchdog Monitor (EWM) */
+    kXRDC_PeriphFtfe                = 35U,         /**< Flash Memory Module (FTFE) */
+    kXRDC_PeriphLlwu0               = 36U,         /**< Low Leakage Wake-up Unit 0 (LLWU0) */
+    kXRDC_PeriphMua                 = 37U,         /**< Message Unit Side A (MU-A) */
+    kXRDC_PeriphSim                 = 38U,         /**< System Integration Module (SIM) */
+    kXRDC_PeriphSimdgo              = 39U,         /**< System Integration Module - DGO (SIM-DGO) */
+    kXRDC_PeriphSpm                 = 40U,         /**< System Power Management (SPM) */
+    kXRDC_PeriphTrgmux0             = 41U,         /**< Tirgger Multiplexer 0 (TRGMUX0) */
+    kXRDC_PeriphWdog0               = 42U,         /**< Watchdog 0 (WDOG0) */
+    kXRDC_PeriphPcc0                = 43U,         /**< Peripheral Clock Controller 0 (PCC0) */
+    kXRDC_PeriphScg                 = 44U,         /**< System Clock Generator (SCG) */
+    kXRDC_PeriphSrf                 = 45U,         /**< System Register File */
+    kXRDC_PeriphVbat                = 46U,         /**< VBAT Register File */
+    kXRDC_PeriphCrc0                = 47U,         /**< Cyclic Redundancy Check 0 (CRC0) */
+    kXRDC_PeriphLpit0               = 48U,         /**< Low-Power Periodic Interrupt Timer 0 (LPIT0) */
+    kXRDC_PeriphRtc                 = 49U,         /**< Real Time Clock (RTC) */
+    kXRDC_PeriphLptmr0              = 50U,         /**< Low-Power Timer 0 (LPTMR0) */
+    kXRDC_PeriphLptmr1              = 51U,         /**< Low-Power Timer 1 (LPTMR1) */
+    kXRDC_PeriphTstmr0              = 52U,         /**< Time Stamp Timer 0 (TSTMR0) */
+    kXRDC_PeriphTpm0                = 53U,         /**< Timer / Pulse Width Modulator Module 0 (TPM0) - 6 channel */
+    kXRDC_PeriphTpm1                = 54U,         /**< Timer / Pulse Width Modulator Module 1 (TPM1) - 2 channel */
+    kXRDC_PeriphTpm2                = 55U,         /**< Timer / Pulse Width Modulator Module 2 (TPM2) - 6 channel */
+    kXRDC_PeriphEmvsim0             = 56U,         /**< Euro Mastercard Visa Secure Identity Module 0 (EMVSIM0) */
+    kXRDC_PeriphFlexio0             = 57U,         /**< Flexible Input / Output 0 (FlexIO0) */
+    kXRDC_PeriphLpi2c0              = 58U,         /**< Low-Power Inter-Integrated Circuit 0 (LPI2C0) */
+    kXRDC_PeriphLpi2c1              = 59U,         /**< Low-Power Inter-Integrated Circuit 1 (LPI2C1) */
+    kXRDC_PeriphLpi2c2              = 60U,         /**< Low-Power Inter-Integrated Circuit 2 (LPI2C2) */
+    kXRDC_PeriphSai0                = 61U,         /**< Serial Audio Interface 0 (SAI0) */
+    kXRDC_PeriphSdhc0               = 62U,         /**< Secure Digital Host Controller 0 (SDHC0) */
+    kXRDC_PeriphLpspi0              = 63U,         /**< Low-Power Serial Peripheral Interface 0 (LPSPI0) */
+    kXRDC_PeriphLpspi1              = 64U,         /**< Low-Power Serial Peripheral Interface 1 (LPSPI1) */
+    kXRDC_PeriphLpspi2              = 65U,         /**< Low-Power Serial Peripheral Interface 2 (LPSPI2) */
+    kXRDC_PeriphLpuart0             = 66U,         /**< Low-Power Universal Asynchronous Receive / Transmit 0 (LPUART0) */
+    kXRDC_PeriphLpuart1             = 67U,         /**< Low-Power Universal Asynchronous Receive / Transmit 1 (LPUART1) */
+    kXRDC_PeriphLpuart2             = 68U,         /**< Low-Power Universal Asynchronous Receive / Transmit 2 (LPUART2) */
+    kXRDC_PeriphUsb0                = 69U,         /**< Universal Serial Bus 0 (USB0) - Full Speed, Device Only */
+    kXRDC_PeriphPortA               = 70U,         /**< PORTA Multiplex Control */
+    kXRDC_PeriphPortB               = 71U,         /**< PORTB Multiplex Control */
+    kXRDC_PeriphPortC               = 72U,         /**< PORTC Multiplex Control */
+    kXRDC_PeriphPortD               = 73U,         /**< PORTD Multiplex Control */
+    kXRDC_PeriphLpadc0              = 74U,         /**< Low-Power Analog-to-Digital Converter 0 (LPADC0) */
+    kXRDC_PeriphLpcmp0              = 75U,         /**< Low-Power Comparator 0 (LPCMP0) */
+    kXRDC_PeriphDac0                = 76U,         /**< Digital-to-Analog Converter 0 (DAC0) */
+    kXRDC_PeriphVref                = 77U,         /**< Voltage Reference (VREF) */
+    kXRDC_PeriphDma1                = 136U,        /**< Direct Memory Access 1 (DMA1) controller */
+    kXRDC_PeriphDma1Tcd             = 137U,        /**< Direct Memory Access 1 (DMA1) controller trasfer control descriptors */
+    kXRDC_PeriphFgpio1              = 143U,        /**< IO Port Alias */
+    kXRDC_PeriphSema421             = 155U,        /**< Semaphore Unit 1 (SEMA421) */
+    kXRDC_PeriphCmc1                = 160U,        /**< Core Mode Controller (CMC) */
+    kXRDC_PeriphDmamux1             = 161U,        /**< Direct Memory Access Mutiplexer 1 (DMAMUX1) */
+    kXRDC_PeriphIntmux0             = 162U,        /**< Interrupt Multiplexer 0 (INTMUX0) */
+    kXRDC_Periphllwu1               = 163U,        /**< Low Leakage Wake-up Unit 1 (LLWU1) */
+    kXRDC_PeriphMub                 = 164U,        /**< Messaging Unit - Side B (MU-B) */
+    kXRDC_PeriphTrgmux1             = 165U,        /**< Trigger Multiplexer 1 (TRGMUX1) */
+    kXRDC_PeriphWdog1               = 166U,        /**< Watchdog 1 (WDOG1) */
+    kXRDC_PeriphPcc1                = 167U,        /**< Peripheral Clock Controller 1 (PCC1) */
+    kXRDC_PeriphCau3                = 168U,        /**< Cryptographic Acceleration Unit (CAU3) */
+    kXRDC_PeriphTrng                = 169U,        /**< True Random Number Generator (TRNG) */
+    kXRDC_PeriphLpit1               = 170U,        /**< Low-Power Periodic Interrupt Timer 1 (LPIT1) */
+    kXRDC_PeriphLptmr2              = 171U,        /**< Low-Power Timer 2 (LPTMR2) */
+    kXRDC_PeriphTstmr1              = 172U,        /**< Time Stamp Timer 1 (TSTMR1) */
+    kXRDC_PeriphTpm3                = 173U,        /**< Timer / Pulse Width Modulation Module 3 (TPM3) - 2 channel */
+    kXRDC_PeriphLpi2c3              = 174U,        /**< Low-Power Inter-Integrated Circuit 3 (LPI2C3) */
+    kXRDC_PeriphRsim                = 175U,        /**< 2.4GHz Radio (RF2.4G) - RSIM */
+    kXRDC_PeriphXcvr                = 176U,        /**< 2.4GHz Radio (RF2.4G) - XCVR */
+    kXRDC_PeriphAnt                 = 177U,        /**< 2.4GHz Radio (RF2.4G) - ANT+ Link Layer */
+    kXRDC_PeriphBle                 = 178U,        /**< 2.4GHz Radio (RF2.4G) - Bluetooth Link layer */
+    kXRDC_PeriphGfsk                = 179U,        /**< 2.4GHz Radio (RF2.4G) - Generic Link layer */
+    kXRDC_PeriphIeee                = 180U,        /**< 2.4GHz Radio (RF2.4G) - IEEE 802.15.4 Link Layer */
+    kXRDC_PeriphLpspi3              = 181U,        /**< Low-Power Serial Peripheral Interface 3 (LPSPI3) */
+    kXRDC_PeriphLpuart3             = 182U,        /**< Low-Power Universal Asynchronous Receive / Transmit 3 (LPUART3) */
+    kXRDC_PeriphPortE               = 183U,        /**< PORTE Multiplex Control */
+    kXRDC_PeriphLpcmp1              = 214U,        /**< Low-Power Comparator 1 (LPCMP1) */
+} xrdc_periph_t;
+
+
+/*!
+ * @}
+ */ /* end of group Mapping_Information */
+
+
+/* ----------------------------------------------------------------------------
+   -- Device Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Peripheral_access_layer Device Peripheral Access Layer
+ * @{
+ */
+
+
+/*
+** Start of section using anonymous unions
+*/
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang diagnostic push
+  #else
+    #pragma push
+    #pragma anon_unions
+  #endif
+#elif defined(__GNUC__)
+  /* anonymous unions are enabled by default */
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma language=extended
+#else
+  #error Not supported compiler type
+#endif
+
+/* ----------------------------------------------------------------------------
+   -- ADC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ADC_Peripheral_Access_Layer ADC Peripheral Access Layer
+ * @{
+ */
+
+/** ADC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CTRL;                              /**< ADC Control Register, offset: 0x10 */
+  __IO uint32_t STAT;                              /**< ADC Status Register, offset: 0x14 */
+  __IO uint32_t IE;                                /**< Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t DE;                                /**< DMA Enable Register, offset: 0x1C */
+  __IO uint32_t CFG;                               /**< ADC Configuration Register, offset: 0x20 */
+  __IO uint32_t PAUSE;                             /**< ADC Pause Register, offset: 0x24 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t FCTRL;                             /**< ADC FIFO Control Register, offset: 0x30 */
+  __O  uint32_t SWTRIG;                            /**< Software Trigger Register, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t OFSTRIM;                           /**< ADC Offset Trim Register, offset: 0x40 */
+       uint8_t RESERVED_3[124];
+  __IO uint32_t TCTRL[4];                          /**< Trigger Control Register, array offset: 0xC0, array step: 0x4 */
+       uint8_t RESERVED_4[48];
+  struct {                                         /* offset: 0x100, array step: 0x8 */
+    __IO uint32_t CMDL;                              /**< ADC Command Low Buffer Register, array offset: 0x100, array step: 0x8 */
+    __IO uint32_t CMDH;                              /**< ADC Command High Buffer Register, array offset: 0x104, array step: 0x8 */
+  } CMD[15];
+       uint8_t RESERVED_5[136];
+  __IO uint32_t CV[4];                             /**< Compare Value Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_6[240];
+  __I  uint32_t RESFIFO;                           /**< ADC Data Result FIFO Register, offset: 0x300 */
+} ADC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- ADC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ADC_Register_Masks ADC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define ADC_VERID_RES_MASK                       (0x1U)
+#define ADC_VERID_RES_SHIFT                      (0U)
+/*! RES - Resolution
+ *  0b0..Up to 13-bit differential/12-bit single ended resolution supported.
+ *  0b1..Up to 16-bit differential/15-bit single ended resolution supported.
+ */
+#define ADC_VERID_RES(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_RES_SHIFT)) & ADC_VERID_RES_MASK)
+#define ADC_VERID_DIFFEN_MASK                    (0x2U)
+#define ADC_VERID_DIFFEN_SHIFT                   (1U)
+/*! DIFFEN - Differential Supported
+ *  0b0..Differential operation not supported.
+ *  0b1..Differential operation supported. CMDLa[DIFF] and CMDLa[ABSEL] control fields implemented.
+ */
+#define ADC_VERID_DIFFEN(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_VERID_DIFFEN_SHIFT)) & ADC_VERID_DIFFEN_MASK)
+#define ADC_VERID_MVI_MASK                       (0x8U)
+#define ADC_VERID_MVI_SHIFT                      (3U)
+/*! MVI - Multi Vref Implemented
+ *  0b0..Single voltage reference high (VREFH) input supported.
+ *  0b1..Multiple voltage reference high (VREFH) inputs supported.
+ */
+#define ADC_VERID_MVI(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MVI_SHIFT)) & ADC_VERID_MVI_MASK)
+#define ADC_VERID_CSW_MASK                       (0x70U)
+#define ADC_VERID_CSW_SHIFT                      (4U)
+/*! CSW - Channel Scale Width
+ *  0b000..Channel scaling not supported.
+ *  0b001..Channel scaling supported. 1-bit CSCALE control field.
+ *  0b110..Channel scaling supported. 6-bit CSCALE control field.
+ */
+#define ADC_VERID_CSW(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_VERID_CSW_SHIFT)) & ADC_VERID_CSW_MASK)
+#define ADC_VERID_VR1RNGI_MASK                   (0x100U)
+#define ADC_VERID_VR1RNGI_SHIFT                  (8U)
+/*! VR1RNGI - Voltage Reference 1 Range Control Bit Implemented
+ *  0b0..Range control not required. CFG[VREF1RNG] is not implemented.
+ *  0b1..Range control required. CFG[VREF1RNG] is implemented.
+ */
+#define ADC_VERID_VR1RNGI(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_VERID_VR1RNGI_SHIFT)) & ADC_VERID_VR1RNGI_MASK)
+#define ADC_VERID_IADCKI_MASK                    (0x200U)
+#define ADC_VERID_IADCKI_SHIFT                   (9U)
+/*! IADCKI - Internal ADC Clock implemented
+ *  0b0..Internal clock source not implemented.
+ *  0b1..Internal clock source (and CFG[ADCKEN]) implemented.
+ */
+#define ADC_VERID_IADCKI(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_VERID_IADCKI_SHIFT)) & ADC_VERID_IADCKI_MASK)
+#define ADC_VERID_CALOFSI_MASK                   (0x400U)
+#define ADC_VERID_CALOFSI_SHIFT                  (10U)
+/*! CALOFSI - Calibration Offset Function Implemented
+ *  0b0..Offset calibration and offset trimming not implemented.
+ *  0b1..Offset calibration and offset trimming implemented.
+ */
+#define ADC_VERID_CALOFSI(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_VERID_CALOFSI_SHIFT)) & ADC_VERID_CALOFSI_MASK)
+#define ADC_VERID_MINOR_MASK                     (0xFF0000U)
+#define ADC_VERID_MINOR_SHIFT                    (16U)
+#define ADC_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MINOR_SHIFT)) & ADC_VERID_MINOR_MASK)
+#define ADC_VERID_MAJOR_MASK                     (0xFF000000U)
+#define ADC_VERID_MAJOR_SHIFT                    (24U)
+#define ADC_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_VERID_MAJOR_SHIFT)) & ADC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define ADC_PARAM_TRIG_NUM_MASK                  (0xFFU)
+#define ADC_PARAM_TRIG_NUM_SHIFT                 (0U)
+#define ADC_PARAM_TRIG_NUM(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_TRIG_NUM_SHIFT)) & ADC_PARAM_TRIG_NUM_MASK)
+#define ADC_PARAM_FIFOSIZE_MASK                  (0xFF00U)
+#define ADC_PARAM_FIFOSIZE_SHIFT                 (8U)
+/*! FIFOSIZE - Result FIFO Depth
+ *  0b00000001..Result FIFO depth = 1 dataword.
+ *  0b00000100..Result FIFO depth = 4 datawords.
+ *  0b00001000..Result FIFO depth = 8 datawords.
+ *  0b00010000..Result FIFO depth = 16 datawords.
+ *  0b00100000..Result FIFO depth = 32 datawords.
+ *  0b01000000..Result FIFO depth = 64 datawords.
+ */
+#define ADC_PARAM_FIFOSIZE(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_FIFOSIZE_SHIFT)) & ADC_PARAM_FIFOSIZE_MASK)
+#define ADC_PARAM_CV_NUM_MASK                    (0xFF0000U)
+#define ADC_PARAM_CV_NUM_SHIFT                   (16U)
+#define ADC_PARAM_CV_NUM(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_CV_NUM_SHIFT)) & ADC_PARAM_CV_NUM_MASK)
+#define ADC_PARAM_CMD_NUM_MASK                   (0xFF000000U)
+#define ADC_PARAM_CMD_NUM_SHIFT                  (24U)
+#define ADC_PARAM_CMD_NUM(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_PARAM_CMD_NUM_SHIFT)) & ADC_PARAM_CMD_NUM_MASK)
+/*! @} */
+
+/*! @name CTRL - ADC Control Register */
+/*! @{ */
+#define ADC_CTRL_ADCEN_MASK                      (0x1U)
+#define ADC_CTRL_ADCEN_SHIFT                     (0U)
+/*! ADCEN - ADC Enable
+ *  0b0..ADC is disabled.
+ *  0b1..ADC is enabled.
+ */
+#define ADC_CTRL_ADCEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_ADCEN_SHIFT)) & ADC_CTRL_ADCEN_MASK)
+#define ADC_CTRL_RST_MASK                        (0x2U)
+#define ADC_CTRL_RST_SHIFT                       (1U)
+/*! RST - Software Reset
+ *  0b0..ADC logic is not reset.
+ *  0b1..ADC logic is reset.
+ */
+#define ADC_CTRL_RST(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_RST_SHIFT)) & ADC_CTRL_RST_MASK)
+#define ADC_CTRL_DOZEN_MASK                      (0x4U)
+#define ADC_CTRL_DOZEN_SHIFT                     (2U)
+/*! DOZEN - Doze Enable
+ *  0b0..ADC is enabled in Doze mode.
+ *  0b1..ADC is disabled in Doze mode.
+ */
+#define ADC_CTRL_DOZEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_DOZEN_SHIFT)) & ADC_CTRL_DOZEN_MASK)
+#define ADC_CTRL_RSTFIFO_MASK                    (0x100U)
+#define ADC_CTRL_RSTFIFO_SHIFT                   (8U)
+/*! RSTFIFO - Reset FIFO
+ *  0b0..No effect.
+ *  0b1..FIFO is reset.
+ */
+#define ADC_CTRL_RSTFIFO(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CTRL_RSTFIFO_SHIFT)) & ADC_CTRL_RSTFIFO_MASK)
+/*! @} */
+
+/*! @name STAT - ADC Status Register */
+/*! @{ */
+#define ADC_STAT_RDY_MASK                        (0x1U)
+#define ADC_STAT_RDY_SHIFT                       (0U)
+/*! RDY - Result FIFO Ready Flag
+ *  0b0..Result FIFO data level not above watermark level.
+ *  0b1..Result FIFO holding data above watermark level.
+ */
+#define ADC_STAT_RDY(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_STAT_RDY_SHIFT)) & ADC_STAT_RDY_MASK)
+#define ADC_STAT_FOF_MASK                        (0x2U)
+#define ADC_STAT_FOF_SHIFT                       (1U)
+/*! FOF - Result FIFO Overflow Flag
+ *  0b0..No result FIFO overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one result FIFO overflow has occurred since the last time the flag was cleared.
+ */
+#define ADC_STAT_FOF(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_STAT_FOF_SHIFT)) & ADC_STAT_FOF_MASK)
+#define ADC_STAT_TRGACT_MASK                     (0x30000U)
+#define ADC_STAT_TRGACT_SHIFT                    (16U)
+/*! TRGACT - Trigger Active
+ *  0b00..Command (sequence) associated with Trigger 0 currently being executed.
+ *  0b01..Command (sequence) associated with Trigger 1 currently being executed.
+ *  0b10..Command (sequence) associated with Trigger 2 currently being executed.
+ *  0b11..Command (sequence) associated with Trigger 3 currently being executed.
+ */
+#define ADC_STAT_TRGACT(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_STAT_TRGACT_SHIFT)) & ADC_STAT_TRGACT_MASK)
+#define ADC_STAT_CMDACT_MASK                     (0xF000000U)
+#define ADC_STAT_CMDACT_SHIFT                    (24U)
+/*! CMDACT - Command Active
+ *  0b0000..No command is currently in progress.
+ *  0b0001..Command 1 currently being executed.
+ *  0b0010..Command 2 currently being executed.
+ *  0b0011-0b1111..Associated command number is currently being executed.
+ */
+#define ADC_STAT_CMDACT(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_STAT_CMDACT_SHIFT)) & ADC_STAT_CMDACT_MASK)
+/*! @} */
+
+/*! @name IE - Interrupt Enable Register */
+/*! @{ */
+#define ADC_IE_FWMIE_MASK                        (0x1U)
+#define ADC_IE_FWMIE_SHIFT                       (0U)
+/*! FWMIE - FIFO Watermark Interrupt Enable
+ *  0b0..FIFO watermark interrupts are not enabled.
+ *  0b1..FIFO watermark interrupts are enabled.
+ */
+#define ADC_IE_FWMIE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_IE_FWMIE_SHIFT)) & ADC_IE_FWMIE_MASK)
+#define ADC_IE_FOFIE_MASK                        (0x2U)
+#define ADC_IE_FOFIE_SHIFT                       (1U)
+/*! FOFIE - Result FIFO Overflow Interrupt Enable
+ *  0b0..FIFO overflow interrupts are not enabled.
+ *  0b1..FIFO overflow interrupts are enabled.
+ */
+#define ADC_IE_FOFIE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_IE_FOFIE_SHIFT)) & ADC_IE_FOFIE_MASK)
+/*! @} */
+
+/*! @name DE - DMA Enable Register */
+/*! @{ */
+#define ADC_DE_FWMDE_MASK                        (0x1U)
+#define ADC_DE_FWMDE_SHIFT                       (0U)
+/*! FWMDE - FIFO Watermark DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define ADC_DE_FWMDE(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_DE_FWMDE_SHIFT)) & ADC_DE_FWMDE_MASK)
+/*! @} */
+
+/*! @name CFG - ADC Configuration Register */
+/*! @{ */
+#define ADC_CFG_TPRICTRL_MASK                    (0x1U)
+#define ADC_CFG_TPRICTRL_SHIFT                   (0U)
+/*! TPRICTRL - ADC trigger priority control
+ *  0b0..If a higher priority trigger is detected during command processing, the current conversion is aborted and the new command specified by the trigger is started.
+ *  0b1..If a higher priority trigger is received during command processing, the current conversion is completed (including averaging iterations if enabled) and stored to the RESFIFO before the higher priority trigger/command is initiated. Note that compare until true commands can be interrupted prior to resulting in a true conversion.
+ */
+#define ADC_CFG_TPRICTRL(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CFG_TPRICTRL_SHIFT)) & ADC_CFG_TPRICTRL_MASK)
+#define ADC_CFG_PWRSEL_MASK                      (0x30U)
+#define ADC_CFG_PWRSEL_SHIFT                     (4U)
+/*! PWRSEL - Power Configuration Select
+ *  0b00..Level 1 (Lowest power setting)
+ *  0b01..Level 2
+ *  0b10..Level 3
+ *  0b11..Level 4 (Highest power setting)
+ */
+#define ADC_CFG_PWRSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PWRSEL_SHIFT)) & ADC_CFG_PWRSEL_MASK)
+#define ADC_CFG_REFSEL_MASK                      (0xC0U)
+#define ADC_CFG_REFSEL_SHIFT                     (6U)
+/*! REFSEL - Voltage Reference Selection
+ *  0b00..(Default) Option 1 setting.
+ *  0b01..Option 2 setting.
+ *  0b10..Option 3 setting.
+ *  0b11..Reserved
+ */
+#define ADC_CFG_REFSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_REFSEL_SHIFT)) & ADC_CFG_REFSEL_MASK)
+#define ADC_CFG_CALOFS_MASK                      (0x8000U)
+#define ADC_CFG_CALOFS_SHIFT                     (15U)
+/*! CALOFS - Configure for offset calibration function
+ *  0b0..Calibration function disabled
+ *  0b1..Configure for offset calibration function
+ */
+#define ADC_CFG_CALOFS(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_CALOFS_SHIFT)) & ADC_CFG_CALOFS_MASK)
+#define ADC_CFG_PUDLY_MASK                       (0xFF0000U)
+#define ADC_CFG_PUDLY_SHIFT                      (16U)
+#define ADC_CFG_PUDLY(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PUDLY_SHIFT)) & ADC_CFG_PUDLY_MASK)
+#define ADC_CFG_PWREN_MASK                       (0x10000000U)
+#define ADC_CFG_PWREN_SHIFT                      (28U)
+/*! PWREN - ADC Analog Pre-Enable
+ *  0b0..ADC analog circuits are only enabled while conversions are active. Performance is affected due to analog startup delays.
+ *  0b1..ADC analog circuits are pre-enabled and ready to execute conversions without startup delays (at the cost of higher DC current consumption). When PWREN is set, the power up delay is enforced such that any detected trigger does not begin ADC operation until the power up delay time has passed.
+ */
+#define ADC_CFG_PWREN(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CFG_PWREN_SHIFT)) & ADC_CFG_PWREN_MASK)
+#define ADC_CFG_VREF1RNG_MASK                    (0x20000000U)
+#define ADC_CFG_VREF1RNG_SHIFT                   (29U)
+/*! VREF1RNG - Enable support for low voltage reference on Option 1 Reference
+ *  0b0..Configuration required when Voltage Reference Option 1 input is in high voltage range
+ *  0b1..Configuration required when Voltage Reference Option 1 input is in low voltage range
+ */
+#define ADC_CFG_VREF1RNG(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_CFG_VREF1RNG_SHIFT)) & ADC_CFG_VREF1RNG_MASK)
+#define ADC_CFG_ADCKEN_MASK                      (0x80000000U)
+#define ADC_CFG_ADCKEN_SHIFT                     (31U)
+/*! ADCKEN - ADC asynchronous clock enable
+ *  0b0..ADC internal clock is disabled
+ *  0b1..ADC internal clock is enabled
+ */
+#define ADC_CFG_ADCKEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CFG_ADCKEN_SHIFT)) & ADC_CFG_ADCKEN_MASK)
+/*! @} */
+
+/*! @name PAUSE - ADC Pause Register */
+/*! @{ */
+#define ADC_PAUSE_PAUSEDLY_MASK                  (0x1FFU)
+#define ADC_PAUSE_PAUSEDLY_SHIFT                 (0U)
+#define ADC_PAUSE_PAUSEDLY(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_PAUSE_PAUSEDLY_SHIFT)) & ADC_PAUSE_PAUSEDLY_MASK)
+#define ADC_PAUSE_PAUSEEN_MASK                   (0x80000000U)
+#define ADC_PAUSE_PAUSEEN_SHIFT                  (31U)
+/*! PAUSEEN - PAUSE Option Enable
+ *  0b0..Pause operation disabled
+ *  0b1..Pause operation enabled
+ */
+#define ADC_PAUSE_PAUSEEN(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_PAUSE_PAUSEEN_SHIFT)) & ADC_PAUSE_PAUSEEN_MASK)
+/*! @} */
+
+/*! @name FCTRL - ADC FIFO Control Register */
+/*! @{ */
+#define ADC_FCTRL_FCOUNT_MASK                    (0x1FU)
+#define ADC_FCTRL_FCOUNT_SHIFT                   (0U)
+#define ADC_FCTRL_FCOUNT(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_FCTRL_FCOUNT_SHIFT)) & ADC_FCTRL_FCOUNT_MASK)
+#define ADC_FCTRL_FWMARK_MASK                    (0xF0000U)
+#define ADC_FCTRL_FWMARK_SHIFT                   (16U)
+#define ADC_FCTRL_FWMARK(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_FCTRL_FWMARK_SHIFT)) & ADC_FCTRL_FWMARK_MASK)
+/*! @} */
+
+/*! @name SWTRIG - Software Trigger Register */
+/*! @{ */
+#define ADC_SWTRIG_SWT0_MASK                     (0x1U)
+#define ADC_SWTRIG_SWT0_SHIFT                    (0U)
+/*! SWT0 - Software trigger 0 event
+ *  0b0..No trigger 0 event generated.
+ *  0b1..Trigger 0 event generated.
+ */
+#define ADC_SWTRIG_SWT0(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT0_SHIFT)) & ADC_SWTRIG_SWT0_MASK)
+#define ADC_SWTRIG_SWT1_MASK                     (0x2U)
+#define ADC_SWTRIG_SWT1_SHIFT                    (1U)
+/*! SWT1 - Software trigger 1 event
+ *  0b0..No trigger 1 event generated.
+ *  0b1..Trigger 1 event generated.
+ */
+#define ADC_SWTRIG_SWT1(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT1_SHIFT)) & ADC_SWTRIG_SWT1_MASK)
+#define ADC_SWTRIG_SWT2_MASK                     (0x4U)
+#define ADC_SWTRIG_SWT2_SHIFT                    (2U)
+/*! SWT2 - Software trigger 2 event
+ *  0b0..No trigger 2 event generated.
+ *  0b1..Trigger 2 event generated.
+ */
+#define ADC_SWTRIG_SWT2(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT2_SHIFT)) & ADC_SWTRIG_SWT2_MASK)
+#define ADC_SWTRIG_SWT3_MASK                     (0x8U)
+#define ADC_SWTRIG_SWT3_SHIFT                    (3U)
+/*! SWT3 - Software trigger 3 event
+ *  0b0..No trigger 3 event generated.
+ *  0b1..Trigger 3 event generated.
+ */
+#define ADC_SWTRIG_SWT3(x)                       (((uint32_t)(((uint32_t)(x)) << ADC_SWTRIG_SWT3_SHIFT)) & ADC_SWTRIG_SWT3_MASK)
+/*! @} */
+
+/*! @name OFSTRIM - ADC Offset Trim Register */
+/*! @{ */
+#define ADC_OFSTRIM_OFSTRIM_MASK                 (0x3FU)
+#define ADC_OFSTRIM_OFSTRIM_SHIFT                (0U)
+#define ADC_OFSTRIM_OFSTRIM(x)                   (((uint32_t)(((uint32_t)(x)) << ADC_OFSTRIM_OFSTRIM_SHIFT)) & ADC_OFSTRIM_OFSTRIM_MASK)
+/*! @} */
+
+/*! @name TCTRL - Trigger Control Register */
+/*! @{ */
+#define ADC_TCTRL_HTEN_MASK                      (0x1U)
+#define ADC_TCTRL_HTEN_SHIFT                     (0U)
+/*! HTEN - Trigger enable
+ *  0b0..Hardware trigger source disabled
+ *  0b1..Hardware trigger source enabled
+ */
+#define ADC_TCTRL_HTEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_HTEN_SHIFT)) & ADC_TCTRL_HTEN_MASK)
+#define ADC_TCTRL_TPRI_MASK                      (0x300U)
+#define ADC_TCTRL_TPRI_SHIFT                     (8U)
+/*! TPRI - Trigger priority setting
+ *  0b00..Set to highest priority, Level 1
+ *  0b01-0b10..Set to corresponding priority level
+ *  0b11..Set to lowest priority, Level 4
+ */
+#define ADC_TCTRL_TPRI(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TPRI_SHIFT)) & ADC_TCTRL_TPRI_MASK)
+#define ADC_TCTRL_TDLY_MASK                      (0xF0000U)
+#define ADC_TCTRL_TDLY_SHIFT                     (16U)
+#define ADC_TCTRL_TDLY(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TDLY_SHIFT)) & ADC_TCTRL_TDLY_MASK)
+#define ADC_TCTRL_TCMD_MASK                      (0xF000000U)
+#define ADC_TCTRL_TCMD_SHIFT                     (24U)
+/*! TCMD - Trigger command select
+ *  0b0000..Not a valid selection from the command buffer. Trigger event is ignored.
+ *  0b0001..CMD1 is executed
+ *  0b0010-0b1110..Corresponding CMD is executed
+ *  0b1111..CMD15 is executed
+ */
+#define ADC_TCTRL_TCMD(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_TCTRL_TCMD_SHIFT)) & ADC_TCTRL_TCMD_MASK)
+/*! @} */
+
+/* The count of ADC_TCTRL */
+#define ADC_TCTRL_COUNT                          (4U)
+
+/*! @name CMDL - ADC Command Low Buffer Register */
+/*! @{ */
+#define ADC_CMDL_ADCH_MASK                       (0x1FU)
+#define ADC_CMDL_ADCH_SHIFT                      (0U)
+/*! ADCH - Input channel select
+ *  0b00000..Select CH0A or CH0B
+ *  0b00001..Select CH1A or CH1B
+ *  0b00010..Select CH2A or CH2B
+ *  0b00011..Select CH3A or CH3B
+ *  0b00100-0b11101..Select corresponding channel CHnA or CHnB
+ *  0b11110..Select CH30A or CH30B
+ *  0b11111..Select CH31A or CH31B
+ */
+#define ADC_CMDL_ADCH(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDL_ADCH_SHIFT)) & ADC_CMDL_ADCH_MASK)
+#define ADC_CMDL_ABSEL_MASK                      (0x20U)
+#define ADC_CMDL_ABSEL_SHIFT                     (5U)
+/*! ABSEL - A-side vs. B-side Select
+ *  0b0..The associated A-side channel is converted.
+ *  0b1..The associated B-side channel is converted.
+ */
+#define ADC_CMDL_ABSEL(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CMDL_ABSEL_SHIFT)) & ADC_CMDL_ABSEL_MASK)
+/*! @} */
+
+/* The count of ADC_CMDL */
+#define ADC_CMDL_COUNT                           (15U)
+
+/*! @name CMDH - ADC Command High Buffer Register */
+/*! @{ */
+#define ADC_CMDH_CMPEN_MASK                      (0x3U)
+#define ADC_CMDH_CMPEN_SHIFT                     (0U)
+/*! CMPEN - Compare Function Enable
+ *  0b00..Compare disabled.
+ *  0b01..Reserved
+ *  0b10..Compare enabled. Store on true.
+ *  0b11..Compare enabled. Repeat channel acquisition (sample/convert/compare) until true.
+ */
+#define ADC_CMDH_CMPEN(x)                        (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_CMPEN_SHIFT)) & ADC_CMDH_CMPEN_MASK)
+#define ADC_CMDH_LWI_MASK                        (0x80U)
+#define ADC_CMDH_LWI_SHIFT                       (7U)
+/*! LWI - Loop with Increment
+ *  0b0..Auto channel increment disabled
+ *  0b1..Auto channel increment enabled
+ */
+#define ADC_CMDH_LWI(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_LWI_SHIFT)) & ADC_CMDH_LWI_MASK)
+#define ADC_CMDH_STS_MASK                        (0x700U)
+#define ADC_CMDH_STS_SHIFT                       (8U)
+/*! STS - Sample Time Select
+ *  0b000..Minimum sample time of 3 ADCK cycles.
+ *  0b001..3 + 21 ADCK cycles; 5 ADCK cycles total sample time.
+ *  0b010..3 + 22 ADCK cycles; 7 ADCK cycles total sample time.
+ *  0b011..3 + 23 ADCK cycles; 11 ADCK cycles total sample time.
+ *  0b100..3 + 24 ADCK cycles; 19 ADCK cycles total sample time.
+ *  0b101..3 + 25 ADCK cycles; 35 ADCK cycles total sample time.
+ *  0b110..3 + 26 ADCK cycles; 67 ADCK cycles total sample time.
+ *  0b111..3 + 27 ADCK cycles; 131 ADCK cycles total sample time.
+ */
+#define ADC_CMDH_STS(x)                          (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_STS_SHIFT)) & ADC_CMDH_STS_MASK)
+#define ADC_CMDH_AVGS_MASK                       (0x7000U)
+#define ADC_CMDH_AVGS_SHIFT                      (12U)
+/*! AVGS - Hardware Average Select
+ *  0b000..Single conversion.
+ *  0b001..2 conversions averaged.
+ *  0b010..4 conversions averaged.
+ *  0b011..8 conversions averaged.
+ *  0b100..16 conversions averaged.
+ *  0b101..32 conversions averaged.
+ *  0b110..64 conversions averaged.
+ *  0b111..128 conversions averaged.
+ */
+#define ADC_CMDH_AVGS(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_AVGS_SHIFT)) & ADC_CMDH_AVGS_MASK)
+#define ADC_CMDH_LOOP_MASK                       (0xF0000U)
+#define ADC_CMDH_LOOP_SHIFT                      (16U)
+/*! LOOP - Loop Count Select
+ *  0b0000..Looping not enabled. Command executes 1 time.
+ *  0b0001..Loop 1 time. Command executes 2 times.
+ *  0b0010..Loop 2 times. Command executes 3 times.
+ *  0b0011-0b1110..Loop corresponding number of times. Command executes LOOP+1 times.
+ *  0b1111..Loop 15 times. Command executes 16 times.
+ */
+#define ADC_CMDH_LOOP(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_LOOP_SHIFT)) & ADC_CMDH_LOOP_MASK)
+#define ADC_CMDH_NEXT_MASK                       (0xF000000U)
+#define ADC_CMDH_NEXT_SHIFT                      (24U)
+/*! NEXT - Next Command Select
+ *  0b0000..No next command defined. Terminate conversions at completion of current command. If lower priority trigger pending, begin command associated with lower priority trigger.
+ *  0b0001..Select CMD1 command buffer register as next command.
+ *  0b0010-0b1110..Select corresponding CMD command buffer register as next command
+ *  0b1111..Select CMD15 command buffer register as next command.
+ */
+#define ADC_CMDH_NEXT(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_CMDH_NEXT_SHIFT)) & ADC_CMDH_NEXT_MASK)
+/*! @} */
+
+/* The count of ADC_CMDH */
+#define ADC_CMDH_COUNT                           (15U)
+
+/*! @name CV - Compare Value Register */
+/*! @{ */
+#define ADC_CV_CVL_MASK                          (0xFFFFU)
+#define ADC_CV_CVL_SHIFT                         (0U)
+#define ADC_CV_CVL(x)                            (((uint32_t)(((uint32_t)(x)) << ADC_CV_CVL_SHIFT)) & ADC_CV_CVL_MASK)
+#define ADC_CV_CVH_MASK                          (0xFFFF0000U)
+#define ADC_CV_CVH_SHIFT                         (16U)
+#define ADC_CV_CVH(x)                            (((uint32_t)(((uint32_t)(x)) << ADC_CV_CVH_SHIFT)) & ADC_CV_CVH_MASK)
+/*! @} */
+
+/* The count of ADC_CV */
+#define ADC_CV_COUNT                             (4U)
+
+/*! @name RESFIFO - ADC Data Result FIFO Register */
+/*! @{ */
+#define ADC_RESFIFO_D_MASK                       (0xFFFFU)
+#define ADC_RESFIFO_D_SHIFT                      (0U)
+#define ADC_RESFIFO_D(x)                         (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_D_SHIFT)) & ADC_RESFIFO_D_MASK)
+#define ADC_RESFIFO_TSRC_MASK                    (0x30000U)
+#define ADC_RESFIFO_TSRC_SHIFT                   (16U)
+/*! TSRC - Trigger Source
+ *  0b00..Trigger source 0 initiated this conversion.
+ *  0b01..Trigger source 1 initiated this conversion.
+ *  0b10..Trigger source 2 initiated this conversion.
+ *  0b11..Trigger source 3 initiated this conversion.
+ */
+#define ADC_RESFIFO_TSRC(x)                      (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_TSRC_SHIFT)) & ADC_RESFIFO_TSRC_MASK)
+#define ADC_RESFIFO_LOOPCNT_MASK                 (0xF00000U)
+#define ADC_RESFIFO_LOOPCNT_SHIFT                (20U)
+/*! LOOPCNT - Loop count value
+ *  0b0000..Result is from initial conversion in command.
+ *  0b0001..Result is from second conversion in command.
+ *  0b0010-0b1110..Result is from LOOPCNT+1 conversion in command.
+ *  0b1111..Result is from 16th conversion in command.
+ */
+#define ADC_RESFIFO_LOOPCNT(x)                   (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_LOOPCNT_SHIFT)) & ADC_RESFIFO_LOOPCNT_MASK)
+#define ADC_RESFIFO_CMDSRC_MASK                  (0xF000000U)
+#define ADC_RESFIFO_CMDSRC_SHIFT                 (24U)
+/*! CMDSRC - Command Buffer Source
+ *  0b0000..Not a valid value CMDSRC value for a dataword in RESFIFO. 0x0 is only found in initial FIFO state prior to an ADC conversion result dataword being stored to a RESFIFO buffer.
+ *  0b0001..CMD1 buffer used as control settings for this conversion.
+ *  0b0010-0b1110..Corresponding command buffer used as control settings for this conversion.
+ *  0b1111..CMD15 buffer used as control settings for this conversion.
+ */
+#define ADC_RESFIFO_CMDSRC(x)                    (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_CMDSRC_SHIFT)) & ADC_RESFIFO_CMDSRC_MASK)
+#define ADC_RESFIFO_VALID_MASK                   (0x80000000U)
+#define ADC_RESFIFO_VALID_SHIFT                  (31U)
+/*! VALID - FIFO entry is valid
+ *  0b0..FIFO is empty. Discard any read from RESFIFO.
+ *  0b1..FIFO record read from RESFIFO is valid.
+ */
+#define ADC_RESFIFO_VALID(x)                     (((uint32_t)(((uint32_t)(x)) << ADC_RESFIFO_VALID_SHIFT)) & ADC_RESFIFO_VALID_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group ADC_Register_Masks */
+
+
+/* ADC - Peripheral instance base addresses */
+/** Peripheral ADC0 base address */
+#define ADC0_BASE                                (0x4004A000u)
+/** Peripheral ADC0 base pointer */
+#define ADC0                                     ((ADC_Type *)ADC0_BASE)
+/** Array initializer of ADC peripheral base addresses */
+#define ADC_BASE_ADDRS                           { ADC0_BASE }
+/** Array initializer of ADC peripheral base pointers */
+#define ADC_BASE_PTRS                            { ADC0 }
+/** Interrupt vectors for the ADC peripheral type */
+#define ADC_IRQS                                 { ADC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group ADC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- BTLE_RF Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup BTLE_RF_Peripheral_Access_Layer BTLE_RF Peripheral Access Layer
+ * @{
+ */
+
+/** BTLE_RF - Register Layout Typedef */
+typedef struct {
+       uint8_t RESERVED_0[1536];
+  __I  uint16_t BLE_PART_ID;                       /**< BLUETOOTH LOW ENERGY PART ID, offset: 0x600 */
+       uint8_t RESERVED_1[2];
+  __I  uint16_t DSM_STATUS;                        /**< BLE DSM STATUS, offset: 0x604 */
+       uint8_t RESERVED_2[2];
+  __IO uint16_t MISC_CTRL;                         /**< BLE MISCELLANEOUS CONTROL, offset: 0x608 */
+       uint8_t RESERVED_3[2];
+  __I  uint16_t BLE_FSM;                           /**< BLE STATE MACHINE STATUS, offset: 0x60C */
+} BTLE_RF_Type;
+
+/* ----------------------------------------------------------------------------
+   -- BTLE_RF Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup BTLE_RF_Register_Masks BTLE_RF Register Masks
+ * @{
+ */
+
+/*! @name BLE_PART_ID - BLUETOOTH LOW ENERGY PART ID */
+/*! @{ */
+#define BTLE_RF_BLE_PART_ID_BLE_PART_ID_MASK     (0xFFFFU)
+#define BTLE_RF_BLE_PART_ID_BLE_PART_ID_SHIFT    (0U)
+/*! BLE_PART_ID - BLE Part ID
+ *  0b0000000000000000..Pre-production
+ *  0b0000000000000001..Pre-production
+ *  0b0000000000000010..KW40
+ *  0b0000000000000011..KW41
+ *  0b0000000000000100..RV32M1
+ *  0b0000000000000101..KW35/KW36
+ */
+#define BTLE_RF_BLE_PART_ID_BLE_PART_ID(x)       (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_PART_ID_BLE_PART_ID_SHIFT)) & BTLE_RF_BLE_PART_ID_BLE_PART_ID_MASK)
+/*! @} */
+
+/*! @name DSM_STATUS - BLE DSM STATUS */
+/*! @{ */
+#define BTLE_RF_DSM_STATUS_ORF_SYSCLK_REQ_MASK   (0x1U)
+#define BTLE_RF_DSM_STATUS_ORF_SYSCLK_REQ_SHIFT  (0U)
+#define BTLE_RF_DSM_STATUS_ORF_SYSCLK_REQ(x)     (((uint16_t)(((uint16_t)(x)) << BTLE_RF_DSM_STATUS_ORF_SYSCLK_REQ_SHIFT)) & BTLE_RF_DSM_STATUS_ORF_SYSCLK_REQ_MASK)
+#define BTLE_RF_DSM_STATUS_RIF_LL_ACTIVE_MASK    (0x2U)
+#define BTLE_RF_DSM_STATUS_RIF_LL_ACTIVE_SHIFT   (1U)
+#define BTLE_RF_DSM_STATUS_RIF_LL_ACTIVE(x)      (((uint16_t)(((uint16_t)(x)) << BTLE_RF_DSM_STATUS_RIF_LL_ACTIVE_SHIFT)) & BTLE_RF_DSM_STATUS_RIF_LL_ACTIVE_MASK)
+#define BTLE_RF_DSM_STATUS_XCVR_BUSY_MASK        (0x4U)
+#define BTLE_RF_DSM_STATUS_XCVR_BUSY_SHIFT       (2U)
+/*! XCVR_BUSY - Transceiver Busy Status Bit
+ *  0b0..RF Channel in available (TSM is idle)
+ *  0b1..RF Channel in use (TSM is busy)
+ */
+#define BTLE_RF_DSM_STATUS_XCVR_BUSY(x)          (((uint16_t)(((uint16_t)(x)) << BTLE_RF_DSM_STATUS_XCVR_BUSY_SHIFT)) & BTLE_RF_DSM_STATUS_XCVR_BUSY_MASK)
+/*! @} */
+
+/*! @name MISC_CTRL - BLE MISCELLANEOUS CONTROL */
+/*! @{ */
+#define BTLE_RF_MISC_CTRL_TSM_INTR_EN_MASK       (0x2U)
+#define BTLE_RF_MISC_CTRL_TSM_INTR_EN_SHIFT      (1U)
+#define BTLE_RF_MISC_CTRL_TSM_INTR_EN(x)         (((uint16_t)(((uint16_t)(x)) << BTLE_RF_MISC_CTRL_TSM_INTR_EN_SHIFT)) & BTLE_RF_MISC_CTRL_TSM_INTR_EN_MASK)
+#define BTLE_RF_MISC_CTRL_BLE_FSM_SEL_MASK       (0x1CU)
+#define BTLE_RF_MISC_CTRL_BLE_FSM_SEL_SHIFT      (2U)
+#define BTLE_RF_MISC_CTRL_BLE_FSM_SEL(x)         (((uint16_t)(((uint16_t)(x)) << BTLE_RF_MISC_CTRL_BLE_FSM_SEL_SHIFT)) & BTLE_RF_MISC_CTRL_BLE_FSM_SEL_MASK)
+/*! @} */
+
+/*! @name BLE_FSM - BLE STATE MACHINE STATUS */
+/*! @{ */
+#define BTLE_RF_BLE_FSM_VAR_CS_MASK              (0x1FU)
+#define BTLE_RF_BLE_FSM_VAR_CS_SHIFT             (0U)
+#define BTLE_RF_BLE_FSM_VAR_CS(x)                (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_FSM_VAR_CS_SHIFT)) & BTLE_RF_BLE_FSM_VAR_CS_MASK)
+#define BTLE_RF_BLE_FSM_BTLE_TX_EN_MASK          (0x20U)
+#define BTLE_RF_BLE_FSM_BTLE_TX_EN_SHIFT         (5U)
+#define BTLE_RF_BLE_FSM_BTLE_TX_EN(x)            (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_FSM_BTLE_TX_EN_SHIFT)) & BTLE_RF_BLE_FSM_BTLE_TX_EN_MASK)
+#define BTLE_RF_BLE_FSM_BTLE_RX_EN_MASK          (0x40U)
+#define BTLE_RF_BLE_FSM_BTLE_RX_EN_SHIFT         (6U)
+#define BTLE_RF_BLE_FSM_BTLE_RX_EN(x)            (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_FSM_BTLE_RX_EN_SHIFT)) & BTLE_RF_BLE_FSM_BTLE_RX_EN_MASK)
+#define BTLE_RF_BLE_FSM_TX_CS_MASK               (0xF80U)
+#define BTLE_RF_BLE_FSM_TX_CS_SHIFT              (7U)
+#define BTLE_RF_BLE_FSM_TX_CS(x)                 (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_FSM_TX_CS_SHIFT)) & BTLE_RF_BLE_FSM_TX_CS_MASK)
+#define BTLE_RF_BLE_FSM_RX_CS_MASK               (0xF000U)
+#define BTLE_RF_BLE_FSM_RX_CS_SHIFT              (12U)
+#define BTLE_RF_BLE_FSM_RX_CS(x)                 (((uint16_t)(((uint16_t)(x)) << BTLE_RF_BLE_FSM_RX_CS_SHIFT)) & BTLE_RF_BLE_FSM_RX_CS_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group BTLE_RF_Register_Masks */
+
+
+/* BTLE_RF - Peripheral instance base addresses */
+/** Peripheral BTLE_RF base address */
+#define BTLE_RF_BASE                             (0x41032000u)
+/** Peripheral BTLE_RF base pointer */
+#define BTLE_RF                                  ((BTLE_RF_Type *)BTLE_RF_BASE)
+/** Array initializer of BTLE_RF peripheral base addresses */
+#define BTLE_RF_BASE_ADDRS                       { BTLE_RF_BASE }
+/** Array initializer of BTLE_RF peripheral base pointers */
+#define BTLE_RF_BASE_PTRS                        { BTLE_RF }
+
+/*!
+ * @}
+ */ /* end of group BTLE_RF_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- CAU3 Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CAU3_Peripheral_Access_Layer CAU3 Peripheral Access Layer
+ * @{
+ */
+
+/** CAU3 - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t PCT;                               /**< Processor Core Type, offset: 0x0 */
+  __I  uint32_t MCFG;                              /**< Memory Configuration, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x14 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t DBGCSR;                            /**< Debug Control/Status Register, offset: 0x20 */
+  __IO uint32_t DBGPBR;                            /**< Debug PC Breakpoint Register, offset: 0x24 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t DBGMCMD;                           /**< Debug Memory Command Register, offset: 0x30 */
+  __IO uint32_t DBGMADR;                           /**< Debug Memory Address Register, offset: 0x34 */
+  __IO uint32_t DBGMDR;                            /**< Debug Memory Data Register, offset: 0x38 */
+       uint8_t RESERVED_3[180];
+  __IO uint32_t SEMA4;                             /**< Semaphore Register, offset: 0xF0 */
+  __I  uint32_t SMOWNR;                            /**< Semaphore Ownership Register, offset: 0xF4 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t ARR;                               /**< Address Remap Register, offset: 0xFC */
+       uint8_t RESERVED_5[128];
+  __IO uint32_t CC_R[30];                          /**< CryptoCore General Purpose Registers, array offset: 0x180, array step: 0x4 */
+  __IO uint32_t CC_R30;                            /**< General Purpose R30, offset: 0x1F8 */
+  __IO uint32_t CC_R31;                            /**< General Purpose R31, offset: 0x1FC */
+  __IO uint32_t CC_PC;                             /**< Program Counter, offset: 0x200 */
+  __O  uint32_t CC_CMD;                            /**< Start Command Register, offset: 0x204 */
+  __I  uint32_t CC_CF;                             /**< Condition Flag, offset: 0x208 */
+       uint8_t RESERVED_6[500];
+  __IO uint32_t MDPK;                              /**< Mode Register (PublicKey), offset: 0x400 */
+       uint8_t RESERVED_7[44];
+  __O  uint32_t COM;                               /**< Command Register, offset: 0x430 */
+  __IO uint32_t CTL;                               /**< Control Register, offset: 0x434 */
+       uint8_t RESERVED_8[8];
+  __O  uint32_t CW;                                /**< Clear Written Register, offset: 0x440 */
+       uint8_t RESERVED_9[4];
+  __IO uint32_t STA;                               /**< Status Register, offset: 0x448 */
+  __I  uint32_t ESTA;                              /**< Error Status Register, offset: 0x44C */
+       uint8_t RESERVED_10[48];
+  __IO uint32_t PKASZ;                             /**< PKHA A Size Register, offset: 0x480 */
+       uint8_t RESERVED_11[4];
+  __IO uint32_t PKBSZ;                             /**< PKHA B Size Register, offset: 0x488 */
+       uint8_t RESERVED_12[4];
+  __IO uint32_t PKNSZ;                             /**< PKHA N Size Register, offset: 0x490 */
+       uint8_t RESERVED_13[4];
+  __IO uint32_t PKESZ;                             /**< PKHA E Size Register, offset: 0x498 */
+       uint8_t RESERVED_14[84];
+  __I  uint32_t PKHA_VID1;                         /**< PKHA Revision ID 1, offset: 0x4F0 */
+  __I  uint32_t PKHA_VID2;                         /**< PKHA Revision ID 2, offset: 0x4F4 */
+  __I  uint32_t CHA_VID;                           /**< CHA Revision ID, offset: 0x4F8 */
+       uint8_t RESERVED_15[260];
+  __IO uint32_t PKHA_CCR;                          /**< PKHA Clock Control Register, offset: 0x600 */
+  __I  uint32_t GSR;                               /**< Global Status Register, offset: 0x604 */
+  __IO uint32_t CKLFSR;                            /**< Clock Linear Feedback Shift Register, offset: 0x608 */
+       uint8_t RESERVED_16[500];
+  __IO uint32_t PKA0[32];                          /**< PKHA A0 Register, array offset: 0x800, array step: 0x4 */
+  __IO uint32_t PKA1[32];                          /**< PKHA A1 Register, array offset: 0x880, array step: 0x4 */
+  __IO uint32_t PKA2[32];                          /**< PKHA A2 Register, array offset: 0x900, array step: 0x4 */
+  __IO uint32_t PKA3[32];                          /**< PKHA A3 Register, array offset: 0x980, array step: 0x4 */
+  __IO uint32_t PKB0[32];                          /**< PKHA B0 Register, array offset: 0xA00, array step: 0x4 */
+  __IO uint32_t PKB1[32];                          /**< PKHA B1 Register, array offset: 0xA80, array step: 0x4 */
+  __IO uint32_t PKB2[32];                          /**< PKHA B2 Register, array offset: 0xB00, array step: 0x4 */
+  __IO uint32_t PKB3[32];                          /**< PKHA B3 Register, array offset: 0xB80, array step: 0x4 */
+  __IO uint32_t PKN0[32];                          /**< PKHA N0 Register, array offset: 0xC00, array step: 0x4 */
+  __IO uint32_t PKN1[32];                          /**< PKHA N1 Register, array offset: 0xC80, array step: 0x4 */
+  __IO uint32_t PKN2[32];                          /**< PKHA N2 Register, array offset: 0xD00, array step: 0x4 */
+  __IO uint32_t PKN3[32];                          /**< PKHA N3 Register, array offset: 0xD80, array step: 0x4 */
+  __O  uint32_t PKE[128];                          /**< PKHA E Register, array offset: 0xE00, array step: 0x4 */
+} CAU3_Type;
+
+/* ----------------------------------------------------------------------------
+   -- CAU3 Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CAU3_Register_Masks CAU3 Register Masks
+ * @{
+ */
+
+/*! @name PCT - Processor Core Type */
+/*! @{ */
+#define CAU3_PCT_Y_MASK                          (0xFU)
+#define CAU3_PCT_Y_SHIFT                         (0U)
+/*! Y - Minor version number
+ *  0b0000..Minor version number
+ */
+#define CAU3_PCT_Y(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_Y_SHIFT)) & CAU3_PCT_Y_MASK)
+#define CAU3_PCT_X_MASK                          (0xF0U)
+#define CAU3_PCT_X_SHIFT                         (4U)
+/*! X - Major version number
+ *  0b0000..Major version number
+ */
+#define CAU3_PCT_X(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_X_SHIFT)) & CAU3_PCT_X_MASK)
+#define CAU3_PCT_ID_MASK                         (0xFFFFFF00U)
+#define CAU3_PCT_ID_SHIFT                        (8U)
+/*! ID - Module ID number
+ *  0b010010110100000101100000..ID number for basic configuration
+ *  0b010010110100000101100001..ID number for PKHA configuration
+ */
+#define CAU3_PCT_ID(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_PCT_ID_SHIFT)) & CAU3_PCT_ID_MASK)
+/*! @} */
+
+/*! @name MCFG - Memory Configuration */
+/*! @{ */
+#define CAU3_MCFG_DRAM_SZ_MASK                   (0xF00U)
+#define CAU3_MCFG_DRAM_SZ_SHIFT                  (8U)
+/*! DRAM_SZ - Data RAM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_DRAM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_DRAM_SZ_SHIFT)) & CAU3_MCFG_DRAM_SZ_MASK)
+#define CAU3_MCFG_IROM_SZ_MASK                   (0xF0000U)
+#define CAU3_MCFG_IROM_SZ_SHIFT                  (16U)
+/*! IROM_SZ - Instruction ROM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_IROM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_IROM_SZ_SHIFT)) & CAU3_MCFG_IROM_SZ_MASK)
+#define CAU3_MCFG_IRAM_SZ_MASK                   (0xF000000U)
+#define CAU3_MCFG_IRAM_SZ_SHIFT                  (24U)
+/*! IRAM_SZ - Instruction RAM Size
+ *  0b0000..No memory module
+ *  0b0100..2K bytes
+ *  0b0101..3K bytes
+ *  0b0110..4K bytes
+ *  0b0111..6K bytes
+ *  0b1000..8K bytes
+ *  0b1001..12K bytes
+ *  0b1010..16K bytes
+ *  0b1011..24K bytes
+ *  0b1100..32K bytes
+ *  0b1101..48K bytes
+ *  0b1110..64K bytes
+ *  0b1111..96K bytes
+ */
+#define CAU3_MCFG_IRAM_SZ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_MCFG_IRAM_SZ_SHIFT)) & CAU3_MCFG_IRAM_SZ_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define CAU3_CR_TCSEIE_MASK                      (0x1U)
+#define CAU3_CR_TCSEIE_SHIFT                     (0U)
+/*! TCSEIE - Task completion with software error interrupt enable
+ *  0b0..Disables task completion with software error to generate an interrupt request
+ *  0b1..Enables task completion with software error to generate an interrupt request
+ */
+#define CAU3_CR_TCSEIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_TCSEIE_SHIFT)) & CAU3_CR_TCSEIE_MASK)
+#define CAU3_CR_ILLIE_MASK                       (0x2U)
+#define CAU3_CR_ILLIE_SHIFT                      (1U)
+/*! ILLIE - Illegal Instruction Interrupt Enable
+ *  0b0..Illegal instruction interrupt requests are disabled
+ *  0b1..illegal Instruction interrupt requests are enabled
+ */
+#define CAU3_CR_ILLIE(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_ILLIE_SHIFT)) & CAU3_CR_ILLIE_MASK)
+#define CAU3_CR_ASREIE_MASK                      (0x8U)
+#define CAU3_CR_ASREIE_SHIFT                     (3U)
+/*! ASREIE - AHB Slave Response Error Interrupt Enable
+ *  0b0..AHB slave response error interruption is not enabled
+ *  0b1..AHB slave response error interruption is enabled
+ */
+#define CAU3_CR_ASREIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_ASREIE_SHIFT)) & CAU3_CR_ASREIE_MASK)
+#define CAU3_CR_IIADIE_MASK                      (0x10U)
+#define CAU3_CR_IIADIE_SHIFT                     (4U)
+/*! IIADIE - IMEM Illegal Address Interrupt Enable
+ *  0b0..IMEM illegal address interruption is not enabled
+ *  0b1..IMEM illegal address interruption is enabled
+ */
+#define CAU3_CR_IIADIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_IIADIE_SHIFT)) & CAU3_CR_IIADIE_MASK)
+#define CAU3_CR_DIADIE_MASK                      (0x20U)
+#define CAU3_CR_DIADIE_SHIFT                     (5U)
+/*! DIADIE - DMEM Illegal Address Interrupt Enable
+ *  0b0..DMEM illegal address interruption is not enabled
+ *  0b1..DMEM illegal address interruption is enabled
+ */
+#define CAU3_CR_DIADIE(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DIADIE_SHIFT)) & CAU3_CR_DIADIE_MASK)
+#define CAU3_CR_SVIE_MASK                        (0x40U)
+#define CAU3_CR_SVIE_SHIFT                       (6U)
+/*! SVIE - Security Violation Interrupt Enable
+ *  0b0..Security violation interruption is not enabled
+ *  0b1..Security violation interruption is enabled
+ */
+#define CAU3_CR_SVIE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_SVIE_SHIFT)) & CAU3_CR_SVIE_MASK)
+#define CAU3_CR_TCIE_MASK                        (0x80U)
+#define CAU3_CR_TCIE_SHIFT                       (7U)
+/*! TCIE - Task completion with no error interrupt enable
+ *  0b0..Disables task completion with no error to generate an interrupt request
+ *  0b1..Enables task completion with no error to generate an interrupt request
+ */
+#define CAU3_CR_TCIE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_TCIE_SHIFT)) & CAU3_CR_TCIE_MASK)
+#define CAU3_CR_RSTSM4_MASK                      (0x3000U)
+#define CAU3_CR_RSTSM4_SHIFT                     (12U)
+/*! RSTSM4 - Reset Semaphore
+ *  0b00..Idle state
+ *  0b01..Wait for second write
+ *  0b10..Clears semaphore if previous state was "01"
+ *  0b11..Reserved
+ */
+#define CAU3_CR_RSTSM4(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_RSTSM4_SHIFT)) & CAU3_CR_RSTSM4_MASK)
+#define CAU3_CR_MRST_MASK                        (0x8000U)
+#define CAU3_CR_MRST_SHIFT                       (15U)
+/*! MRST - Module Reset
+ *  0b0..no action
+ *  0b1..reset
+ */
+#define CAU3_CR_MRST(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_MRST_SHIFT)) & CAU3_CR_MRST_MASK)
+#define CAU3_CR_FSV_MASK                         (0x10000U)
+#define CAU3_CR_FSV_SHIFT                        (16U)
+/*! FSV - Force Security Violation Test
+ *  0b0..no violation is forced
+ *  0b1..force security violation
+ */
+#define CAU3_CR_FSV(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CR_FSV_SHIFT)) & CAU3_CR_FSV_MASK)
+#define CAU3_CR_DTCCFG_MASK                      (0x7000000U)
+#define CAU3_CR_DTCCFG_SHIFT                     (24U)
+/*! DTCCFG - Default Task Completion Configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert Event Completion Signal
+ *  0b001..Issue an Interrupt Request
+ *  0b000..no explicit action
+ */
+#define CAU3_CR_DTCCFG(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DTCCFG_SHIFT)) & CAU3_CR_DTCCFG_MASK)
+#define CAU3_CR_DSHFI_MASK                       (0x10000000U)
+#define CAU3_CR_DSHFI_SHIFT                      (28U)
+/*! DSHFI - Disable Secure Hash Function Instructions
+ *  0b0..Secure Hash Functions are enabled
+ *  0b1..Secure Hash Functions are disabled
+ */
+#define CAU3_CR_DSHFI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DSHFI_SHIFT)) & CAU3_CR_DSHFI_MASK)
+#define CAU3_CR_DDESI_MASK                       (0x20000000U)
+#define CAU3_CR_DDESI_SHIFT                      (29U)
+/*! DDESI - Disable DES Instructions
+ *  0b0..DES instructions are enabled
+ *  0b1..DES instructions are disabled
+ */
+#define CAU3_CR_DDESI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DDESI_SHIFT)) & CAU3_CR_DDESI_MASK)
+#define CAU3_CR_DAESI_MASK                       (0x40000000U)
+#define CAU3_CR_DAESI_SHIFT                      (30U)
+/*! DAESI - Disable AES Instructions
+ *  0b0..AES instructions are enabled
+ *  0b1..AES instructions are disabled
+ */
+#define CAU3_CR_DAESI(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CR_DAESI_SHIFT)) & CAU3_CR_DAESI_MASK)
+#define CAU3_CR_MDIS_MASK                        (0x80000000U)
+#define CAU3_CR_MDIS_SHIFT                       (31U)
+/*! MDIS - Module Disable
+ *  0b0..CAU3 exits from low power mode
+ *  0b1..CAU3 enters low power mode
+ */
+#define CAU3_CR_MDIS(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CR_MDIS_SHIFT)) & CAU3_CR_MDIS_MASK)
+/*! @} */
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define CAU3_SR_TCSEIRQ_MASK                     (0x1U)
+#define CAU3_SR_TCSEIRQ_SHIFT                    (0U)
+/*! TCSEIRQ - Task completion with software error interrupt request
+ *  0b0..Task not finished or finished with no software error
+ *  0b1..Task execution finished with software error
+ */
+#define CAU3_SR_TCSEIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCSEIRQ_SHIFT)) & CAU3_SR_TCSEIRQ_MASK)
+#define CAU3_SR_ILLIRQ_MASK                      (0x2U)
+#define CAU3_SR_ILLIRQ_SHIFT                     (1U)
+/*! ILLIRQ - Illegal instruction interrupt request
+ *  0b0..no error
+ *  0b1..illegal instruction detected
+ */
+#define CAU3_SR_ILLIRQ(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_SR_ILLIRQ_SHIFT)) & CAU3_SR_ILLIRQ_MASK)
+#define CAU3_SR_ASREIRQ_MASK                     (0x8U)
+#define CAU3_SR_ASREIRQ_SHIFT                    (3U)
+/*! ASREIRQ - AHB slave response error interrupt Request
+ *  0b0..no error
+ *  0b1..AHB slave response error detected
+ */
+#define CAU3_SR_ASREIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_ASREIRQ_SHIFT)) & CAU3_SR_ASREIRQ_MASK)
+#define CAU3_SR_IIADIRQ_MASK                     (0x10U)
+#define CAU3_SR_IIADIRQ_SHIFT                    (4U)
+/*! IIADIRQ - IMEM Illegal address interrupt request
+ *  0b0..no error
+ *  0b1..illegal IMEM address detected
+ */
+#define CAU3_SR_IIADIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_IIADIRQ_SHIFT)) & CAU3_SR_IIADIRQ_MASK)
+#define CAU3_SR_DIADIRQ_MASK                     (0x20U)
+#define CAU3_SR_DIADIRQ_SHIFT                    (5U)
+/*! DIADIRQ - DMEM illegal access interrupt request
+ *  0b0..no illegal address
+ *  0b1..illegal address
+ */
+#define CAU3_SR_DIADIRQ(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_SR_DIADIRQ_SHIFT)) & CAU3_SR_DIADIRQ_MASK)
+#define CAU3_SR_SVIRQ_MASK                       (0x40U)
+#define CAU3_SR_SVIRQ_SHIFT                      (6U)
+/*! SVIRQ - Security violation interrupt request
+ *  0b0..No security violation
+ *  0b1..Security violation
+ */
+#define CAU3_SR_SVIRQ(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_SVIRQ_SHIFT)) & CAU3_SR_SVIRQ_MASK)
+#define CAU3_SR_TCIRQ_MASK                       (0x80U)
+#define CAU3_SR_TCIRQ_SHIFT                      (7U)
+/*! TCIRQ - Task completion with no error interrupt request
+ *  0b0..Task not finished or finished with error
+ *  0b1..Task execution finished with no error
+ */
+#define CAU3_SR_TCIRQ(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCIRQ_SHIFT)) & CAU3_SR_TCIRQ_MASK)
+#define CAU3_SR_TKCS_MASK                        (0xF00U)
+#define CAU3_SR_TKCS_SHIFT                       (8U)
+/*! TKCS - Task completion status
+ *  0b0000..Initialization RUN
+ *  0b0001..Running
+ *  0b0010..Debug Halted
+ *  0b1001..Stop - Error Free
+ *  0b1010..Stop - Error
+ *  0b1110..Stop - Security Violation, assert security violation output signal and set SVIRQ
+ *  0b1111..Stop - Security Violation and set SVIRQ
+ */
+#define CAU3_SR_TKCS(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TKCS_SHIFT)) & CAU3_SR_TKCS_MASK)
+#define CAU3_SR_SVF_MASK                         (0x10000U)
+#define CAU3_SR_SVF_SHIFT                        (16U)
+/*! SVF - Security violation flag
+ *  0b0..SoC security violation is not asserted
+ *  0b1..SoC security violation was asserted
+ */
+#define CAU3_SR_SVF(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_SR_SVF_SHIFT)) & CAU3_SR_SVF_MASK)
+#define CAU3_SR_DBG_MASK                         (0x20000U)
+#define CAU3_SR_DBG_SHIFT                        (17U)
+/*! DBG - Debug mode
+ *  0b0..CAU3 is not in debug mode
+ *  0b1..CAU3 is in debug mode
+ */
+#define CAU3_SR_DBG(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_SR_DBG_SHIFT)) & CAU3_SR_DBG_MASK)
+#define CAU3_SR_TCCFG_MASK                       (0x7000000U)
+#define CAU3_SR_TCCFG_SHIFT                      (24U)
+/*! TCCFG - Task completion configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert the Event Completion Signal
+ *  0b001..Assert an interrupt request
+ *  0b000..No action
+ */
+#define CAU3_SR_TCCFG(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_TCCFG_SHIFT)) & CAU3_SR_TCCFG_MASK)
+#define CAU3_SR_MDISF_MASK                       (0x80000000U)
+#define CAU3_SR_MDISF_SHIFT                      (31U)
+/*! MDISF - Module disable flag
+ *  0b0..CCore is not in low power mode
+ *  0b1..CCore is in low power mode
+ */
+#define CAU3_SR_MDISF(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SR_MDISF_SHIFT)) & CAU3_SR_MDISF_MASK)
+/*! @} */
+
+/*! @name DBGCSR - Debug Control/Status Register */
+/*! @{ */
+#define CAU3_DBGCSR_DDBG_MASK                    (0x1U)
+#define CAU3_DBGCSR_DDBG_SHIFT                   (0U)
+/*! DDBG - Debug Disable
+ *  0b0..debug is enabled
+ *  0b1..debug is disabled
+ */
+#define CAU3_DBGCSR_DDBG(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DDBG_SHIFT)) & CAU3_DBGCSR_DDBG_MASK)
+#define CAU3_DBGCSR_DDBGMC_MASK                  (0x2U)
+#define CAU3_DBGCSR_DDBGMC_SHIFT                 (1U)
+/*! DDBGMC - Disable Debug Memory Commands
+ *  0b0..IPS access to IMEM and DMEM are enabled
+ *  0b1..IPS access to IMEM and DMEM are disabled
+ */
+#define CAU3_DBGCSR_DDBGMC(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DDBGMC_SHIFT)) & CAU3_DBGCSR_DDBGMC_MASK)
+#define CAU3_DBGCSR_PBREN_MASK                   (0x10U)
+#define CAU3_DBGCSR_PBREN_SHIFT                  (4U)
+/*! PBREN - PC Breakpoint Register Enable
+ *  0b0..PC breakpoint register (DBGPBR) is disabled
+ *  0b1..PC breakpoint register (DBGPBR) is enabled
+ */
+#define CAU3_DBGCSR_PBREN(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_PBREN_SHIFT)) & CAU3_DBGCSR_PBREN_MASK)
+#define CAU3_DBGCSR_SIM_MASK                     (0x20U)
+#define CAU3_DBGCSR_SIM_SHIFT                    (5U)
+/*! SIM - Single Instruction Mode
+ *  0b0..Single instruction mode is disabled
+ *  0b1..Single instruction mode is enabled
+ */
+#define CAU3_DBGCSR_SIM(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_SIM_SHIFT)) & CAU3_DBGCSR_SIM_MASK)
+#define CAU3_DBGCSR_FRCH_MASK                    (0x100U)
+#define CAU3_DBGCSR_FRCH_SHIFT                   (8U)
+/*! FRCH - Force Debug Halt
+ *  0b0..Halt state not forced
+ *  0b1..Force halt state
+ */
+#define CAU3_DBGCSR_FRCH(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_FRCH_SHIFT)) & CAU3_DBGCSR_FRCH_MASK)
+#define CAU3_DBGCSR_DBGGO_MASK                   (0x1000U)
+#define CAU3_DBGCSR_DBGGO_SHIFT                  (12U)
+/*! DBGGO - Debug Go
+ *  0b0..No action
+ *  0b1..Resume program execution
+ */
+#define CAU3_DBGCSR_DBGGO(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_DBGGO_SHIFT)) & CAU3_DBGCSR_DBGGO_MASK)
+#define CAU3_DBGCSR_PCBHF_MASK                   (0x10000U)
+#define CAU3_DBGCSR_PCBHF_SHIFT                  (16U)
+/*! PCBHF - CryptoCore is Halted due to Hardware Breakpoint
+ *  0b0..CryptoCore is not halted due to a hardware breakpoint
+ *  0b1..CryptoCore is halted due to a hardware breakpoint
+ */
+#define CAU3_DBGCSR_PCBHF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_PCBHF_SHIFT)) & CAU3_DBGCSR_PCBHF_MASK)
+#define CAU3_DBGCSR_SIMHF_MASK                   (0x20000U)
+#define CAU3_DBGCSR_SIMHF_SHIFT                  (17U)
+/*! SIMHF - CryptoCore is Halted due to Single Instruction Step
+ *  0b0..CryptoCore is not in a single step halt
+ *  0b1..CryptoCore is in a single step halt
+ */
+#define CAU3_DBGCSR_SIMHF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_SIMHF_SHIFT)) & CAU3_DBGCSR_SIMHF_MASK)
+#define CAU3_DBGCSR_HLTIF_MASK                   (0x40000U)
+#define CAU3_DBGCSR_HLTIF_SHIFT                  (18U)
+/*! HLTIF - CryptoCore is Halted due to HALT Instruction
+ *  0b0..CryptoCore is not in software breakpoint
+ *  0b1..CryptoCore is in software breakpoint
+ */
+#define CAU3_DBGCSR_HLTIF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_HLTIF_SHIFT)) & CAU3_DBGCSR_HLTIF_MASK)
+#define CAU3_DBGCSR_CSTPF_MASK                   (0x40000000U)
+#define CAU3_DBGCSR_CSTPF_SHIFT                  (30U)
+/*! CSTPF - CryptoCore is Stopped Status Flag
+ *  0b0..CryptoCore is not stopped
+ *  0b1..CryptoCore is stopped
+ */
+#define CAU3_DBGCSR_CSTPF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_CSTPF_SHIFT)) & CAU3_DBGCSR_CSTPF_MASK)
+#define CAU3_DBGCSR_CHLTF_MASK                   (0x80000000U)
+#define CAU3_DBGCSR_CHLTF_SHIFT                  (31U)
+/*! CHLTF - CryptoCore is Halted Status Flag
+ *  0b0..CryptoCore is not halted
+ *  0b1..CryptoCore is halted
+ */
+#define CAU3_DBGCSR_CHLTF(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGCSR_CHLTF_SHIFT)) & CAU3_DBGCSR_CHLTF_MASK)
+/*! @} */
+
+/*! @name DBGPBR - Debug PC Breakpoint Register */
+/*! @{ */
+#define CAU3_DBGPBR_PCBKPT_MASK                  (0xFFFFCU)
+#define CAU3_DBGPBR_PCBKPT_SHIFT                 (2U)
+#define CAU3_DBGPBR_PCBKPT(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGPBR_PCBKPT_SHIFT)) & CAU3_DBGPBR_PCBKPT_MASK)
+/*! @} */
+
+/*! @name DBGMCMD - Debug Memory Command Register */
+/*! @{ */
+#define CAU3_DBGMCMD_DM_MASK                     (0x1000000U)
+#define CAU3_DBGMCMD_DM_SHIFT                    (24U)
+/*! DM - Instruction/Data Memory Selection
+ *  0b0..IMEM is selected
+ *  0b1..DMEM is selected
+ */
+#define CAU3_DBGMCMD_DM(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_DM_SHIFT)) & CAU3_DBGMCMD_DM_MASK)
+#define CAU3_DBGMCMD_IA_MASK                     (0x4000000U)
+#define CAU3_DBGMCMD_IA_SHIFT                    (26U)
+/*! IA - Increment Address
+ *  0b0..Address is not incremented
+ *  0b1..Address is incremented after the access
+ */
+#define CAU3_DBGMCMD_IA(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_IA_SHIFT)) & CAU3_DBGMCMD_IA_MASK)
+#define CAU3_DBGMCMD_Rb_1_MASK                   (0x8000000U)
+#define CAU3_DBGMCMD_Rb_1_SHIFT                  (27U)
+#define CAU3_DBGMCMD_Rb_1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_Rb_1_SHIFT)) & CAU3_DBGMCMD_Rb_1_MASK)
+#define CAU3_DBGMCMD_BV_MASK                     (0x10000000U)
+#define CAU3_DBGMCMD_BV_SHIFT                    (28U)
+/*! BV - Byte Reversal Control
+ *  0b0..DMEM bytes are not reversed
+ *  0b1..DMEM bytes are reversed
+ */
+#define CAU3_DBGMCMD_BV(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_BV_SHIFT)) & CAU3_DBGMCMD_BV_MASK)
+#define CAU3_DBGMCMD_R_0_MASK                    (0x40000000U)
+#define CAU3_DBGMCMD_R_0_SHIFT                   (30U)
+#define CAU3_DBGMCMD_R_0(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_R_0_SHIFT)) & CAU3_DBGMCMD_R_0_MASK)
+#define CAU3_DBGMCMD_R_1_MASK                    (0x80000000U)
+#define CAU3_DBGMCMD_R_1_SHIFT                   (31U)
+#define CAU3_DBGMCMD_R_1(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMCMD_R_1_SHIFT)) & CAU3_DBGMCMD_R_1_MASK)
+/*! @} */
+
+/*! @name DBGMADR - Debug Memory Address Register */
+/*! @{ */
+#define CAU3_DBGMADR_DMADDR_MASK                 (0xFFFFFFFCU)
+#define CAU3_DBGMADR_DMADDR_SHIFT                (2U)
+#define CAU3_DBGMADR_DMADDR(x)                   (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMADR_DMADDR_SHIFT)) & CAU3_DBGMADR_DMADDR_MASK)
+/*! @} */
+
+/*! @name DBGMDR - Debug Memory Data Register */
+/*! @{ */
+#define CAU3_DBGMDR_DMDATA_MASK                  (0xFFFFFFFFU)
+#define CAU3_DBGMDR_DMDATA_SHIFT                 (0U)
+#define CAU3_DBGMDR_DMDATA(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_DBGMDR_DMDATA_SHIFT)) & CAU3_DBGMDR_DMDATA_MASK)
+/*! @} */
+
+/*! @name SEMA4 - Semaphore Register */
+/*! @{ */
+#define CAU3_SEMA4_DID_MASK                      (0xFU)
+#define CAU3_SEMA4_DID_SHIFT                     (0U)
+#define CAU3_SEMA4_DID(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_DID_SHIFT)) & CAU3_SEMA4_DID_MASK)
+#define CAU3_SEMA4_PR_MASK                       (0x40U)
+#define CAU3_SEMA4_PR_SHIFT                      (6U)
+/*! PR - Privilege Attribute of Locked Semaphore Owner
+ *  0b0..If semaphore is locked, then owner is operating in user mode
+ *  0b1..If semaphore is locked, then owner is operating in privileged mode
+ */
+#define CAU3_SEMA4_PR(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_PR_SHIFT)) & CAU3_SEMA4_PR_MASK)
+#define CAU3_SEMA4_NS_MASK                       (0x80U)
+#define CAU3_SEMA4_NS_SHIFT                      (7U)
+/*! NS - Non Secure Attribute of the Locked Semaphore Owner
+ *  0b0..If semaphore is locked, owner is operating in secure mode
+ *  0b1..If semaphore is locked, owner is operating in nonsecure mode
+ */
+#define CAU3_SEMA4_NS(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_NS_SHIFT)) & CAU3_SEMA4_NS_MASK)
+#define CAU3_SEMA4_MSTRN_MASK                    (0x3F00U)
+#define CAU3_SEMA4_MSTRN_SHIFT                   (8U)
+#define CAU3_SEMA4_MSTRN(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_MSTRN_SHIFT)) & CAU3_SEMA4_MSTRN_MASK)
+#define CAU3_SEMA4_LK_MASK                       (0x80000000U)
+#define CAU3_SEMA4_LK_SHIFT                      (31U)
+/*! LK - Semaphore Lock and Release Control
+ *  0b0..Semaphore release
+ *  0b1..Semaphore lock
+ */
+#define CAU3_SEMA4_LK(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_SEMA4_LK_SHIFT)) & CAU3_SEMA4_LK_MASK)
+/*! @} */
+
+/*! @name SMOWNR - Semaphore Ownership Register */
+/*! @{ */
+#define CAU3_SMOWNR_LOCK_MASK                    (0x1U)
+#define CAU3_SMOWNR_LOCK_SHIFT                   (0U)
+/*! LOCK - Semaphore Locked
+ *  0b0..Semaphore not locked
+ *  0b1..Semaphore locked
+ */
+#define CAU3_SMOWNR_LOCK(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_SMOWNR_LOCK_SHIFT)) & CAU3_SMOWNR_LOCK_MASK)
+#define CAU3_SMOWNR_NOWNER_MASK                  (0x80000000U)
+#define CAU3_SMOWNR_NOWNER_SHIFT                 (31U)
+/*! NOWNER - Semaphore Ownership
+ *  0b0..The host making the current read access is the semaphore owner
+ *  0b1..The host making the current read access is NOT the semaphore owner
+ */
+#define CAU3_SMOWNR_NOWNER(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_SMOWNR_NOWNER_SHIFT)) & CAU3_SMOWNR_NOWNER_MASK)
+/*! @} */
+
+/*! @name ARR - Address Remap Register */
+/*! @{ */
+#define CAU3_ARR_ARRL_MASK                       (0xFFFFFFFFU)
+#define CAU3_ARR_ARRL_SHIFT                      (0U)
+#define CAU3_ARR_ARRL(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_ARR_ARRL_SHIFT)) & CAU3_ARR_ARRL_MASK)
+/*! @} */
+
+/*! @name CC_R - CryptoCore General Purpose Registers */
+/*! @{ */
+#define CAU3_CC_R_R_MASK                         (0xFFFFFFFFU)
+#define CAU3_CC_R_R_SHIFT                        (0U)
+#define CAU3_CC_R_R(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R_R_SHIFT)) & CAU3_CC_R_R_MASK)
+/*! @} */
+
+/* The count of CAU3_CC_R */
+#define CAU3_CC_R_COUNT                          (30U)
+
+/*! @name CC_R30 - General Purpose R30 */
+/*! @{ */
+#define CAU3_CC_R30_SP_MASK                      (0xFFFFFFFFU)
+#define CAU3_CC_R30_SP_SHIFT                     (0U)
+#define CAU3_CC_R30_SP(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R30_SP_SHIFT)) & CAU3_CC_R30_SP_MASK)
+/*! @} */
+
+/*! @name CC_R31 - General Purpose R31 */
+/*! @{ */
+#define CAU3_CC_R31_LR_MASK                      (0xFFFFFFFFU)
+#define CAU3_CC_R31_LR_SHIFT                     (0U)
+#define CAU3_CC_R31_LR(x)                        (((uint32_t)(((uint32_t)(x)) << CAU3_CC_R31_LR_SHIFT)) & CAU3_CC_R31_LR_MASK)
+/*! @} */
+
+/*! @name CC_PC - Program Counter */
+/*! @{ */
+#define CAU3_CC_PC_PC_MASK                       (0xFFFFFU)
+#define CAU3_CC_PC_PC_SHIFT                      (0U)
+#define CAU3_CC_PC_PC(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_CC_PC_PC_SHIFT)) & CAU3_CC_PC_PC_MASK)
+/*! @} */
+
+/*! @name CC_CMD - Start Command Register */
+/*! @{ */
+#define CAU3_CC_CMD_CMD_MASK                     (0x70000U)
+#define CAU3_CC_CMD_CMD_SHIFT                    (16U)
+/*! CMD - Command
+ *  0b000..Use CR[DTCCFG] for task completion configuration
+ *  0b100..Issue a DMA request
+ *  0b010..Assert Event Completion Signal
+ *  0b001..Issue an interrupt request
+ */
+#define CAU3_CC_CMD_CMD(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CMD_CMD_SHIFT)) & CAU3_CC_CMD_CMD_MASK)
+/*! @} */
+
+/*! @name CC_CF - Condition Flag */
+/*! @{ */
+#define CAU3_CC_CF_C_MASK                        (0x1U)
+#define CAU3_CC_CF_C_SHIFT                       (0U)
+#define CAU3_CC_CF_C(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_C_SHIFT)) & CAU3_CC_CF_C_MASK)
+#define CAU3_CC_CF_V_MASK                        (0x2U)
+#define CAU3_CC_CF_V_SHIFT                       (1U)
+#define CAU3_CC_CF_V(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_V_SHIFT)) & CAU3_CC_CF_V_MASK)
+#define CAU3_CC_CF_Z_MASK                        (0x4U)
+#define CAU3_CC_CF_Z_SHIFT                       (2U)
+#define CAU3_CC_CF_Z(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_Z_SHIFT)) & CAU3_CC_CF_Z_MASK)
+#define CAU3_CC_CF_N_MASK                        (0x8U)
+#define CAU3_CC_CF_N_SHIFT                       (3U)
+#define CAU3_CC_CF_N(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CC_CF_N_SHIFT)) & CAU3_CC_CF_N_MASK)
+/*! @} */
+
+/*! @name MDPK - Mode Register (PublicKey) */
+/*! @{ */
+#define CAU3_MDPK_PKHA_MODE_LS_MASK              (0xFFFU)
+#define CAU3_MDPK_PKHA_MODE_LS_SHIFT             (0U)
+#define CAU3_MDPK_PKHA_MODE_LS(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_PKHA_MODE_LS_SHIFT)) & CAU3_MDPK_PKHA_MODE_LS_MASK)
+#define CAU3_MDPK_PKHA_MODE_MS_MASK              (0xF0000U)
+#define CAU3_MDPK_PKHA_MODE_MS_SHIFT             (16U)
+#define CAU3_MDPK_PKHA_MODE_MS(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_PKHA_MODE_MS_SHIFT)) & CAU3_MDPK_PKHA_MODE_MS_MASK)
+#define CAU3_MDPK_ALG_MASK                       (0xF00000U)
+#define CAU3_MDPK_ALG_SHIFT                      (20U)
+/*! ALG - Algorithm
+ *  0b1000..PKHA
+ */
+#define CAU3_MDPK_ALG(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_MDPK_ALG_SHIFT)) & CAU3_MDPK_ALG_MASK)
+/*! @} */
+
+/*! @name COM - Command Register */
+/*! @{ */
+#define CAU3_COM_ALL_MASK                        (0x1U)
+#define CAU3_COM_ALL_SHIFT                       (0U)
+/*! ALL - Reset All Internal Logic
+ *  0b0..Do Not Reset
+ *  0b1..Reset PKHA engine and registers
+ */
+#define CAU3_COM_ALL(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_COM_ALL_SHIFT)) & CAU3_COM_ALL_MASK)
+#define CAU3_COM_PK_MASK                         (0x40U)
+#define CAU3_COM_PK_SHIFT                        (6U)
+/*! PK - Reset PKHA
+ *  0b0..Do Not Reset
+ *  0b1..Reset Public Key Hardware Accelerator
+ */
+#define CAU3_COM_PK(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_COM_PK_SHIFT)) & CAU3_COM_PK_MASK)
+/*! @} */
+
+/*! @name CTL - Control Register */
+/*! @{ */
+#define CAU3_CTL_IM_MASK                         (0x1U)
+#define CAU3_CTL_IM_SHIFT                        (0U)
+/*! IM - Interrupt Mask
+ *  0b0..Interrupt not masked.
+ *  0b1..Interrupt masked
+ */
+#define CAU3_CTL_IM(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_CTL_IM_SHIFT)) & CAU3_CTL_IM_MASK)
+#define CAU3_CTL_PDE_MASK                        (0x10U)
+#define CAU3_CTL_PDE_SHIFT                       (4U)
+/*! PDE - PKHA Register DMA Enable
+ *  0b0..DMA Request and Done signals disabled for the PKHA Registers.
+ *  0b1..DMA Request and Done signals enabled for the PKHA Registers.
+ */
+#define CAU3_CTL_PDE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CTL_PDE_SHIFT)) & CAU3_CTL_PDE_MASK)
+/*! @} */
+
+/*! @name CW - Clear Written Register */
+/*! @{ */
+#define CAU3_CW_CM_MASK                          (0x1U)
+#define CAU3_CW_CM_SHIFT                         (0U)
+#define CAU3_CW_CM(x)                            (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CM_SHIFT)) & CAU3_CW_CM_MASK)
+#define CAU3_CW_CPKA_MASK                        (0x1000U)
+#define CAU3_CW_CPKA_SHIFT                       (12U)
+#define CAU3_CW_CPKA(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKA_SHIFT)) & CAU3_CW_CPKA_MASK)
+#define CAU3_CW_CPKB_MASK                        (0x2000U)
+#define CAU3_CW_CPKB_SHIFT                       (13U)
+#define CAU3_CW_CPKB(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKB_SHIFT)) & CAU3_CW_CPKB_MASK)
+#define CAU3_CW_CPKN_MASK                        (0x4000U)
+#define CAU3_CW_CPKN_SHIFT                       (14U)
+#define CAU3_CW_CPKN(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKN_SHIFT)) & CAU3_CW_CPKN_MASK)
+#define CAU3_CW_CPKE_MASK                        (0x8000U)
+#define CAU3_CW_CPKE_SHIFT                       (15U)
+#define CAU3_CW_CPKE(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_CW_CPKE_SHIFT)) & CAU3_CW_CPKE_MASK)
+/*! @} */
+
+/*! @name STA - Status Register */
+/*! @{ */
+#define CAU3_STA_PB_MASK                         (0x40U)
+#define CAU3_STA_PB_SHIFT                        (6U)
+/*! PB - PKHA Busy
+ *  0b0..PKHA Idle
+ *  0b1..PKHA Busy.
+ */
+#define CAU3_STA_PB(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PB_SHIFT)) & CAU3_STA_PB_MASK)
+#define CAU3_STA_DI_MASK                         (0x10000U)
+#define CAU3_STA_DI_SHIFT                        (16U)
+#define CAU3_STA_DI(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_DI_SHIFT)) & CAU3_STA_DI_MASK)
+#define CAU3_STA_EI_MASK                         (0x100000U)
+#define CAU3_STA_EI_SHIFT                        (20U)
+/*! EI - Error Interrupt
+ *  0b0..Not Error.
+ *  0b1..Error Interrupt.
+ */
+#define CAU3_STA_EI(x)                           (((uint32_t)(((uint32_t)(x)) << CAU3_STA_EI_SHIFT)) & CAU3_STA_EI_MASK)
+#define CAU3_STA_PKP_MASK                        (0x10000000U)
+#define CAU3_STA_PKP_SHIFT                       (28U)
+#define CAU3_STA_PKP(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKP_SHIFT)) & CAU3_STA_PKP_MASK)
+#define CAU3_STA_PKO_MASK                        (0x20000000U)
+#define CAU3_STA_PKO_SHIFT                       (29U)
+#define CAU3_STA_PKO(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKO_SHIFT)) & CAU3_STA_PKO_MASK)
+#define CAU3_STA_PKZ_MASK                        (0x40000000U)
+#define CAU3_STA_PKZ_SHIFT                       (30U)
+#define CAU3_STA_PKZ(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_STA_PKZ_SHIFT)) & CAU3_STA_PKZ_MASK)
+/*! @} */
+
+/*! @name ESTA - Error Status Register */
+/*! @{ */
+#define CAU3_ESTA_ERRID1_MASK                    (0xFU)
+#define CAU3_ESTA_ERRID1_SHIFT                   (0U)
+/*! ERRID1 - Error ID 1
+ *  0b0001..Mode Error
+ *  0b0010..PKHA N Register Size Error
+ *  0b0011..PKHA E Register Size Error
+ *  0b0100..PKHA A Register Size Error
+ *  0b0101..PKHA B Register Size Error
+ *  0b0110..PKHA C input (as contained in the PKHA B0 quadrant) is Zero
+ *  0b0111..PKHA Divide by Zero Error
+ *  0b1000..PKHA Modulus Even Error
+ *  0b1111..Invalid Crypto Engine Selected
+ */
+#define CAU3_ESTA_ERRID1(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_ESTA_ERRID1_SHIFT)) & CAU3_ESTA_ERRID1_MASK)
+#define CAU3_ESTA_CL1_MASK                       (0xF00U)
+#define CAU3_ESTA_CL1_SHIFT                      (8U)
+/*! CL1 - algorithms
+ *  0b0000..General Error
+ *  0b1000..Public Key
+ */
+#define CAU3_ESTA_CL1(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_ESTA_CL1_SHIFT)) & CAU3_ESTA_CL1_MASK)
+/*! @} */
+
+/*! @name PKASZ - PKHA A Size Register */
+/*! @{ */
+#define CAU3_PKASZ_PKASZ_MASK                    (0x1FFU)
+#define CAU3_PKASZ_PKASZ_SHIFT                   (0U)
+#define CAU3_PKASZ_PKASZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKASZ_PKASZ_SHIFT)) & CAU3_PKASZ_PKASZ_MASK)
+/*! @} */
+
+/*! @name PKBSZ - PKHA B Size Register */
+/*! @{ */
+#define CAU3_PKBSZ_PKBSZ_MASK                    (0x1FFU)
+#define CAU3_PKBSZ_PKBSZ_SHIFT                   (0U)
+#define CAU3_PKBSZ_PKBSZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKBSZ_PKBSZ_SHIFT)) & CAU3_PKBSZ_PKBSZ_MASK)
+/*! @} */
+
+/*! @name PKNSZ - PKHA N Size Register */
+/*! @{ */
+#define CAU3_PKNSZ_PKNSZ_MASK                    (0x1FFU)
+#define CAU3_PKNSZ_PKNSZ_SHIFT                   (0U)
+#define CAU3_PKNSZ_PKNSZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKNSZ_PKNSZ_SHIFT)) & CAU3_PKNSZ_PKNSZ_MASK)
+/*! @} */
+
+/*! @name PKESZ - PKHA E Size Register */
+/*! @{ */
+#define CAU3_PKESZ_PKESZ_MASK                    (0x1FFU)
+#define CAU3_PKESZ_PKESZ_SHIFT                   (0U)
+#define CAU3_PKESZ_PKESZ(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKESZ_PKESZ_SHIFT)) & CAU3_PKESZ_PKESZ_MASK)
+/*! @} */
+
+/*! @name PKHA_VID1 - PKHA Revision ID 1 */
+/*! @{ */
+#define CAU3_PKHA_VID1_MIN_REV_MASK              (0xFFU)
+#define CAU3_PKHA_VID1_MIN_REV_SHIFT             (0U)
+#define CAU3_PKHA_VID1_MIN_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_MIN_REV_SHIFT)) & CAU3_PKHA_VID1_MIN_REV_MASK)
+#define CAU3_PKHA_VID1_MAJ_REV_MASK              (0xFF00U)
+#define CAU3_PKHA_VID1_MAJ_REV_SHIFT             (8U)
+#define CAU3_PKHA_VID1_MAJ_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_MAJ_REV_SHIFT)) & CAU3_PKHA_VID1_MAJ_REV_MASK)
+#define CAU3_PKHA_VID1_IP_ID_MASK                (0xFFFF0000U)
+#define CAU3_PKHA_VID1_IP_ID_SHIFT               (16U)
+#define CAU3_PKHA_VID1_IP_ID(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID1_IP_ID_SHIFT)) & CAU3_PKHA_VID1_IP_ID_MASK)
+/*! @} */
+
+/*! @name PKHA_VID2 - PKHA Revision ID 2 */
+/*! @{ */
+#define CAU3_PKHA_VID2_ECO_REV_MASK              (0xFFU)
+#define CAU3_PKHA_VID2_ECO_REV_SHIFT             (0U)
+#define CAU3_PKHA_VID2_ECO_REV(x)                (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID2_ECO_REV_SHIFT)) & CAU3_PKHA_VID2_ECO_REV_MASK)
+#define CAU3_PKHA_VID2_ARCH_ERA_MASK             (0xFF00U)
+#define CAU3_PKHA_VID2_ARCH_ERA_SHIFT            (8U)
+#define CAU3_PKHA_VID2_ARCH_ERA(x)               (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_VID2_ARCH_ERA_SHIFT)) & CAU3_PKHA_VID2_ARCH_ERA_MASK)
+/*! @} */
+
+/*! @name CHA_VID - CHA Revision ID */
+/*! @{ */
+#define CAU3_CHA_VID_PKHAREV_MASK                (0xF0000U)
+#define CAU3_CHA_VID_PKHAREV_SHIFT               (16U)
+#define CAU3_CHA_VID_PKHAREV(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_CHA_VID_PKHAREV_SHIFT)) & CAU3_CHA_VID_PKHAREV_MASK)
+#define CAU3_CHA_VID_PKHAVID_MASK                (0xF00000U)
+#define CAU3_CHA_VID_PKHAVID_SHIFT               (20U)
+#define CAU3_CHA_VID_PKHAVID(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_CHA_VID_PKHAVID_SHIFT)) & CAU3_CHA_VID_PKHAVID_MASK)
+/*! @} */
+
+/*! @name PKHA_CCR - PKHA Clock Control Register */
+/*! @{ */
+#define CAU3_PKHA_CCR_CKTHRT_MASK                (0x7U)
+#define CAU3_PKHA_CCR_CKTHRT_SHIFT               (0U)
+/*! CKTHRT - Clock Throttle selection
+ *  0b000..PKHA clock division rate is 8/8 - full speed
+ *  0b001..PKHA clock division rate is 1/8
+ *  0b010..PKHA clock division rate is 2/8
+ *  0b011..PKHA clock division rate is 3/8
+ *  0b100..PKHA clock division rate is 4/8
+ *  0b101..PKHA clock division rate is 5/8
+ *  0b110..PKHA clock division rate is 6/8
+ *  0b111..PKHA clock division rate is 7/8
+ */
+#define CAU3_PKHA_CCR_CKTHRT(x)                  (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_CKTHRT_SHIFT)) & CAU3_PKHA_CCR_CKTHRT_MASK)
+#define CAU3_PKHA_CCR_LK_MASK                    (0x1000000U)
+#define CAU3_PKHA_CCR_LK_SHIFT                   (24U)
+/*! LK - Register Lock
+ *  0b0..Register is unlocked
+ *  0b1..Register is locked
+ */
+#define CAU3_PKHA_CCR_LK(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_LK_SHIFT)) & CAU3_PKHA_CCR_LK_MASK)
+#define CAU3_PKHA_CCR_ELFR_MASK                  (0x20000000U)
+#define CAU3_PKHA_CCR_ELFR_SHIFT                 (29U)
+/*! ELFR - Enable Linear Feedback Shift Register
+ *  0b0..LFSR is only enabled if ECT = 1 and ECJ = 1
+ *  0b1..LFSR is enabled independently of ECT and ECJ
+ */
+#define CAU3_PKHA_CCR_ELFR(x)                    (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ELFR_SHIFT)) & CAU3_PKHA_CCR_ELFR_MASK)
+#define CAU3_PKHA_CCR_ECJ_MASK                   (0x40000000U)
+#define CAU3_PKHA_CCR_ECJ_SHIFT                  (30U)
+/*! ECJ - Enable Clock Jitter
+ *  0b0..Clock Jitter is disabled
+ *  0b1..Clock jitter is enabled
+ */
+#define CAU3_PKHA_CCR_ECJ(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ECJ_SHIFT)) & CAU3_PKHA_CCR_ECJ_MASK)
+#define CAU3_PKHA_CCR_ECT_MASK                   (0x80000000U)
+#define CAU3_PKHA_CCR_ECT_SHIFT                  (31U)
+/*! ECT - Enable Clock Throttle
+ *  0b0..PKHA clock throttle disabled meaning that PKHA is operatiing at full speed
+ *  0b1..PKHA clock throttle enabled
+ */
+#define CAU3_PKHA_CCR_ECT(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKHA_CCR_ECT_SHIFT)) & CAU3_PKHA_CCR_ECT_MASK)
+/*! @} */
+
+/*! @name GSR - Global Status Register */
+/*! @{ */
+#define CAU3_GSR_CDI_MASK                        (0x400U)
+#define CAU3_GSR_CDI_SHIFT                       (10U)
+/*! CDI - CAU3 Done Interrupt occurred
+ *  0b0..CAU3 Done Interrupt did not occur
+ *  0b1..CAU3 Done Interrupt occurred
+ */
+#define CAU3_GSR_CDI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_CDI_SHIFT)) & CAU3_GSR_CDI_MASK)
+#define CAU3_GSR_CEI_MASK                        (0x4000U)
+#define CAU3_GSR_CEI_SHIFT                       (14U)
+/*! CEI - CAU3 Error Interrupt
+ *  0b0..CAU3 Error Interrupt did not occur
+ *  0b1..CAU3 Error Interrupt occurred
+ */
+#define CAU3_GSR_CEI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_CEI_SHIFT)) & CAU3_GSR_CEI_MASK)
+#define CAU3_GSR_PEI_MASK                        (0x8000U)
+#define CAU3_GSR_PEI_SHIFT                       (15U)
+/*! PEI - PKHA Done or Error Interrupt
+ *  0b0..PKHA interrupt did not occur
+ *  0b1..PKHA interrupt had occurred
+ */
+#define CAU3_GSR_PEI(x)                          (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_PEI_SHIFT)) & CAU3_GSR_PEI_MASK)
+#define CAU3_GSR_PBSY_MASK                       (0x80000000U)
+#define CAU3_GSR_PBSY_SHIFT                      (31U)
+/*! PBSY - PKHA Busy
+ *  0b0..PKHA not busy
+ *  0b1..PKHA busy
+ */
+#define CAU3_GSR_PBSY(x)                         (((uint32_t)(((uint32_t)(x)) << CAU3_GSR_PBSY_SHIFT)) & CAU3_GSR_PBSY_MASK)
+/*! @} */
+
+/*! @name CKLFSR - Clock Linear Feedback Shift Register */
+/*! @{ */
+#define CAU3_CKLFSR_LFSR_MASK                    (0xFFFFFFFFU)
+#define CAU3_CKLFSR_LFSR_SHIFT                   (0U)
+#define CAU3_CKLFSR_LFSR(x)                      (((uint32_t)(((uint32_t)(x)) << CAU3_CKLFSR_LFSR_SHIFT)) & CAU3_CKLFSR_LFSR_MASK)
+/*! @} */
+
+/*! @name PKA0 - PKHA A0 Register */
+/*! @{ */
+#define CAU3_PKA0_PKHA_A0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA0_PKHA_A0_SHIFT                  (0U)
+#define CAU3_PKA0_PKHA_A0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA0_PKHA_A0_SHIFT)) & CAU3_PKA0_PKHA_A0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA0 */
+#define CAU3_PKA0_COUNT                          (32U)
+
+/*! @name PKA1 - PKHA A1 Register */
+/*! @{ */
+#define CAU3_PKA1_PKHA_A1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA1_PKHA_A1_SHIFT                  (0U)
+#define CAU3_PKA1_PKHA_A1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA1_PKHA_A1_SHIFT)) & CAU3_PKA1_PKHA_A1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA1 */
+#define CAU3_PKA1_COUNT                          (32U)
+
+/*! @name PKA2 - PKHA A2 Register */
+/*! @{ */
+#define CAU3_PKA2_PKHA_A2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA2_PKHA_A2_SHIFT                  (0U)
+#define CAU3_PKA2_PKHA_A2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA2_PKHA_A2_SHIFT)) & CAU3_PKA2_PKHA_A2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA2 */
+#define CAU3_PKA2_COUNT                          (32U)
+
+/*! @name PKA3 - PKHA A3 Register */
+/*! @{ */
+#define CAU3_PKA3_PKHA_A3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKA3_PKHA_A3_SHIFT                  (0U)
+#define CAU3_PKA3_PKHA_A3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKA3_PKHA_A3_SHIFT)) & CAU3_PKA3_PKHA_A3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKA3 */
+#define CAU3_PKA3_COUNT                          (32U)
+
+/*! @name PKB0 - PKHA B0 Register */
+/*! @{ */
+#define CAU3_PKB0_PKHA_B0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB0_PKHA_B0_SHIFT                  (0U)
+#define CAU3_PKB0_PKHA_B0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB0_PKHA_B0_SHIFT)) & CAU3_PKB0_PKHA_B0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB0 */
+#define CAU3_PKB0_COUNT                          (32U)
+
+/*! @name PKB1 - PKHA B1 Register */
+/*! @{ */
+#define CAU3_PKB1_PKHA_B1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB1_PKHA_B1_SHIFT                  (0U)
+#define CAU3_PKB1_PKHA_B1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB1_PKHA_B1_SHIFT)) & CAU3_PKB1_PKHA_B1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB1 */
+#define CAU3_PKB1_COUNT                          (32U)
+
+/*! @name PKB2 - PKHA B2 Register */
+/*! @{ */
+#define CAU3_PKB2_PKHA_B2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB2_PKHA_B2_SHIFT                  (0U)
+#define CAU3_PKB2_PKHA_B2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB2_PKHA_B2_SHIFT)) & CAU3_PKB2_PKHA_B2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB2 */
+#define CAU3_PKB2_COUNT                          (32U)
+
+/*! @name PKB3 - PKHA B3 Register */
+/*! @{ */
+#define CAU3_PKB3_PKHA_B3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKB3_PKHA_B3_SHIFT                  (0U)
+#define CAU3_PKB3_PKHA_B3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKB3_PKHA_B3_SHIFT)) & CAU3_PKB3_PKHA_B3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKB3 */
+#define CAU3_PKB3_COUNT                          (32U)
+
+/*! @name PKN0 - PKHA N0 Register */
+/*! @{ */
+#define CAU3_PKN0_PKHA_N0_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN0_PKHA_N0_SHIFT                  (0U)
+#define CAU3_PKN0_PKHA_N0(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN0_PKHA_N0_SHIFT)) & CAU3_PKN0_PKHA_N0_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN0 */
+#define CAU3_PKN0_COUNT                          (32U)
+
+/*! @name PKN1 - PKHA N1 Register */
+/*! @{ */
+#define CAU3_PKN1_PKHA_N1_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN1_PKHA_N1_SHIFT                  (0U)
+#define CAU3_PKN1_PKHA_N1(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN1_PKHA_N1_SHIFT)) & CAU3_PKN1_PKHA_N1_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN1 */
+#define CAU3_PKN1_COUNT                          (32U)
+
+/*! @name PKN2 - PKHA N2 Register */
+/*! @{ */
+#define CAU3_PKN2_PKHA_N2_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN2_PKHA_N2_SHIFT                  (0U)
+#define CAU3_PKN2_PKHA_N2(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN2_PKHA_N2_SHIFT)) & CAU3_PKN2_PKHA_N2_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN2 */
+#define CAU3_PKN2_COUNT                          (32U)
+
+/*! @name PKN3 - PKHA N3 Register */
+/*! @{ */
+#define CAU3_PKN3_PKHA_N3_MASK                   (0xFFFFFFFFU)
+#define CAU3_PKN3_PKHA_N3_SHIFT                  (0U)
+#define CAU3_PKN3_PKHA_N3(x)                     (((uint32_t)(((uint32_t)(x)) << CAU3_PKN3_PKHA_N3_SHIFT)) & CAU3_PKN3_PKHA_N3_MASK)
+/*! @} */
+
+/* The count of CAU3_PKN3 */
+#define CAU3_PKN3_COUNT                          (32U)
+
+/*! @name PKE - PKHA E Register */
+/*! @{ */
+#define CAU3_PKE_PKHA_E_MASK                     (0xFFFFFFFFU)
+#define CAU3_PKE_PKHA_E_SHIFT                    (0U)
+#define CAU3_PKE_PKHA_E(x)                       (((uint32_t)(((uint32_t)(x)) << CAU3_PKE_PKHA_E_SHIFT)) & CAU3_PKE_PKHA_E_MASK)
+/*! @} */
+
+/* The count of CAU3_PKE */
+#define CAU3_PKE_COUNT                           (128U)
+
+
+/*!
+ * @}
+ */ /* end of group CAU3_Register_Masks */
+
+
+/* CAU3 - Peripheral instance base addresses */
+/** Peripheral CAU3 base address */
+#define CAU3_BASE                                (0x41028000u)
+/** Peripheral CAU3 base pointer */
+#define CAU3                                     ((CAU3_Type *)CAU3_BASE)
+/** Array initializer of CAU3 peripheral base addresses */
+#define CAU3_BASE_ADDRS                          { CAU3_BASE }
+/** Array initializer of CAU3 peripheral base pointers */
+#define CAU3_BASE_PTRS                           { CAU3 }
+/** Interrupt vectors for the CAU3 peripheral type */
+#define CAU3_TASK_COMPLETE_IRQS                  { CAU3_Task_Complete_IRQn }
+#define CAU3_SECURITY_VIOLATION_IRQS             { CAU3_Security_Violation_IRQn }
+
+/*!
+ * @}
+ */ /* end of group CAU3_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- CRC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CRC_Peripheral_Access_Layer CRC Peripheral Access Layer
+ * @{
+ */
+
+/** CRC - Register Layout Typedef */
+typedef struct {
+  union {                                          /* offset: 0x0 */
+    __IO uint32_t DATA;                              /**< CRC Data register, offset: 0x0 */
+    struct {                                         /* offset: 0x0 */
+      __IO uint8_t DATALL;                             /**< CRC_DATALL register, offset: 0x0 */
+      __IO uint8_t DATALU;                             /**< CRC_DATALU register, offset: 0x1 */
+      __IO uint8_t DATAHL;                             /**< CRC_DATAHL register, offset: 0x2 */
+      __IO uint8_t DATAHU;                             /**< CRC_DATAHU register, offset: 0x3 */
+    } ACCESS8BIT;
+    struct {                                         /* offset: 0x0 */
+      __IO uint16_t DATAL;                             /**< CRC_DATAL register, offset: 0x0 */
+      __IO uint16_t DATAH;                             /**< CRC_DATAH register, offset: 0x2 */
+    } ACCESS16BIT;
+  };
+  union {                                          /* offset: 0x4 */
+    __IO uint32_t GPOLY;                             /**< CRC Polynomial register, offset: 0x4 */
+    struct {                                         /* offset: 0x4 */
+      __IO uint8_t GPOLYLL;                            /**< CRC_GPOLYLL register, offset: 0x4 */
+      __IO uint8_t GPOLYLU;                            /**< CRC_GPOLYLU register, offset: 0x5 */
+      __IO uint8_t GPOLYHL;                            /**< CRC_GPOLYHL register, offset: 0x6 */
+      __IO uint8_t GPOLYHU;                            /**< CRC_GPOLYHU register, offset: 0x7 */
+    } GPOLY_ACCESS8BIT;
+    struct {                                         /* offset: 0x4 */
+      __IO uint16_t GPOLYL;                            /**< CRC_GPOLYL register, offset: 0x4 */
+      __IO uint16_t GPOLYH;                            /**< CRC_GPOLYH register, offset: 0x6 */
+    } GPOLY_ACCESS16BIT;
+  };
+  union {                                          /* offset: 0x8 */
+    __IO uint32_t CTRL;                              /**< CRC Control register, offset: 0x8 */
+    struct {                                         /* offset: 0x8 */
+           uint8_t RESERVED_0[3];
+      __IO uint8_t CTRLHU;                             /**< CRC_CTRLHU register, offset: 0xB */
+    } CTRL_ACCESS8BIT;
+  };
+} CRC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- CRC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup CRC_Register_Masks CRC Register Masks
+ * @{
+ */
+
+/*! @name DATA - CRC Data register */
+/*! @{ */
+#define CRC_DATA_LL_MASK                         (0xFFU)
+#define CRC_DATA_LL_SHIFT                        (0U)
+#define CRC_DATA_LL(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LL_SHIFT)) & CRC_DATA_LL_MASK)
+#define CRC_DATA_LU_MASK                         (0xFF00U)
+#define CRC_DATA_LU_SHIFT                        (8U)
+#define CRC_DATA_LU(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_LU_SHIFT)) & CRC_DATA_LU_MASK)
+#define CRC_DATA_HL_MASK                         (0xFF0000U)
+#define CRC_DATA_HL_SHIFT                        (16U)
+#define CRC_DATA_HL(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HL_SHIFT)) & CRC_DATA_HL_MASK)
+#define CRC_DATA_HU_MASK                         (0xFF000000U)
+#define CRC_DATA_HU_SHIFT                        (24U)
+#define CRC_DATA_HU(x)                           (((uint32_t)(((uint32_t)(x)) << CRC_DATA_HU_SHIFT)) & CRC_DATA_HU_MASK)
+/*! @} */
+
+/*! @name DATALL - CRC_DATALL register */
+/*! @{ */
+#define CRC_DATALL_DATALL_MASK                   (0xFFU)
+#define CRC_DATALL_DATALL_SHIFT                  (0U)
+#define CRC_DATALL_DATALL(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATALL_DATALL_SHIFT)) & CRC_DATALL_DATALL_MASK)
+/*! @} */
+
+/*! @name DATALU - CRC_DATALU register */
+/*! @{ */
+#define CRC_DATALU_DATALU_MASK                   (0xFFU)
+#define CRC_DATALU_DATALU_SHIFT                  (0U)
+#define CRC_DATALU_DATALU(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATALU_DATALU_SHIFT)) & CRC_DATALU_DATALU_MASK)
+/*! @} */
+
+/*! @name DATAHL - CRC_DATAHL register */
+/*! @{ */
+#define CRC_DATAHL_DATAHL_MASK                   (0xFFU)
+#define CRC_DATAHL_DATAHL_SHIFT                  (0U)
+#define CRC_DATAHL_DATAHL(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATAHL_DATAHL_SHIFT)) & CRC_DATAHL_DATAHL_MASK)
+/*! @} */
+
+/*! @name DATAHU - CRC_DATAHU register */
+/*! @{ */
+#define CRC_DATAHU_DATAHU_MASK                   (0xFFU)
+#define CRC_DATAHU_DATAHU_SHIFT                  (0U)
+#define CRC_DATAHU_DATAHU(x)                     (((uint8_t)(((uint8_t)(x)) << CRC_DATAHU_DATAHU_SHIFT)) & CRC_DATAHU_DATAHU_MASK)
+/*! @} */
+
+/*! @name DATAL - CRC_DATAL register */
+/*! @{ */
+#define CRC_DATAL_DATAL_MASK                     (0xFFFFU)
+#define CRC_DATAL_DATAL_SHIFT                    (0U)
+#define CRC_DATAL_DATAL(x)                       (((uint16_t)(((uint16_t)(x)) << CRC_DATAL_DATAL_SHIFT)) & CRC_DATAL_DATAL_MASK)
+/*! @} */
+
+/*! @name DATAH - CRC_DATAH register */
+/*! @{ */
+#define CRC_DATAH_DATAH_MASK                     (0xFFFFU)
+#define CRC_DATAH_DATAH_SHIFT                    (0U)
+#define CRC_DATAH_DATAH(x)                       (((uint16_t)(((uint16_t)(x)) << CRC_DATAH_DATAH_SHIFT)) & CRC_DATAH_DATAH_MASK)
+/*! @} */
+
+/*! @name GPOLY - CRC Polynomial register */
+/*! @{ */
+#define CRC_GPOLY_LOW_MASK                       (0xFFFFU)
+#define CRC_GPOLY_LOW_SHIFT                      (0U)
+#define CRC_GPOLY_LOW(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_LOW_SHIFT)) & CRC_GPOLY_LOW_MASK)
+#define CRC_GPOLY_HIGH_MASK                      (0xFFFF0000U)
+#define CRC_GPOLY_HIGH_SHIFT                     (16U)
+#define CRC_GPOLY_HIGH(x)                        (((uint32_t)(((uint32_t)(x)) << CRC_GPOLY_HIGH_SHIFT)) & CRC_GPOLY_HIGH_MASK)
+/*! @} */
+
+/*! @name GPOLYLL - CRC_GPOLYLL register */
+/*! @{ */
+#define CRC_GPOLYLL_GPOLYLL_MASK                 (0xFFU)
+#define CRC_GPOLYLL_GPOLYLL_SHIFT                (0U)
+#define CRC_GPOLYLL_GPOLYLL(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLL_GPOLYLL_SHIFT)) & CRC_GPOLYLL_GPOLYLL_MASK)
+/*! @} */
+
+/*! @name GPOLYLU - CRC_GPOLYLU register */
+/*! @{ */
+#define CRC_GPOLYLU_GPOLYLU_MASK                 (0xFFU)
+#define CRC_GPOLYLU_GPOLYLU_SHIFT                (0U)
+#define CRC_GPOLYLU_GPOLYLU(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYLU_GPOLYLU_SHIFT)) & CRC_GPOLYLU_GPOLYLU_MASK)
+/*! @} */
+
+/*! @name GPOLYHL - CRC_GPOLYHL register */
+/*! @{ */
+#define CRC_GPOLYHL_GPOLYHL_MASK                 (0xFFU)
+#define CRC_GPOLYHL_GPOLYHL_SHIFT                (0U)
+#define CRC_GPOLYHL_GPOLYHL(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHL_GPOLYHL_SHIFT)) & CRC_GPOLYHL_GPOLYHL_MASK)
+/*! @} */
+
+/*! @name GPOLYHU - CRC_GPOLYHU register */
+/*! @{ */
+#define CRC_GPOLYHU_GPOLYHU_MASK                 (0xFFU)
+#define CRC_GPOLYHU_GPOLYHU_SHIFT                (0U)
+#define CRC_GPOLYHU_GPOLYHU(x)                   (((uint8_t)(((uint8_t)(x)) << CRC_GPOLYHU_GPOLYHU_SHIFT)) & CRC_GPOLYHU_GPOLYHU_MASK)
+/*! @} */
+
+/*! @name GPOLYL - CRC_GPOLYL register */
+/*! @{ */
+#define CRC_GPOLYL_GPOLYL_MASK                   (0xFFFFU)
+#define CRC_GPOLYL_GPOLYL_SHIFT                  (0U)
+#define CRC_GPOLYL_GPOLYL(x)                     (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYL_GPOLYL_SHIFT)) & CRC_GPOLYL_GPOLYL_MASK)
+/*! @} */
+
+/*! @name GPOLYH - CRC_GPOLYH register */
+/*! @{ */
+#define CRC_GPOLYH_GPOLYH_MASK                   (0xFFFFU)
+#define CRC_GPOLYH_GPOLYH_SHIFT                  (0U)
+#define CRC_GPOLYH_GPOLYH(x)                     (((uint16_t)(((uint16_t)(x)) << CRC_GPOLYH_GPOLYH_SHIFT)) & CRC_GPOLYH_GPOLYH_MASK)
+/*! @} */
+
+/*! @name CTRL - CRC Control register */
+/*! @{ */
+#define CRC_CTRL_TCRC_MASK                       (0x1000000U)
+#define CRC_CTRL_TCRC_SHIFT                      (24U)
+/*! TCRC - TCRC
+ *  0b0..16-bit CRC protocol.
+ *  0b1..32-bit CRC protocol.
+ */
+#define CRC_CTRL_TCRC(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TCRC_SHIFT)) & CRC_CTRL_TCRC_MASK)
+#define CRC_CTRL_WAS_MASK                        (0x2000000U)
+#define CRC_CTRL_WAS_SHIFT                       (25U)
+/*! WAS - Write CRC Data Register As Seed
+ *  0b0..Writes to the CRC data register are data values.
+ *  0b1..Writes to the CRC data register are seed values.
+ */
+#define CRC_CTRL_WAS(x)                          (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_WAS_SHIFT)) & CRC_CTRL_WAS_MASK)
+#define CRC_CTRL_FXOR_MASK                       (0x4000000U)
+#define CRC_CTRL_FXOR_SHIFT                      (26U)
+/*! FXOR - Complement Read Of CRC Data Register
+ *  0b0..No XOR on reading.
+ *  0b1..Invert or complement the read value of the CRC Data register.
+ */
+#define CRC_CTRL_FXOR(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_FXOR_SHIFT)) & CRC_CTRL_FXOR_MASK)
+#define CRC_CTRL_TOTR_MASK                       (0x30000000U)
+#define CRC_CTRL_TOTR_SHIFT                      (28U)
+/*! TOTR - Type Of Transpose For Read
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRL_TOTR(x)                         (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOTR_SHIFT)) & CRC_CTRL_TOTR_MASK)
+#define CRC_CTRL_TOT_MASK                        (0xC0000000U)
+#define CRC_CTRL_TOT_SHIFT                       (30U)
+/*! TOT - Type Of Transpose For Writes
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRL_TOT(x)                          (((uint32_t)(((uint32_t)(x)) << CRC_CTRL_TOT_SHIFT)) & CRC_CTRL_TOT_MASK)
+/*! @} */
+
+/*! @name CTRLHU - CRC_CTRLHU register */
+/*! @{ */
+#define CRC_CTRLHU_TCRC_MASK                     (0x1U)
+#define CRC_CTRLHU_TCRC_SHIFT                    (0U)
+/*! TCRC
+ *  0b0..16-bit CRC protocol.
+ *  0b1..32-bit CRC protocol.
+ */
+#define CRC_CTRLHU_TCRC(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TCRC_SHIFT)) & CRC_CTRLHU_TCRC_MASK)
+#define CRC_CTRLHU_WAS_MASK                      (0x2U)
+#define CRC_CTRLHU_WAS_SHIFT                     (1U)
+/*! WAS
+ *  0b0..Writes to the CRC data register are data values.
+ *  0b1..Writes to the CRC data register are seed values.
+ */
+#define CRC_CTRLHU_WAS(x)                        (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_WAS_SHIFT)) & CRC_CTRLHU_WAS_MASK)
+#define CRC_CTRLHU_FXOR_MASK                     (0x4U)
+#define CRC_CTRLHU_FXOR_SHIFT                    (2U)
+/*! FXOR
+ *  0b0..No XOR on reading.
+ *  0b1..Invert or complement the read value of the CRC Data register.
+ */
+#define CRC_CTRLHU_FXOR(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_FXOR_SHIFT)) & CRC_CTRLHU_FXOR_MASK)
+#define CRC_CTRLHU_TOTR_MASK                     (0x30U)
+#define CRC_CTRLHU_TOTR_SHIFT                    (4U)
+/*! TOTR
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRLHU_TOTR(x)                       (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOTR_SHIFT)) & CRC_CTRLHU_TOTR_MASK)
+#define CRC_CTRLHU_TOT_MASK                      (0xC0U)
+#define CRC_CTRLHU_TOT_SHIFT                     (6U)
+/*! TOT
+ *  0b00..No transposition.
+ *  0b01..Bits in bytes are transposed; bytes are not transposed.
+ *  0b10..Both bits in bytes and bytes are transposed.
+ *  0b11..Only bytes are transposed; no bits in a byte are transposed.
+ */
+#define CRC_CTRLHU_TOT(x)                        (((uint8_t)(((uint8_t)(x)) << CRC_CTRLHU_TOT_SHIFT)) & CRC_CTRLHU_TOT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group CRC_Register_Masks */
+
+
+/* CRC - Peripheral instance base addresses */
+/** Peripheral CRC base address */
+#define CRC_BASE                                 (0x4002F000u)
+/** Peripheral CRC base pointer */
+#define CRC0                                     ((CRC_Type *)CRC_BASE)
+/** Array initializer of CRC peripheral base addresses */
+#define CRC_BASE_ADDRS                           { CRC_BASE }
+/** Array initializer of CRC peripheral base pointers */
+#define CRC_BASE_PTRS                            { CRC0 }
+
+/*!
+ * @}
+ */ /* end of group CRC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- DMA Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMA_Peripheral_Access_Layer DMA Peripheral Access Layer
+ * @{
+ */
+
+/** DMA - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x0 */
+  __I  uint32_t ES;                                /**< Error Status Register, offset: 0x4 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t ERQ;                               /**< Enable Request Register, offset: 0xC */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t EEI;                               /**< Enable Error Interrupt Register, offset: 0x14 */
+  __O  uint8_t CEEI;                               /**< Clear Enable Error Interrupt Register, offset: 0x18 */
+  __O  uint8_t SEEI;                               /**< Set Enable Error Interrupt Register, offset: 0x19 */
+  __O  uint8_t CERQ;                               /**< Clear Enable Request Register, offset: 0x1A */
+  __O  uint8_t SERQ;                               /**< Set Enable Request Register, offset: 0x1B */
+  __O  uint8_t CDNE;                               /**< Clear DONE Status Bit Register, offset: 0x1C */
+  __O  uint8_t SSRT;                               /**< Set START Bit Register, offset: 0x1D */
+  __O  uint8_t CERR;                               /**< Clear Error Register, offset: 0x1E */
+  __O  uint8_t CINT;                               /**< Clear Interrupt Request Register, offset: 0x1F */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t INT;                               /**< Interrupt Request Register, offset: 0x24 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t ERR;                               /**< Error Register, offset: 0x2C */
+       uint8_t RESERVED_4[4];
+  __I  uint32_t HRS;                               /**< Hardware Request Status Register, offset: 0x34 */
+       uint8_t RESERVED_5[12];
+  __IO uint32_t EARS;                              /**< Enable Asynchronous Request in Stop Register, offset: 0x44 */
+       uint8_t RESERVED_6[184];
+  __IO uint8_t DCHPRI3;                            /**< Channel Priority Register, offset: 0x100 */
+  __IO uint8_t DCHPRI2;                            /**< Channel Priority Register, offset: 0x101 */
+  __IO uint8_t DCHPRI1;                            /**< Channel Priority Register, offset: 0x102 */
+  __IO uint8_t DCHPRI0;                            /**< Channel Priority Register, offset: 0x103 */
+  __IO uint8_t DCHPRI7;                            /**< Channel Priority Register, offset: 0x104 */
+  __IO uint8_t DCHPRI6;                            /**< Channel Priority Register, offset: 0x105 */
+  __IO uint8_t DCHPRI5;                            /**< Channel Priority Register, offset: 0x106 */
+  __IO uint8_t DCHPRI4;                            /**< Channel Priority Register, offset: 0x107 */
+       uint8_t RESERVED_7[3832];
+  struct {                                         /* offset: 0x1000, array step: 0x20 */
+    __IO uint32_t SADDR;                             /**< TCD Source Address, array offset: 0x1000, array step: 0x20 */
+    __IO uint16_t SOFF;                              /**< TCD Signed Source Address Offset, array offset: 0x1004, array step: 0x20 */
+    __IO uint16_t ATTR;                              /**< TCD Transfer Attributes, array offset: 0x1006, array step: 0x20 */
+    union {                                          /* offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLNO;                       /**< TCD Minor Byte Count (Minor Loop Mapping Disabled), array offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLOFFNO;                    /**< TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled), array offset: 0x1008, array step: 0x20 */
+      __IO uint32_t NBYTES_MLOFFYES;                   /**< TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled), array offset: 0x1008, array step: 0x20 */
+    };
+    __IO uint32_t SLAST;                             /**< TCD Last Source Address Adjustment, array offset: 0x100C, array step: 0x20 */
+    __IO uint32_t DADDR;                             /**< TCD Destination Address, array offset: 0x1010, array step: 0x20 */
+    __IO uint16_t DOFF;                              /**< TCD Signed Destination Address Offset, array offset: 0x1014, array step: 0x20 */
+    union {                                          /* offset: 0x1016, array step: 0x20 */
+      __IO uint16_t CITER_ELINKNO;                     /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x1016, array step: 0x20 */
+      __IO uint16_t CITER_ELINKYES;                    /**< TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x1016, array step: 0x20 */
+    };
+    __IO uint32_t DLAST_SGA;                         /**< TCD Last Destination Address Adjustment/Scatter Gather Address, array offset: 0x1018, array step: 0x20 */
+    __IO uint16_t CSR;                               /**< TCD Control and Status, array offset: 0x101C, array step: 0x20 */
+    union {                                          /* offset: 0x101E, array step: 0x20 */
+      __IO uint16_t BITER_ELINKNO;                     /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled), array offset: 0x101E, array step: 0x20 */
+      __IO uint16_t BITER_ELINKYES;                    /**< TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled), array offset: 0x101E, array step: 0x20 */
+    };
+  } TCD[8];
+} DMA_Type;
+
+/* ----------------------------------------------------------------------------
+   -- DMA Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMA_Register_Masks DMA Register Masks
+ * @{
+ */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define DMA_CR_EDBG_MASK                         (0x2U)
+#define DMA_CR_EDBG_SHIFT                        (1U)
+/*! EDBG - Enable Debug
+ *  0b0..When in debug mode, the DMA continues to operate.
+ *  0b1..When in debug mode, the DMA stalls the start of a new channel. Executing channels are allowed to complete. Channel execution resumes when the system exits debug mode or the EDBG bit is cleared.
+ */
+#define DMA_CR_EDBG(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_EDBG_SHIFT)) & DMA_CR_EDBG_MASK)
+#define DMA_CR_ERCA_MASK                         (0x4U)
+#define DMA_CR_ERCA_SHIFT                        (2U)
+/*! ERCA - Enable Round Robin Channel Arbitration
+ *  0b0..Fixed priority arbitration is used for channel selection .
+ *  0b1..Round robin arbitration is used for channel selection .
+ */
+#define DMA_CR_ERCA(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_ERCA_SHIFT)) & DMA_CR_ERCA_MASK)
+#define DMA_CR_HOE_MASK                          (0x10U)
+#define DMA_CR_HOE_SHIFT                         (4U)
+/*! HOE - Halt On Error
+ *  0b0..Normal operation
+ *  0b1..Any error causes the HALT bit to set. Subsequently, all service requests are ignored until the HALT bit is cleared.
+ */
+#define DMA_CR_HOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_HOE_SHIFT)) & DMA_CR_HOE_MASK)
+#define DMA_CR_HALT_MASK                         (0x20U)
+#define DMA_CR_HALT_SHIFT                        (5U)
+/*! HALT - Halt DMA Operations
+ *  0b0..Normal operation
+ *  0b1..Stall the start of any new channels. Executing channels are allowed to complete. Channel execution resumes when this bit is cleared.
+ */
+#define DMA_CR_HALT(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_HALT_SHIFT)) & DMA_CR_HALT_MASK)
+#define DMA_CR_CLM_MASK                          (0x40U)
+#define DMA_CR_CLM_SHIFT                         (6U)
+/*! CLM - Continuous Link Mode
+ *  0b0..A minor loop channel link made to itself goes through channel arbitration before being activated again.
+ *  0b1..A minor loop channel link made to itself does not go through channel arbitration before being activated again. Upon minor loop completion, the channel activates again if that channel has a minor loop channel link enabled and the link channel is itself. This effectively applies the minor loop offsets and restarts the next minor loop.
+ */
+#define DMA_CR_CLM(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_CLM_SHIFT)) & DMA_CR_CLM_MASK)
+#define DMA_CR_EMLM_MASK                         (0x80U)
+#define DMA_CR_EMLM_SHIFT                        (7U)
+/*! EMLM - Enable Minor Loop Mapping
+ *  0b0..Disabled. TCDn.word2 is defined as a 32-bit NBYTES field.
+ *  0b1..Enabled. TCDn.word2 is redefined to include individual enable fields, an offset field, and the NBYTES field. The individual enable fields allow the minor loop offset to be applied to the source address, the destination address, or both. The NBYTES field is reduced when either offset is enabled.
+ */
+#define DMA_CR_EMLM(x)                           (((uint32_t)(((uint32_t)(x)) << DMA_CR_EMLM_SHIFT)) & DMA_CR_EMLM_MASK)
+#define DMA_CR_ECX_MASK                          (0x10000U)
+#define DMA_CR_ECX_SHIFT                         (16U)
+/*! ECX - Error Cancel Transfer
+ *  0b0..Normal operation
+ *  0b1..Cancel the remaining data transfer in the same fashion as the CX bit. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The ECX bit clears itself after the cancel is honored. In addition to cancelling the transfer, ECX treats the cancel as an error condition, thus updating the Error Status register (DMAx_ES) and generating an optional error interrupt.
+ */
+#define DMA_CR_ECX(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_CR_ECX_SHIFT)) & DMA_CR_ECX_MASK)
+#define DMA_CR_CX_MASK                           (0x20000U)
+#define DMA_CR_CX_SHIFT                          (17U)
+/*! CX - Cancel Transfer
+ *  0b0..Normal operation
+ *  0b1..Cancel the remaining data transfer. Stop the executing channel and force the minor loop to finish. The cancel takes effect after the last write of the current read/write sequence. The CX bit clears itself after the cancel has been honored. This cancel retires the channel normally as if the minor loop was completed.
+ */
+#define DMA_CR_CX(x)                             (((uint32_t)(((uint32_t)(x)) << DMA_CR_CX_SHIFT)) & DMA_CR_CX_MASK)
+#define DMA_CR_ACTIVE_MASK                       (0x80000000U)
+#define DMA_CR_ACTIVE_SHIFT                      (31U)
+/*! ACTIVE - DMA Active Status
+ *  0b0..eDMA is idle.
+ *  0b1..eDMA is executing a channel.
+ */
+#define DMA_CR_ACTIVE(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_CR_ACTIVE_SHIFT)) & DMA_CR_ACTIVE_MASK)
+/*! @} */
+
+/*! @name ES - Error Status Register */
+/*! @{ */
+#define DMA_ES_DBE_MASK                          (0x1U)
+#define DMA_ES_DBE_SHIFT                         (0U)
+/*! DBE - Destination Bus Error
+ *  0b0..No destination bus error
+ *  0b1..The last recorded error was a bus error on a destination write
+ */
+#define DMA_ES_DBE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DBE_SHIFT)) & DMA_ES_DBE_MASK)
+#define DMA_ES_SBE_MASK                          (0x2U)
+#define DMA_ES_SBE_SHIFT                         (1U)
+/*! SBE - Source Bus Error
+ *  0b0..No source bus error
+ *  0b1..The last recorded error was a bus error on a source read
+ */
+#define DMA_ES_SBE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SBE_SHIFT)) & DMA_ES_SBE_MASK)
+#define DMA_ES_SGE_MASK                          (0x4U)
+#define DMA_ES_SGE_SHIFT                         (2U)
+/*! SGE - Scatter/Gather Configuration Error
+ *  0b0..No scatter/gather configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DLASTSGA field. This field is checked at the beginning of a scatter/gather operation after major loop completion if TCDn_CSR[ESG] is enabled. TCDn_DLASTSGA is not on a 32 byte boundary.
+ */
+#define DMA_ES_SGE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SGE_SHIFT)) & DMA_ES_SGE_MASK)
+#define DMA_ES_NCE_MASK                          (0x8U)
+#define DMA_ES_NCE_SHIFT                         (3U)
+/*! NCE - NBYTES/CITER Configuration Error
+ *  0b0..No NBYTES/CITER configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_NBYTES or TCDn_CITER fields. TCDn_NBYTES is not a multiple of TCDn_ATTR[SSIZE] and TCDn_ATTR[DSIZE], or TCDn_CITER[CITER] is equal to zero, or TCDn_CITER[ELINK] is not equal to TCDn_BITER[ELINK]
+ */
+#define DMA_ES_NCE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_NCE_SHIFT)) & DMA_ES_NCE_MASK)
+#define DMA_ES_DOE_MASK                          (0x10U)
+#define DMA_ES_DOE_SHIFT                         (4U)
+/*! DOE - Destination Offset Error
+ *  0b0..No destination offset configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DOFF field. TCDn_DOFF is inconsistent with TCDn_ATTR[DSIZE].
+ */
+#define DMA_ES_DOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DOE_SHIFT)) & DMA_ES_DOE_MASK)
+#define DMA_ES_DAE_MASK                          (0x20U)
+#define DMA_ES_DAE_SHIFT                         (5U)
+/*! DAE - Destination Address Error
+ *  0b0..No destination address configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_DADDR field. TCDn_DADDR is inconsistent with TCDn_ATTR[DSIZE].
+ */
+#define DMA_ES_DAE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_DAE_SHIFT)) & DMA_ES_DAE_MASK)
+#define DMA_ES_SOE_MASK                          (0x40U)
+#define DMA_ES_SOE_SHIFT                         (6U)
+/*! SOE - Source Offset Error
+ *  0b0..No source offset configuration error
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_SOFF field. TCDn_SOFF is inconsistent with TCDn_ATTR[SSIZE].
+ */
+#define DMA_ES_SOE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SOE_SHIFT)) & DMA_ES_SOE_MASK)
+#define DMA_ES_SAE_MASK                          (0x80U)
+#define DMA_ES_SAE_SHIFT                         (7U)
+/*! SAE - Source Address Error
+ *  0b0..No source address configuration error.
+ *  0b1..The last recorded error was a configuration error detected in the TCDn_SADDR field. TCDn_SADDR is inconsistent with TCDn_ATTR[SSIZE].
+ */
+#define DMA_ES_SAE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_SAE_SHIFT)) & DMA_ES_SAE_MASK)
+#define DMA_ES_ERRCHN_MASK                       (0x700U)
+#define DMA_ES_ERRCHN_SHIFT                      (8U)
+#define DMA_ES_ERRCHN(x)                         (((uint32_t)(((uint32_t)(x)) << DMA_ES_ERRCHN_SHIFT)) & DMA_ES_ERRCHN_MASK)
+#define DMA_ES_CPE_MASK                          (0x4000U)
+#define DMA_ES_CPE_SHIFT                         (14U)
+/*! CPE - Channel Priority Error
+ *  0b0..No channel priority error
+ *  0b1..The last recorded error was a configuration error in the channel priorities . Channel priorities are not unique.
+ */
+#define DMA_ES_CPE(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_CPE_SHIFT)) & DMA_ES_CPE_MASK)
+#define DMA_ES_ECX_MASK                          (0x10000U)
+#define DMA_ES_ECX_SHIFT                         (16U)
+/*! ECX - Transfer Canceled
+ *  0b0..No canceled transfers
+ *  0b1..The last recorded entry was a canceled transfer by the error cancel transfer input
+ */
+#define DMA_ES_ECX(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_ECX_SHIFT)) & DMA_ES_ECX_MASK)
+#define DMA_ES_VLD_MASK                          (0x80000000U)
+#define DMA_ES_VLD_SHIFT                         (31U)
+/*! VLD - VLD
+ *  0b0..No ERR bits are set.
+ *  0b1..At least one ERR bit is set indicating a valid error exists that has not been cleared.
+ */
+#define DMA_ES_VLD(x)                            (((uint32_t)(((uint32_t)(x)) << DMA_ES_VLD_SHIFT)) & DMA_ES_VLD_MASK)
+/*! @} */
+
+/*! @name ERQ - Enable Request Register */
+/*! @{ */
+#define DMA_ERQ_ERQ0_MASK                        (0x1U)
+#define DMA_ERQ_ERQ0_SHIFT                       (0U)
+/*! ERQ0 - Enable DMA Request 0
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ0_SHIFT)) & DMA_ERQ_ERQ0_MASK)
+#define DMA_ERQ_ERQ1_MASK                        (0x2U)
+#define DMA_ERQ_ERQ1_SHIFT                       (1U)
+/*! ERQ1 - Enable DMA Request 1
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ1_SHIFT)) & DMA_ERQ_ERQ1_MASK)
+#define DMA_ERQ_ERQ2_MASK                        (0x4U)
+#define DMA_ERQ_ERQ2_SHIFT                       (2U)
+/*! ERQ2 - Enable DMA Request 2
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ2_SHIFT)) & DMA_ERQ_ERQ2_MASK)
+#define DMA_ERQ_ERQ3_MASK                        (0x8U)
+#define DMA_ERQ_ERQ3_SHIFT                       (3U)
+/*! ERQ3 - Enable DMA Request 3
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ3_SHIFT)) & DMA_ERQ_ERQ3_MASK)
+#define DMA_ERQ_ERQ4_MASK                        (0x10U)
+#define DMA_ERQ_ERQ4_SHIFT                       (4U)
+/*! ERQ4 - Enable DMA Request 4
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ4_SHIFT)) & DMA_ERQ_ERQ4_MASK)
+#define DMA_ERQ_ERQ5_MASK                        (0x20U)
+#define DMA_ERQ_ERQ5_SHIFT                       (5U)
+/*! ERQ5 - Enable DMA Request 5
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ5_SHIFT)) & DMA_ERQ_ERQ5_MASK)
+#define DMA_ERQ_ERQ6_MASK                        (0x40U)
+#define DMA_ERQ_ERQ6_SHIFT                       (6U)
+/*! ERQ6 - Enable DMA Request 6
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ6_SHIFT)) & DMA_ERQ_ERQ6_MASK)
+#define DMA_ERQ_ERQ7_MASK                        (0x80U)
+#define DMA_ERQ_ERQ7_SHIFT                       (7U)
+/*! ERQ7 - Enable DMA Request 7
+ *  0b0..The DMA request signal for the corresponding channel is disabled
+ *  0b1..The DMA request signal for the corresponding channel is enabled
+ */
+#define DMA_ERQ_ERQ7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERQ_ERQ7_SHIFT)) & DMA_ERQ_ERQ7_MASK)
+/*! @} */
+
+/*! @name EEI - Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_EEI_EEI0_MASK                        (0x1U)
+#define DMA_EEI_EEI0_SHIFT                       (0U)
+/*! EEI0 - Enable Error Interrupt 0
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI0_SHIFT)) & DMA_EEI_EEI0_MASK)
+#define DMA_EEI_EEI1_MASK                        (0x2U)
+#define DMA_EEI_EEI1_SHIFT                       (1U)
+/*! EEI1 - Enable Error Interrupt 1
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI1_SHIFT)) & DMA_EEI_EEI1_MASK)
+#define DMA_EEI_EEI2_MASK                        (0x4U)
+#define DMA_EEI_EEI2_SHIFT                       (2U)
+/*! EEI2 - Enable Error Interrupt 2
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI2_SHIFT)) & DMA_EEI_EEI2_MASK)
+#define DMA_EEI_EEI3_MASK                        (0x8U)
+#define DMA_EEI_EEI3_SHIFT                       (3U)
+/*! EEI3 - Enable Error Interrupt 3
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI3_SHIFT)) & DMA_EEI_EEI3_MASK)
+#define DMA_EEI_EEI4_MASK                        (0x10U)
+#define DMA_EEI_EEI4_SHIFT                       (4U)
+/*! EEI4 - Enable Error Interrupt 4
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI4_SHIFT)) & DMA_EEI_EEI4_MASK)
+#define DMA_EEI_EEI5_MASK                        (0x20U)
+#define DMA_EEI_EEI5_SHIFT                       (5U)
+/*! EEI5 - Enable Error Interrupt 5
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI5_SHIFT)) & DMA_EEI_EEI5_MASK)
+#define DMA_EEI_EEI6_MASK                        (0x40U)
+#define DMA_EEI_EEI6_SHIFT                       (6U)
+/*! EEI6 - Enable Error Interrupt 6
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI6_SHIFT)) & DMA_EEI_EEI6_MASK)
+#define DMA_EEI_EEI7_MASK                        (0x80U)
+#define DMA_EEI_EEI7_SHIFT                       (7U)
+/*! EEI7 - Enable Error Interrupt 7
+ *  0b0..The error signal for corresponding channel does not generate an error interrupt
+ *  0b1..The assertion of the error signal for corresponding channel generates an error interrupt request
+ */
+#define DMA_EEI_EEI7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_EEI_EEI7_SHIFT)) & DMA_EEI_EEI7_MASK)
+/*! @} */
+
+/*! @name CEEI - Clear Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_CEEI_CEEI_MASK                       (0x7U)
+#define DMA_CEEI_CEEI_SHIFT                      (0U)
+#define DMA_CEEI_CEEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CEEI_SHIFT)) & DMA_CEEI_CEEI_MASK)
+#define DMA_CEEI_CAEE_MASK                       (0x40U)
+#define DMA_CEEI_CAEE_SHIFT                      (6U)
+/*! CAEE - Clear All Enable Error Interrupts
+ *  0b0..Clear only the EEI bit specified in the CEEI field
+ *  0b1..Clear all bits in EEI
+ */
+#define DMA_CEEI_CAEE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_CAEE_SHIFT)) & DMA_CEEI_CAEE_MASK)
+#define DMA_CEEI_NOP_MASK                        (0x80U)
+#define DMA_CEEI_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CEEI_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CEEI_NOP_SHIFT)) & DMA_CEEI_NOP_MASK)
+/*! @} */
+
+/*! @name SEEI - Set Enable Error Interrupt Register */
+/*! @{ */
+#define DMA_SEEI_SEEI_MASK                       (0x7U)
+#define DMA_SEEI_SEEI_SHIFT                      (0U)
+#define DMA_SEEI_SEEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SEEI_SHIFT)) & DMA_SEEI_SEEI_MASK)
+#define DMA_SEEI_SAEE_MASK                       (0x40U)
+#define DMA_SEEI_SAEE_SHIFT                      (6U)
+/*! SAEE - Sets All Enable Error Interrupts
+ *  0b0..Set only the EEI bit specified in the SEEI field.
+ *  0b1..Sets all bits in EEI
+ */
+#define DMA_SEEI_SAEE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_SAEE_SHIFT)) & DMA_SEEI_SAEE_MASK)
+#define DMA_SEEI_NOP_MASK                        (0x80U)
+#define DMA_SEEI_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SEEI_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SEEI_NOP_SHIFT)) & DMA_SEEI_NOP_MASK)
+/*! @} */
+
+/*! @name CERQ - Clear Enable Request Register */
+/*! @{ */
+#define DMA_CERQ_CERQ_MASK                       (0x7U)
+#define DMA_CERQ_CERQ_SHIFT                      (0U)
+#define DMA_CERQ_CERQ(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CERQ_SHIFT)) & DMA_CERQ_CERQ_MASK)
+#define DMA_CERQ_CAER_MASK                       (0x40U)
+#define DMA_CERQ_CAER_SHIFT                      (6U)
+/*! CAER - Clear All Enable Requests
+ *  0b0..Clear only the ERQ bit specified in the CERQ field
+ *  0b1..Clear all bits in ERQ
+ */
+#define DMA_CERQ_CAER(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_CAER_SHIFT)) & DMA_CERQ_CAER_MASK)
+#define DMA_CERQ_NOP_MASK                        (0x80U)
+#define DMA_CERQ_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CERQ_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CERQ_NOP_SHIFT)) & DMA_CERQ_NOP_MASK)
+/*! @} */
+
+/*! @name SERQ - Set Enable Request Register */
+/*! @{ */
+#define DMA_SERQ_SERQ_MASK                       (0x7U)
+#define DMA_SERQ_SERQ_SHIFT                      (0U)
+#define DMA_SERQ_SERQ(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SERQ_SHIFT)) & DMA_SERQ_SERQ_MASK)
+#define DMA_SERQ_SAER_MASK                       (0x40U)
+#define DMA_SERQ_SAER_SHIFT                      (6U)
+/*! SAER - Set All Enable Requests
+ *  0b0..Set only the ERQ bit specified in the SERQ field
+ *  0b1..Set all bits in ERQ
+ */
+#define DMA_SERQ_SAER(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_SAER_SHIFT)) & DMA_SERQ_SAER_MASK)
+#define DMA_SERQ_NOP_MASK                        (0x80U)
+#define DMA_SERQ_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SERQ_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SERQ_NOP_SHIFT)) & DMA_SERQ_NOP_MASK)
+/*! @} */
+
+/*! @name CDNE - Clear DONE Status Bit Register */
+/*! @{ */
+#define DMA_CDNE_CDNE_MASK                       (0x7U)
+#define DMA_CDNE_CDNE_SHIFT                      (0U)
+#define DMA_CDNE_CDNE(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CDNE_SHIFT)) & DMA_CDNE_CDNE_MASK)
+#define DMA_CDNE_CADN_MASK                       (0x40U)
+#define DMA_CDNE_CADN_SHIFT                      (6U)
+/*! CADN - Clears All DONE Bits
+ *  0b0..Clears only the TCDn_CSR[DONE] bit specified in the CDNE field
+ *  0b1..Clears all bits in TCDn_CSR[DONE]
+ */
+#define DMA_CDNE_CADN(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_CADN_SHIFT)) & DMA_CDNE_CADN_MASK)
+#define DMA_CDNE_NOP_MASK                        (0x80U)
+#define DMA_CDNE_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CDNE_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CDNE_NOP_SHIFT)) & DMA_CDNE_NOP_MASK)
+/*! @} */
+
+/*! @name SSRT - Set START Bit Register */
+/*! @{ */
+#define DMA_SSRT_SSRT_MASK                       (0x7U)
+#define DMA_SSRT_SSRT_SHIFT                      (0U)
+#define DMA_SSRT_SSRT(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SSRT_SHIFT)) & DMA_SSRT_SSRT_MASK)
+#define DMA_SSRT_SAST_MASK                       (0x40U)
+#define DMA_SSRT_SAST_SHIFT                      (6U)
+/*! SAST - Set All START Bits (activates all channels)
+ *  0b0..Set only the TCDn_CSR[START] bit specified in the SSRT field
+ *  0b1..Set all bits in TCDn_CSR[START]
+ */
+#define DMA_SSRT_SAST(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_SAST_SHIFT)) & DMA_SSRT_SAST_MASK)
+#define DMA_SSRT_NOP_MASK                        (0x80U)
+#define DMA_SSRT_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_SSRT_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_SSRT_NOP_SHIFT)) & DMA_SSRT_NOP_MASK)
+/*! @} */
+
+/*! @name CERR - Clear Error Register */
+/*! @{ */
+#define DMA_CERR_CERR_MASK                       (0x7U)
+#define DMA_CERR_CERR_SHIFT                      (0U)
+#define DMA_CERR_CERR(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CERR_SHIFT)) & DMA_CERR_CERR_MASK)
+#define DMA_CERR_CAEI_MASK                       (0x40U)
+#define DMA_CERR_CAEI_SHIFT                      (6U)
+/*! CAEI - Clear All Error Indicators
+ *  0b0..Clear only the ERR bit specified in the CERR field
+ *  0b1..Clear all bits in ERR
+ */
+#define DMA_CERR_CAEI(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CERR_CAEI_SHIFT)) & DMA_CERR_CAEI_MASK)
+#define DMA_CERR_NOP_MASK                        (0x80U)
+#define DMA_CERR_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CERR_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CERR_NOP_SHIFT)) & DMA_CERR_NOP_MASK)
+/*! @} */
+
+/*! @name CINT - Clear Interrupt Request Register */
+/*! @{ */
+#define DMA_CINT_CINT_MASK                       (0x7U)
+#define DMA_CINT_CINT_SHIFT                      (0U)
+#define DMA_CINT_CINT(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CINT_SHIFT)) & DMA_CINT_CINT_MASK)
+#define DMA_CINT_CAIR_MASK                       (0x40U)
+#define DMA_CINT_CAIR_SHIFT                      (6U)
+/*! CAIR - Clear All Interrupt Requests
+ *  0b0..Clear only the INT bit specified in the CINT field
+ *  0b1..Clear all bits in INT
+ */
+#define DMA_CINT_CAIR(x)                         (((uint8_t)(((uint8_t)(x)) << DMA_CINT_CAIR_SHIFT)) & DMA_CINT_CAIR_MASK)
+#define DMA_CINT_NOP_MASK                        (0x80U)
+#define DMA_CINT_NOP_SHIFT                       (7U)
+/*! NOP - No Op enable
+ *  0b0..Normal operation
+ *  0b1..No operation, ignore the other bits in this register
+ */
+#define DMA_CINT_NOP(x)                          (((uint8_t)(((uint8_t)(x)) << DMA_CINT_NOP_SHIFT)) & DMA_CINT_NOP_MASK)
+/*! @} */
+
+/*! @name INT - Interrupt Request Register */
+/*! @{ */
+#define DMA_INT_INT0_MASK                        (0x1U)
+#define DMA_INT_INT0_SHIFT                       (0U)
+/*! INT0 - Interrupt Request 0
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT0_SHIFT)) & DMA_INT_INT0_MASK)
+#define DMA_INT_INT1_MASK                        (0x2U)
+#define DMA_INT_INT1_SHIFT                       (1U)
+/*! INT1 - Interrupt Request 1
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT1_SHIFT)) & DMA_INT_INT1_MASK)
+#define DMA_INT_INT2_MASK                        (0x4U)
+#define DMA_INT_INT2_SHIFT                       (2U)
+/*! INT2 - Interrupt Request 2
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT2_SHIFT)) & DMA_INT_INT2_MASK)
+#define DMA_INT_INT3_MASK                        (0x8U)
+#define DMA_INT_INT3_SHIFT                       (3U)
+/*! INT3 - Interrupt Request 3
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT3_SHIFT)) & DMA_INT_INT3_MASK)
+#define DMA_INT_INT4_MASK                        (0x10U)
+#define DMA_INT_INT4_SHIFT                       (4U)
+/*! INT4 - Interrupt Request 4
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT4_SHIFT)) & DMA_INT_INT4_MASK)
+#define DMA_INT_INT5_MASK                        (0x20U)
+#define DMA_INT_INT5_SHIFT                       (5U)
+/*! INT5 - Interrupt Request 5
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT5_SHIFT)) & DMA_INT_INT5_MASK)
+#define DMA_INT_INT6_MASK                        (0x40U)
+#define DMA_INT_INT6_SHIFT                       (6U)
+/*! INT6 - Interrupt Request 6
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT6_SHIFT)) & DMA_INT_INT6_MASK)
+#define DMA_INT_INT7_MASK                        (0x80U)
+#define DMA_INT_INT7_SHIFT                       (7U)
+/*! INT7 - Interrupt Request 7
+ *  0b0..The interrupt request for corresponding channel is cleared
+ *  0b1..The interrupt request for corresponding channel is active
+ */
+#define DMA_INT_INT7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_INT_INT7_SHIFT)) & DMA_INT_INT7_MASK)
+/*! @} */
+
+/*! @name ERR - Error Register */
+/*! @{ */
+#define DMA_ERR_ERR0_MASK                        (0x1U)
+#define DMA_ERR_ERR0_SHIFT                       (0U)
+/*! ERR0 - Error In Channel 0
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR0_SHIFT)) & DMA_ERR_ERR0_MASK)
+#define DMA_ERR_ERR1_MASK                        (0x2U)
+#define DMA_ERR_ERR1_SHIFT                       (1U)
+/*! ERR1 - Error In Channel 1
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR1_SHIFT)) & DMA_ERR_ERR1_MASK)
+#define DMA_ERR_ERR2_MASK                        (0x4U)
+#define DMA_ERR_ERR2_SHIFT                       (2U)
+/*! ERR2 - Error In Channel 2
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR2_SHIFT)) & DMA_ERR_ERR2_MASK)
+#define DMA_ERR_ERR3_MASK                        (0x8U)
+#define DMA_ERR_ERR3_SHIFT                       (3U)
+/*! ERR3 - Error In Channel 3
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR3_SHIFT)) & DMA_ERR_ERR3_MASK)
+#define DMA_ERR_ERR4_MASK                        (0x10U)
+#define DMA_ERR_ERR4_SHIFT                       (4U)
+/*! ERR4 - Error In Channel 4
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR4_SHIFT)) & DMA_ERR_ERR4_MASK)
+#define DMA_ERR_ERR5_MASK                        (0x20U)
+#define DMA_ERR_ERR5_SHIFT                       (5U)
+/*! ERR5 - Error In Channel 5
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR5_SHIFT)) & DMA_ERR_ERR5_MASK)
+#define DMA_ERR_ERR6_MASK                        (0x40U)
+#define DMA_ERR_ERR6_SHIFT                       (6U)
+/*! ERR6 - Error In Channel 6
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR6_SHIFT)) & DMA_ERR_ERR6_MASK)
+#define DMA_ERR_ERR7_MASK                        (0x80U)
+#define DMA_ERR_ERR7_SHIFT                       (7U)
+/*! ERR7 - Error In Channel 7
+ *  0b0..An error in this channel has not occurred
+ *  0b1..An error in this channel has occurred
+ */
+#define DMA_ERR_ERR7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_ERR_ERR7_SHIFT)) & DMA_ERR_ERR7_MASK)
+/*! @} */
+
+/*! @name HRS - Hardware Request Status Register */
+/*! @{ */
+#define DMA_HRS_HRS0_MASK                        (0x1U)
+#define DMA_HRS_HRS0_SHIFT                       (0U)
+/*! HRS0 - Hardware Request Status Channel 0
+ *  0b0..A hardware service request for channel 0 is not present
+ *  0b1..A hardware service request for channel 0 is present
+ */
+#define DMA_HRS_HRS0(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS0_SHIFT)) & DMA_HRS_HRS0_MASK)
+#define DMA_HRS_HRS1_MASK                        (0x2U)
+#define DMA_HRS_HRS1_SHIFT                       (1U)
+/*! HRS1 - Hardware Request Status Channel 1
+ *  0b0..A hardware service request for channel 1 is not present
+ *  0b1..A hardware service request for channel 1 is present
+ */
+#define DMA_HRS_HRS1(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS1_SHIFT)) & DMA_HRS_HRS1_MASK)
+#define DMA_HRS_HRS2_MASK                        (0x4U)
+#define DMA_HRS_HRS2_SHIFT                       (2U)
+/*! HRS2 - Hardware Request Status Channel 2
+ *  0b0..A hardware service request for channel 2 is not present
+ *  0b1..A hardware service request for channel 2 is present
+ */
+#define DMA_HRS_HRS2(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS2_SHIFT)) & DMA_HRS_HRS2_MASK)
+#define DMA_HRS_HRS3_MASK                        (0x8U)
+#define DMA_HRS_HRS3_SHIFT                       (3U)
+/*! HRS3 - Hardware Request Status Channel 3
+ *  0b0..A hardware service request for channel 3 is not present
+ *  0b1..A hardware service request for channel 3 is present
+ */
+#define DMA_HRS_HRS3(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS3_SHIFT)) & DMA_HRS_HRS3_MASK)
+#define DMA_HRS_HRS4_MASK                        (0x10U)
+#define DMA_HRS_HRS4_SHIFT                       (4U)
+/*! HRS4 - Hardware Request Status Channel 4
+ *  0b0..A hardware service request for channel 4 is not present
+ *  0b1..A hardware service request for channel 4 is present
+ */
+#define DMA_HRS_HRS4(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS4_SHIFT)) & DMA_HRS_HRS4_MASK)
+#define DMA_HRS_HRS5_MASK                        (0x20U)
+#define DMA_HRS_HRS5_SHIFT                       (5U)
+/*! HRS5 - Hardware Request Status Channel 5
+ *  0b0..A hardware service request for channel 5 is not present
+ *  0b1..A hardware service request for channel 5 is present
+ */
+#define DMA_HRS_HRS5(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS5_SHIFT)) & DMA_HRS_HRS5_MASK)
+#define DMA_HRS_HRS6_MASK                        (0x40U)
+#define DMA_HRS_HRS6_SHIFT                       (6U)
+/*! HRS6 - Hardware Request Status Channel 6
+ *  0b0..A hardware service request for channel 6 is not present
+ *  0b1..A hardware service request for channel 6 is present
+ */
+#define DMA_HRS_HRS6(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS6_SHIFT)) & DMA_HRS_HRS6_MASK)
+#define DMA_HRS_HRS7_MASK                        (0x80U)
+#define DMA_HRS_HRS7_SHIFT                       (7U)
+/*! HRS7 - Hardware Request Status Channel 7
+ *  0b0..A hardware service request for channel 7 is not present
+ *  0b1..A hardware service request for channel 7 is present
+ */
+#define DMA_HRS_HRS7(x)                          (((uint32_t)(((uint32_t)(x)) << DMA_HRS_HRS7_SHIFT)) & DMA_HRS_HRS7_MASK)
+/*! @} */
+
+/*! @name EARS - Enable Asynchronous Request in Stop Register */
+/*! @{ */
+#define DMA_EARS_EDREQ_0_MASK                    (0x1U)
+#define DMA_EARS_EDREQ_0_SHIFT                   (0U)
+/*! EDREQ_0 - Enable asynchronous DMA request in stop mode for channel 0.
+ *  0b0..Disable asynchronous DMA request for channel 0.
+ *  0b1..Enable asynchronous DMA request for channel 0.
+ */
+#define DMA_EARS_EDREQ_0(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_0_SHIFT)) & DMA_EARS_EDREQ_0_MASK)
+#define DMA_EARS_EDREQ_1_MASK                    (0x2U)
+#define DMA_EARS_EDREQ_1_SHIFT                   (1U)
+/*! EDREQ_1 - Enable asynchronous DMA request in stop mode for channel 1.
+ *  0b0..Disable asynchronous DMA request for channel 1
+ *  0b1..Enable asynchronous DMA request for channel 1.
+ */
+#define DMA_EARS_EDREQ_1(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_1_SHIFT)) & DMA_EARS_EDREQ_1_MASK)
+#define DMA_EARS_EDREQ_2_MASK                    (0x4U)
+#define DMA_EARS_EDREQ_2_SHIFT                   (2U)
+/*! EDREQ_2 - Enable asynchronous DMA request in stop mode for channel 2.
+ *  0b0..Disable asynchronous DMA request for channel 2.
+ *  0b1..Enable asynchronous DMA request for channel 2.
+ */
+#define DMA_EARS_EDREQ_2(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_2_SHIFT)) & DMA_EARS_EDREQ_2_MASK)
+#define DMA_EARS_EDREQ_3_MASK                    (0x8U)
+#define DMA_EARS_EDREQ_3_SHIFT                   (3U)
+/*! EDREQ_3 - Enable asynchronous DMA request in stop mode for channel 3.
+ *  0b0..Disable asynchronous DMA request for channel 3.
+ *  0b1..Enable asynchronous DMA request for channel 3.
+ */
+#define DMA_EARS_EDREQ_3(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_3_SHIFT)) & DMA_EARS_EDREQ_3_MASK)
+#define DMA_EARS_EDREQ_4_MASK                    (0x10U)
+#define DMA_EARS_EDREQ_4_SHIFT                   (4U)
+/*! EDREQ_4 - Enable asynchronous DMA request in stop mode for channel 4
+ *  0b0..Disable asynchronous DMA request for channel 4.
+ *  0b1..Enable asynchronous DMA request for channel 4.
+ */
+#define DMA_EARS_EDREQ_4(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_4_SHIFT)) & DMA_EARS_EDREQ_4_MASK)
+#define DMA_EARS_EDREQ_5_MASK                    (0x20U)
+#define DMA_EARS_EDREQ_5_SHIFT                   (5U)
+/*! EDREQ_5 - Enable asynchronous DMA request in stop mode for channel 5
+ *  0b0..Disable asynchronous DMA request for channel 5.
+ *  0b1..Enable asynchronous DMA request for channel 5.
+ */
+#define DMA_EARS_EDREQ_5(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_5_SHIFT)) & DMA_EARS_EDREQ_5_MASK)
+#define DMA_EARS_EDREQ_6_MASK                    (0x40U)
+#define DMA_EARS_EDREQ_6_SHIFT                   (6U)
+/*! EDREQ_6 - Enable asynchronous DMA request in stop mode for channel 6
+ *  0b0..Disable asynchronous DMA request for channel 6.
+ *  0b1..Enable asynchronous DMA request for channel 6.
+ */
+#define DMA_EARS_EDREQ_6(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_6_SHIFT)) & DMA_EARS_EDREQ_6_MASK)
+#define DMA_EARS_EDREQ_7_MASK                    (0x80U)
+#define DMA_EARS_EDREQ_7_SHIFT                   (7U)
+/*! EDREQ_7 - Enable asynchronous DMA request in stop mode for channel 7
+ *  0b0..Disable asynchronous DMA request for channel 7.
+ *  0b1..Enable asynchronous DMA request for channel 7.
+ */
+#define DMA_EARS_EDREQ_7(x)                      (((uint32_t)(((uint32_t)(x)) << DMA_EARS_EDREQ_7_SHIFT)) & DMA_EARS_EDREQ_7_MASK)
+/*! @} */
+
+/*! @name DCHPRI3 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI3_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI3_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI3_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_CHPRI_SHIFT)) & DMA_DCHPRI3_CHPRI_MASK)
+#define DMA_DCHPRI3_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI3_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI3_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_DPA_SHIFT)) & DMA_DCHPRI3_DPA_MASK)
+#define DMA_DCHPRI3_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI3_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI3_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI3_ECP_SHIFT)) & DMA_DCHPRI3_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI2 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI2_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI2_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI2_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_CHPRI_SHIFT)) & DMA_DCHPRI2_CHPRI_MASK)
+#define DMA_DCHPRI2_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI2_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI2_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_DPA_SHIFT)) & DMA_DCHPRI2_DPA_MASK)
+#define DMA_DCHPRI2_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI2_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI2_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI2_ECP_SHIFT)) & DMA_DCHPRI2_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI1 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI1_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI1_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI1_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_CHPRI_SHIFT)) & DMA_DCHPRI1_CHPRI_MASK)
+#define DMA_DCHPRI1_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI1_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI1_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_DPA_SHIFT)) & DMA_DCHPRI1_DPA_MASK)
+#define DMA_DCHPRI1_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI1_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI1_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI1_ECP_SHIFT)) & DMA_DCHPRI1_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI0 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI0_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI0_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI0_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_CHPRI_SHIFT)) & DMA_DCHPRI0_CHPRI_MASK)
+#define DMA_DCHPRI0_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI0_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI0_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_DPA_SHIFT)) & DMA_DCHPRI0_DPA_MASK)
+#define DMA_DCHPRI0_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI0_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI0_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI0_ECP_SHIFT)) & DMA_DCHPRI0_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI7 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI7_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI7_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI7_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_CHPRI_SHIFT)) & DMA_DCHPRI7_CHPRI_MASK)
+#define DMA_DCHPRI7_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI7_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI7_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_DPA_SHIFT)) & DMA_DCHPRI7_DPA_MASK)
+#define DMA_DCHPRI7_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI7_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI7_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI7_ECP_SHIFT)) & DMA_DCHPRI7_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI6 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI6_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI6_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI6_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_CHPRI_SHIFT)) & DMA_DCHPRI6_CHPRI_MASK)
+#define DMA_DCHPRI6_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI6_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI6_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_DPA_SHIFT)) & DMA_DCHPRI6_DPA_MASK)
+#define DMA_DCHPRI6_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI6_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI6_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI6_ECP_SHIFT)) & DMA_DCHPRI6_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI5 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI5_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI5_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI5_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_CHPRI_SHIFT)) & DMA_DCHPRI5_CHPRI_MASK)
+#define DMA_DCHPRI5_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI5_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI5_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_DPA_SHIFT)) & DMA_DCHPRI5_DPA_MASK)
+#define DMA_DCHPRI5_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI5_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI5_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI5_ECP_SHIFT)) & DMA_DCHPRI5_ECP_MASK)
+/*! @} */
+
+/*! @name DCHPRI4 - Channel Priority Register */
+/*! @{ */
+#define DMA_DCHPRI4_CHPRI_MASK                   (0x7U)
+#define DMA_DCHPRI4_CHPRI_SHIFT                  (0U)
+#define DMA_DCHPRI4_CHPRI(x)                     (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_CHPRI_SHIFT)) & DMA_DCHPRI4_CHPRI_MASK)
+#define DMA_DCHPRI4_DPA_MASK                     (0x40U)
+#define DMA_DCHPRI4_DPA_SHIFT                    (6U)
+/*! DPA - Disable Preempt Ability. This field resets to 0.
+ *  0b0..Channel n can suspend a lower priority channel.
+ *  0b1..Channel n cannot suspend any channel, regardless of channel priority.
+ */
+#define DMA_DCHPRI4_DPA(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_DPA_SHIFT)) & DMA_DCHPRI4_DPA_MASK)
+#define DMA_DCHPRI4_ECP_MASK                     (0x80U)
+#define DMA_DCHPRI4_ECP_SHIFT                    (7U)
+/*! ECP - Enable Channel Preemption. This field resets to 0.
+ *  0b0..Channel n cannot be suspended by a higher priority channel's service request.
+ *  0b1..Channel n can be temporarily suspended by the service request of a higher priority channel.
+ */
+#define DMA_DCHPRI4_ECP(x)                       (((uint8_t)(((uint8_t)(x)) << DMA_DCHPRI4_ECP_SHIFT)) & DMA_DCHPRI4_ECP_MASK)
+/*! @} */
+
+/*! @name SADDR - TCD Source Address */
+/*! @{ */
+#define DMA_SADDR_SADDR_MASK                     (0xFFFFFFFFU)
+#define DMA_SADDR_SADDR_SHIFT                    (0U)
+#define DMA_SADDR_SADDR(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_SADDR_SADDR_SHIFT)) & DMA_SADDR_SADDR_MASK)
+/*! @} */
+
+/* The count of DMA_SADDR */
+#define DMA_SADDR_COUNT                          (8U)
+
+/*! @name SOFF - TCD Signed Source Address Offset */
+/*! @{ */
+#define DMA_SOFF_SOFF_MASK                       (0xFFFFU)
+#define DMA_SOFF_SOFF_SHIFT                      (0U)
+#define DMA_SOFF_SOFF(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_SOFF_SOFF_SHIFT)) & DMA_SOFF_SOFF_MASK)
+/*! @} */
+
+/* The count of DMA_SOFF */
+#define DMA_SOFF_COUNT                           (8U)
+
+/*! @name ATTR - TCD Transfer Attributes */
+/*! @{ */
+#define DMA_ATTR_DSIZE_MASK                      (0x7U)
+#define DMA_ATTR_DSIZE_SHIFT                     (0U)
+#define DMA_ATTR_DSIZE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DSIZE_SHIFT)) & DMA_ATTR_DSIZE_MASK)
+#define DMA_ATTR_DMOD_MASK                       (0xF8U)
+#define DMA_ATTR_DMOD_SHIFT                      (3U)
+#define DMA_ATTR_DMOD(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_DMOD_SHIFT)) & DMA_ATTR_DMOD_MASK)
+#define DMA_ATTR_SSIZE_MASK                      (0x700U)
+#define DMA_ATTR_SSIZE_SHIFT                     (8U)
+/*! SSIZE - Source data transfer size
+ *  0b000..8-bit
+ *  0b001..16-bit
+ *  0b010..32-bit
+ *  0b011..Reserved
+ *  0b100..16-byte
+ *  0b101..32-byte
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define DMA_ATTR_SSIZE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SSIZE_SHIFT)) & DMA_ATTR_SSIZE_MASK)
+#define DMA_ATTR_SMOD_MASK                       (0xF800U)
+#define DMA_ATTR_SMOD_SHIFT                      (11U)
+/*! SMOD - Source Address Modulo
+ *  0b00000..Source address modulo feature is disabled
+ *  0b00001-0b11111..This value defines a specific address range specified to be the value after SADDR + SOFF calculation is performed on the original register value. Setting this field provides the ability to implement a circular data queue easily. For data queues requiring power-of-2 size bytes, the queue should start at a 0-modulo-size address and the SMOD field should be set to the appropriate value for the queue, freezing the desired number of upper address bits. The value programmed into this field specifies the number of lower address bits allowed to change. For a circular queue application, the SOFF is typically set to the transfer size to implement post-increment addressing with the SMOD function constraining the addresses to a 0-modulo-size range.
+ */
+#define DMA_ATTR_SMOD(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_ATTR_SMOD_SHIFT)) & DMA_ATTR_SMOD_MASK)
+/*! @} */
+
+/* The count of DMA_ATTR */
+#define DMA_ATTR_COUNT                           (8U)
+
+/*! @name NBYTES_MLNO - TCD Minor Byte Count (Minor Loop Mapping Disabled) */
+/*! @{ */
+#define DMA_NBYTES_MLNO_NBYTES_MASK              (0xFFFFFFFFU)
+#define DMA_NBYTES_MLNO_NBYTES_SHIFT             (0U)
+#define DMA_NBYTES_MLNO_NBYTES(x)                (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLNO_NBYTES_SHIFT)) & DMA_NBYTES_MLNO_NBYTES_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLNO */
+#define DMA_NBYTES_MLNO_COUNT                    (8U)
+
+/*! @name NBYTES_MLOFFNO - TCD Signed Minor Loop Offset (Minor Loop Mapping Enabled and Offset Disabled) */
+/*! @{ */
+#define DMA_NBYTES_MLOFFNO_NBYTES_MASK           (0x3FFFFFFFU)
+#define DMA_NBYTES_MLOFFNO_NBYTES_SHIFT          (0U)
+#define DMA_NBYTES_MLOFFNO_NBYTES(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFNO_NBYTES_MASK)
+#define DMA_NBYTES_MLOFFNO_DMLOE_MASK            (0x40000000U)
+#define DMA_NBYTES_MLOFFNO_DMLOE_SHIFT           (30U)
+/*! DMLOE - Destination Minor Loop Offset enable
+ *  0b0..The minor loop offset is not applied to the DADDR
+ *  0b1..The minor loop offset is applied to the DADDR
+ */
+#define DMA_NBYTES_MLOFFNO_DMLOE(x)              (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_DMLOE_MASK)
+#define DMA_NBYTES_MLOFFNO_SMLOE_MASK            (0x80000000U)
+#define DMA_NBYTES_MLOFFNO_SMLOE_SHIFT           (31U)
+/*! SMLOE - Source Minor Loop Offset Enable
+ *  0b0..The minor loop offset is not applied to the SADDR
+ *  0b1..The minor loop offset is applied to the SADDR
+ */
+#define DMA_NBYTES_MLOFFNO_SMLOE(x)              (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFNO_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFNO_SMLOE_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLOFFNO */
+#define DMA_NBYTES_MLOFFNO_COUNT                 (8U)
+
+/*! @name NBYTES_MLOFFYES - TCD Signed Minor Loop Offset (Minor Loop Mapping and Offset Enabled) */
+/*! @{ */
+#define DMA_NBYTES_MLOFFYES_NBYTES_MASK          (0x3FFU)
+#define DMA_NBYTES_MLOFFYES_NBYTES_SHIFT         (0U)
+#define DMA_NBYTES_MLOFFYES_NBYTES(x)            (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_NBYTES_SHIFT)) & DMA_NBYTES_MLOFFYES_NBYTES_MASK)
+#define DMA_NBYTES_MLOFFYES_MLOFF_MASK           (0x3FFFFC00U)
+#define DMA_NBYTES_MLOFFYES_MLOFF_SHIFT          (10U)
+#define DMA_NBYTES_MLOFFYES_MLOFF(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_MLOFF_SHIFT)) & DMA_NBYTES_MLOFFYES_MLOFF_MASK)
+#define DMA_NBYTES_MLOFFYES_DMLOE_MASK           (0x40000000U)
+#define DMA_NBYTES_MLOFFYES_DMLOE_SHIFT          (30U)
+/*! DMLOE - Destination Minor Loop Offset enable
+ *  0b0..The minor loop offset is not applied to the DADDR
+ *  0b1..The minor loop offset is applied to the DADDR
+ */
+#define DMA_NBYTES_MLOFFYES_DMLOE(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_DMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_DMLOE_MASK)
+#define DMA_NBYTES_MLOFFYES_SMLOE_MASK           (0x80000000U)
+#define DMA_NBYTES_MLOFFYES_SMLOE_SHIFT          (31U)
+/*! SMLOE - Source Minor Loop Offset Enable
+ *  0b0..The minor loop offset is not applied to the SADDR
+ *  0b1..The minor loop offset is applied to the SADDR
+ */
+#define DMA_NBYTES_MLOFFYES_SMLOE(x)             (((uint32_t)(((uint32_t)(x)) << DMA_NBYTES_MLOFFYES_SMLOE_SHIFT)) & DMA_NBYTES_MLOFFYES_SMLOE_MASK)
+/*! @} */
+
+/* The count of DMA_NBYTES_MLOFFYES */
+#define DMA_NBYTES_MLOFFYES_COUNT                (8U)
+
+/*! @name SLAST - TCD Last Source Address Adjustment */
+/*! @{ */
+#define DMA_SLAST_SLAST_MASK                     (0xFFFFFFFFU)
+#define DMA_SLAST_SLAST_SHIFT                    (0U)
+#define DMA_SLAST_SLAST(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_SLAST_SLAST_SHIFT)) & DMA_SLAST_SLAST_MASK)
+/*! @} */
+
+/* The count of DMA_SLAST */
+#define DMA_SLAST_COUNT                          (8U)
+
+/*! @name DADDR - TCD Destination Address */
+/*! @{ */
+#define DMA_DADDR_DADDR_MASK                     (0xFFFFFFFFU)
+#define DMA_DADDR_DADDR_SHIFT                    (0U)
+#define DMA_DADDR_DADDR(x)                       (((uint32_t)(((uint32_t)(x)) << DMA_DADDR_DADDR_SHIFT)) & DMA_DADDR_DADDR_MASK)
+/*! @} */
+
+/* The count of DMA_DADDR */
+#define DMA_DADDR_COUNT                          (8U)
+
+/*! @name DOFF - TCD Signed Destination Address Offset */
+/*! @{ */
+#define DMA_DOFF_DOFF_MASK                       (0xFFFFU)
+#define DMA_DOFF_DOFF_SHIFT                      (0U)
+#define DMA_DOFF_DOFF(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_DOFF_DOFF_SHIFT)) & DMA_DOFF_DOFF_MASK)
+/*! @} */
+
+/* The count of DMA_DOFF */
+#define DMA_DOFF_COUNT                           (8U)
+
+/*! @name CITER_ELINKNO - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Disabled) */
+/*! @{ */
+#define DMA_CITER_ELINKNO_CITER_MASK             (0x7FFFU)
+#define DMA_CITER_ELINKNO_CITER_SHIFT            (0U)
+#define DMA_CITER_ELINKNO_CITER(x)               (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_CITER_SHIFT)) & DMA_CITER_ELINKNO_CITER_MASK)
+#define DMA_CITER_ELINKNO_ELINK_MASK             (0x8000U)
+#define DMA_CITER_ELINKNO_ELINK_SHIFT            (15U)
+/*! ELINK - Enable channel-to-channel linking on minor-loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_CITER_ELINKNO_ELINK(x)               (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKNO_ELINK_SHIFT)) & DMA_CITER_ELINKNO_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_CITER_ELINKNO */
+#define DMA_CITER_ELINKNO_COUNT                  (8U)
+
+/*! @name CITER_ELINKYES - TCD Current Minor Loop Link, Major Loop Count (Channel Linking Enabled) */
+/*! @{ */
+#define DMA_CITER_ELINKYES_CITER_MASK            (0x1FFU)
+#define DMA_CITER_ELINKYES_CITER_SHIFT           (0U)
+#define DMA_CITER_ELINKYES_CITER(x)              (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_CITER_SHIFT)) & DMA_CITER_ELINKYES_CITER_MASK)
+#define DMA_CITER_ELINKYES_LINKCH_MASK           (0xE00U)
+#define DMA_CITER_ELINKYES_LINKCH_SHIFT          (9U)
+#define DMA_CITER_ELINKYES_LINKCH(x)             (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_LINKCH_SHIFT)) & DMA_CITER_ELINKYES_LINKCH_MASK)
+#define DMA_CITER_ELINKYES_ELINK_MASK            (0x8000U)
+#define DMA_CITER_ELINKYES_ELINK_SHIFT           (15U)
+/*! ELINK - Enable channel-to-channel linking on minor-loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_CITER_ELINKYES_ELINK(x)              (((uint16_t)(((uint16_t)(x)) << DMA_CITER_ELINKYES_ELINK_SHIFT)) & DMA_CITER_ELINKYES_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_CITER_ELINKYES */
+#define DMA_CITER_ELINKYES_COUNT                 (8U)
+
+/*! @name DLAST_SGA - TCD Last Destination Address Adjustment/Scatter Gather Address */
+/*! @{ */
+#define DMA_DLAST_SGA_DLASTSGA_MASK              (0xFFFFFFFFU)
+#define DMA_DLAST_SGA_DLASTSGA_SHIFT             (0U)
+#define DMA_DLAST_SGA_DLASTSGA(x)                (((uint32_t)(((uint32_t)(x)) << DMA_DLAST_SGA_DLASTSGA_SHIFT)) & DMA_DLAST_SGA_DLASTSGA_MASK)
+/*! @} */
+
+/* The count of DMA_DLAST_SGA */
+#define DMA_DLAST_SGA_COUNT                      (8U)
+
+/*! @name CSR - TCD Control and Status */
+/*! @{ */
+#define DMA_CSR_START_MASK                       (0x1U)
+#define DMA_CSR_START_SHIFT                      (0U)
+/*! START - Channel Start
+ *  0b0..The channel is not explicitly started.
+ *  0b1..The channel is explicitly started via a software initiated service request.
+ */
+#define DMA_CSR_START(x)                         (((uint16_t)(((uint16_t)(x)) << DMA_CSR_START_SHIFT)) & DMA_CSR_START_MASK)
+#define DMA_CSR_INTMAJOR_MASK                    (0x2U)
+#define DMA_CSR_INTMAJOR_SHIFT                   (1U)
+/*! INTMAJOR - Enable an interrupt when major iteration count completes.
+ *  0b0..The end-of-major loop interrupt is disabled.
+ *  0b1..The end-of-major loop interrupt is enabled.
+ */
+#define DMA_CSR_INTMAJOR(x)                      (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTMAJOR_SHIFT)) & DMA_CSR_INTMAJOR_MASK)
+#define DMA_CSR_INTHALF_MASK                     (0x4U)
+#define DMA_CSR_INTHALF_SHIFT                    (2U)
+/*! INTHALF - Enable an interrupt when major counter is half complete.
+ *  0b0..The half-point interrupt is disabled.
+ *  0b1..The half-point interrupt is enabled.
+ */
+#define DMA_CSR_INTHALF(x)                       (((uint16_t)(((uint16_t)(x)) << DMA_CSR_INTHALF_SHIFT)) & DMA_CSR_INTHALF_MASK)
+#define DMA_CSR_DREQ_MASK                        (0x8U)
+#define DMA_CSR_DREQ_SHIFT                       (3U)
+/*! DREQ - Disable Request
+ *  0b0..The channel's ERQ bit is not affected.
+ *  0b1..The channel's ERQ bit is cleared when the major loop is complete.
+ */
+#define DMA_CSR_DREQ(x)                          (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DREQ_SHIFT)) & DMA_CSR_DREQ_MASK)
+#define DMA_CSR_ESG_MASK                         (0x10U)
+#define DMA_CSR_ESG_SHIFT                        (4U)
+/*! ESG - Enable Scatter/Gather Processing
+ *  0b0..The current channel's TCD is normal format.
+ *  0b1..The current channel's TCD specifies a scatter gather format. The DLASTSGA field provides a memory pointer to the next TCD to be loaded into this channel after the major loop completes its execution.
+ */
+#define DMA_CSR_ESG(x)                           (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ESG_SHIFT)) & DMA_CSR_ESG_MASK)
+#define DMA_CSR_MAJORELINK_MASK                  (0x20U)
+#define DMA_CSR_MAJORELINK_SHIFT                 (5U)
+/*! MAJORELINK - Enable channel-to-channel linking on major loop complete
+ *  0b0..The channel-to-channel linking is disabled.
+ *  0b1..The channel-to-channel linking is enabled.
+ */
+#define DMA_CSR_MAJORELINK(x)                    (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORELINK_SHIFT)) & DMA_CSR_MAJORELINK_MASK)
+#define DMA_CSR_ACTIVE_MASK                      (0x40U)
+#define DMA_CSR_ACTIVE_SHIFT                     (6U)
+#define DMA_CSR_ACTIVE(x)                        (((uint16_t)(((uint16_t)(x)) << DMA_CSR_ACTIVE_SHIFT)) & DMA_CSR_ACTIVE_MASK)
+#define DMA_CSR_DONE_MASK                        (0x80U)
+#define DMA_CSR_DONE_SHIFT                       (7U)
+#define DMA_CSR_DONE(x)                          (((uint16_t)(((uint16_t)(x)) << DMA_CSR_DONE_SHIFT)) & DMA_CSR_DONE_MASK)
+#define DMA_CSR_MAJORLINKCH_MASK                 (0x700U)
+#define DMA_CSR_MAJORLINKCH_SHIFT                (8U)
+#define DMA_CSR_MAJORLINKCH(x)                   (((uint16_t)(((uint16_t)(x)) << DMA_CSR_MAJORLINKCH_SHIFT)) & DMA_CSR_MAJORLINKCH_MASK)
+#define DMA_CSR_BWC_MASK                         (0xC000U)
+#define DMA_CSR_BWC_SHIFT                        (14U)
+/*! BWC - Bandwidth Control
+ *  0b00..No eDMA engine stalls.
+ *  0b01..Reserved
+ *  0b10..eDMA engine stalls for 4 cycles after each R/W.
+ *  0b11..eDMA engine stalls for 8 cycles after each R/W.
+ */
+#define DMA_CSR_BWC(x)                           (((uint16_t)(((uint16_t)(x)) << DMA_CSR_BWC_SHIFT)) & DMA_CSR_BWC_MASK)
+/*! @} */
+
+/* The count of DMA_CSR */
+#define DMA_CSR_COUNT                            (8U)
+
+/*! @name BITER_ELINKNO - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Disabled) */
+/*! @{ */
+#define DMA_BITER_ELINKNO_BITER_MASK             (0x7FFFU)
+#define DMA_BITER_ELINKNO_BITER_SHIFT            (0U)
+#define DMA_BITER_ELINKNO_BITER(x)               (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_BITER_SHIFT)) & DMA_BITER_ELINKNO_BITER_MASK)
+#define DMA_BITER_ELINKNO_ELINK_MASK             (0x8000U)
+#define DMA_BITER_ELINKNO_ELINK_SHIFT            (15U)
+/*! ELINK - Enables channel-to-channel linking on minor loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_BITER_ELINKNO_ELINK(x)               (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKNO_ELINK_SHIFT)) & DMA_BITER_ELINKNO_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_BITER_ELINKNO */
+#define DMA_BITER_ELINKNO_COUNT                  (8U)
+
+/*! @name BITER_ELINKYES - TCD Beginning Minor Loop Link, Major Loop Count (Channel Linking Enabled) */
+/*! @{ */
+#define DMA_BITER_ELINKYES_BITER_MASK            (0x1FFU)
+#define DMA_BITER_ELINKYES_BITER_SHIFT           (0U)
+#define DMA_BITER_ELINKYES_BITER(x)              (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_BITER_SHIFT)) & DMA_BITER_ELINKYES_BITER_MASK)
+#define DMA_BITER_ELINKYES_LINKCH_MASK           (0xE00U)
+#define DMA_BITER_ELINKYES_LINKCH_SHIFT          (9U)
+#define DMA_BITER_ELINKYES_LINKCH(x)             (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_LINKCH_SHIFT)) & DMA_BITER_ELINKYES_LINKCH_MASK)
+#define DMA_BITER_ELINKYES_ELINK_MASK            (0x8000U)
+#define DMA_BITER_ELINKYES_ELINK_SHIFT           (15U)
+/*! ELINK - Enables channel-to-channel linking on minor loop complete
+ *  0b0..The channel-to-channel linking is disabled
+ *  0b1..The channel-to-channel linking is enabled
+ */
+#define DMA_BITER_ELINKYES_ELINK(x)              (((uint16_t)(((uint16_t)(x)) << DMA_BITER_ELINKYES_ELINK_SHIFT)) & DMA_BITER_ELINKYES_ELINK_MASK)
+/*! @} */
+
+/* The count of DMA_BITER_ELINKYES */
+#define DMA_BITER_ELINKYES_COUNT                 (8U)
+
+
+/*!
+ * @}
+ */ /* end of group DMA_Register_Masks */
+
+
+/* DMA - Peripheral instance base addresses */
+/** Peripheral DMA1 base address */
+#define DMA1_BASE                                (0x41008000u)
+/** Peripheral DMA1 base pointer */
+#define DMA1                                     ((DMA_Type *)DMA1_BASE)
+/** Array initializer of DMA peripheral base addresses */
+#define DMA_BASE_ADDRS                           { 0u, DMA1_BASE }
+/** Array initializer of DMA peripheral base pointers */
+#define DMA_BASE_PTRS                            { (DMA_Type *)0u, DMA1 }
+/** Interrupt vectors for the DMA peripheral type */
+#define DMA_CHN_IRQS                             { { NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn }, { DMA1_04_IRQn, DMA1_15_IRQn, DMA1_26_IRQn, DMA1_37_IRQn, DMA1_04_IRQn, DMA1_15_IRQn, DMA1_26_IRQn, DMA1_37_IRQn } }
+#define DMA_ERROR_IRQS                           { NotAvail_IRQn, DMA1_Error_IRQn }
+
+/*!
+ * @}
+ */ /* end of group DMA_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- DMAMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMAMUX_Peripheral_Access_Layer DMAMUX Peripheral Access Layer
+ * @{
+ */
+
+/** DMAMUX - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CHCFG[8];                          /**< Channel 0 Configuration Register..Channel 7 Configuration Register, array offset: 0x0, array step: 0x4 */
+} DMAMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- DMAMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup DMAMUX_Register_Masks DMAMUX Register Masks
+ * @{
+ */
+
+/*! @name CHCFG - Channel 0 Configuration Register..Channel 7 Configuration Register */
+/*! @{ */
+#define DMAMUX_CHCFG_SOURCE_MASK                 (0x1FU)
+#define DMAMUX_CHCFG_SOURCE_SHIFT                (0U)
+#define DMAMUX_CHCFG_SOURCE(x)                   (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_SOURCE_SHIFT)) & DMAMUX_CHCFG_SOURCE_MASK)
+#define DMAMUX_CHCFG_A_ON_MASK                   (0x20000000U)
+#define DMAMUX_CHCFG_A_ON_SHIFT                  (29U)
+/*! A_ON - DMA Channel Always Enable
+ *  0b0..DMA Channel Always ON function is disabled
+ *  0b1..DMA Channel Always ON function is enabled
+ */
+#define DMAMUX_CHCFG_A_ON(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_A_ON_SHIFT)) & DMAMUX_CHCFG_A_ON_MASK)
+#define DMAMUX_CHCFG_TRIG_MASK                   (0x40000000U)
+#define DMAMUX_CHCFG_TRIG_SHIFT                  (30U)
+/*! TRIG - DMA Channel Trigger Enable
+ *  0b0..Triggering is disabled. If triggering is disabled and ENBL is set, the DMA Channel will simply route the specified source to the DMA channel. (Normal mode)
+ *  0b1..Triggering is enabled. If triggering is enabled and ENBL is set, the DMA_CH_MUX is in Periodic Trigger mode.
+ */
+#define DMAMUX_CHCFG_TRIG(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_TRIG_SHIFT)) & DMAMUX_CHCFG_TRIG_MASK)
+#define DMAMUX_CHCFG_ENBL_MASK                   (0x80000000U)
+#define DMAMUX_CHCFG_ENBL_SHIFT                  (31U)
+/*! ENBL - DMA Mux Channel Enable
+ *  0b0..DMA Mux channel is disabled
+ *  0b1..DMA Mux channel is enabled
+ */
+#define DMAMUX_CHCFG_ENBL(x)                     (((uint32_t)(((uint32_t)(x)) << DMAMUX_CHCFG_ENBL_SHIFT)) & DMAMUX_CHCFG_ENBL_MASK)
+/*! @} */
+
+/* The count of DMAMUX_CHCFG */
+#define DMAMUX_CHCFG_COUNT                       (8U)
+
+
+/*!
+ * @}
+ */ /* end of group DMAMUX_Register_Masks */
+
+
+/* DMAMUX - Peripheral instance base addresses */
+/** Peripheral DMAMUX1 base address */
+#define DMAMUX1_BASE                             (0x41021000u)
+/** Peripheral DMAMUX1 base pointer */
+#define DMAMUX1                                  ((DMAMUX_Type *)DMAMUX1_BASE)
+/** Array initializer of DMAMUX peripheral base addresses */
+#define DMAMUX_BASE_ADDRS                        { 0u, DMAMUX1_BASE }
+/** Array initializer of DMAMUX peripheral base pointers */
+#define DMAMUX_BASE_PTRS                         { (DMAMUX_Type *)0u, DMAMUX1 }
+
+/*!
+ * @}
+ */ /* end of group DMAMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EMVSIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EMVSIM_Peripheral_Access_Layer EMVSIM Peripheral Access Layer
+ * @{
+ */
+
+/** EMVSIM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VER_ID;                            /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CLKCFG;                            /**< Clock Configuration Register, offset: 0x8 */
+  __IO uint32_t DIVISOR;                           /**< Baud Rate Divisor Register, offset: 0xC */
+  __IO uint32_t CTRL;                              /**< Control Register, offset: 0x10 */
+  __IO uint32_t INT_MASK;                          /**< Interrupt Mask Register, offset: 0x14 */
+  __IO uint32_t RX_THD;                            /**< Receiver Threshold Register, offset: 0x18 */
+  __IO uint32_t TX_THD;                            /**< Transmitter Threshold Register, offset: 0x1C */
+  __IO uint32_t RX_STATUS;                         /**< Receive Status Register, offset: 0x20 */
+  __IO uint32_t TX_STATUS;                         /**< Transmitter Status Register, offset: 0x24 */
+  __IO uint32_t PCSR;                              /**< Port Control and Status Register, offset: 0x28 */
+  __I  uint32_t RX_BUF;                            /**< Receive Data Read Buffer, offset: 0x2C */
+  __O  uint32_t TX_BUF;                            /**< Transmit Data Buffer, offset: 0x30 */
+  __IO uint32_t TX_GETU;                           /**< Transmitter Guard ETU Value Register, offset: 0x34 */
+  __IO uint32_t CWT_VAL;                           /**< Character Wait Time Value Register, offset: 0x38 */
+  __IO uint32_t BWT_VAL;                           /**< Block Wait Time Value Register, offset: 0x3C */
+  __IO uint32_t BGT_VAL;                           /**< Block Guard Time Value Register, offset: 0x40 */
+  __IO uint32_t GPCNT0_VAL;                        /**< General Purpose Counter 0 Timeout Value Register, offset: 0x44 */
+  __IO uint32_t GPCNT1_VAL;                        /**< General Purpose Counter 1 Timeout Value, offset: 0x48 */
+} EMVSIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EMVSIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EMVSIM_Register_Masks EMVSIM Register Masks
+ * @{
+ */
+
+/*! @name VER_ID - Version ID Register */
+/*! @{ */
+#define EMVSIM_VER_ID_VER_MASK                   (0xFFFFFFFFU)
+#define EMVSIM_VER_ID_VER_SHIFT                  (0U)
+#define EMVSIM_VER_ID_VER(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_VER_ID_VER_SHIFT)) & EMVSIM_VER_ID_VER_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define EMVSIM_PARAM_RX_FIFO_DEPTH_MASK          (0xFFU)
+#define EMVSIM_PARAM_RX_FIFO_DEPTH_SHIFT         (0U)
+#define EMVSIM_PARAM_RX_FIFO_DEPTH(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_PARAM_RX_FIFO_DEPTH_SHIFT)) & EMVSIM_PARAM_RX_FIFO_DEPTH_MASK)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH_MASK          (0xFF00U)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH_SHIFT         (8U)
+#define EMVSIM_PARAM_TX_FIFO_DEPTH(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_PARAM_TX_FIFO_DEPTH_SHIFT)) & EMVSIM_PARAM_TX_FIFO_DEPTH_MASK)
+/*! @} */
+
+/*! @name CLKCFG - Clock Configuration Register */
+/*! @{ */
+#define EMVSIM_CLKCFG_CLK_PRSC_MASK              (0xFFU)
+#define EMVSIM_CLKCFG_CLK_PRSC_SHIFT             (0U)
+/*! CLK_PRSC - Clock Prescaler Value
+ *  0b00000010..Divide by 2
+ */
+#define EMVSIM_CLKCFG_CLK_PRSC(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_CLK_PRSC_SHIFT)) & EMVSIM_CLKCFG_CLK_PRSC_MASK)
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL_MASK        (0x300U)
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL_SHIFT       (8U)
+/*! GPCNT1_CLK_SEL - General Purpose Counter 1 Clock Select
+ *  0b00..Disabled / Reset (default)
+ *  0b01..Card Clock
+ *  0b10..Receive Clock
+ *  0b11..ETU Clock (transmit clock)
+ */
+#define EMVSIM_CLKCFG_GPCNT1_CLK_SEL(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_GPCNT1_CLK_SEL_SHIFT)) & EMVSIM_CLKCFG_GPCNT1_CLK_SEL_MASK)
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL_MASK        (0xC00U)
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL_SHIFT       (10U)
+/*! GPCNT0_CLK_SEL - General Purpose Counter 0 Clock Select
+ *  0b00..Disabled / Reset (default)
+ *  0b01..Card Clock
+ *  0b10..Receive Clock
+ *  0b11..ETU Clock (transmit clock)
+ */
+#define EMVSIM_CLKCFG_GPCNT0_CLK_SEL(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_CLKCFG_GPCNT0_CLK_SEL_SHIFT)) & EMVSIM_CLKCFG_GPCNT0_CLK_SEL_MASK)
+/*! @} */
+
+/*! @name DIVISOR - Baud Rate Divisor Register */
+/*! @{ */
+#define EMVSIM_DIVISOR_DIVISOR_VALUE_MASK        (0x1FFU)
+#define EMVSIM_DIVISOR_DIVISOR_VALUE_SHIFT       (0U)
+/*! DIVISOR_VALUE - Divisor (F/D) Value
+ *  0b000000000-0b000000100..Invalid. As per ISO 7816 specification, minimum value of F/D is 5
+ *  0b101110100..Divisor value for F = 372 and D = 1 (default)
+ */
+#define EMVSIM_DIVISOR_DIVISOR_VALUE(x)          (((uint32_t)(((uint32_t)(x)) << EMVSIM_DIVISOR_DIVISOR_VALUE_SHIFT)) & EMVSIM_DIVISOR_DIVISOR_VALUE_MASK)
+/*! @} */
+
+/*! @name CTRL - Control Register */
+/*! @{ */
+#define EMVSIM_CTRL_IC_MASK                      (0x1U)
+#define EMVSIM_CTRL_IC_SHIFT                     (0U)
+/*! IC - Inverse Convention
+ *  0b0..Direction convention transfers enabled (default)
+ *  0b1..Inverse convention transfers enabled
+ */
+#define EMVSIM_CTRL_IC(x)                        (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_IC_SHIFT)) & EMVSIM_CTRL_IC_MASK)
+#define EMVSIM_CTRL_ICM_MASK                     (0x2U)
+#define EMVSIM_CTRL_ICM_SHIFT                    (1U)
+/*! ICM - Initial Character Mode
+ *  0b0..Initial Character Mode disabled
+ *  0b1..Initial Character Mode enabled (default)
+ */
+#define EMVSIM_CTRL_ICM(x)                       (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ICM_SHIFT)) & EMVSIM_CTRL_ICM_MASK)
+#define EMVSIM_CTRL_ANACK_MASK                   (0x4U)
+#define EMVSIM_CTRL_ANACK_SHIFT                  (2U)
+/*! ANACK - Auto NACK Enable
+ *  0b0..NACK generation on errors disabled
+ *  0b1..NACK generation on errors enabled (default)
+ */
+#define EMVSIM_CTRL_ANACK(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ANACK_SHIFT)) & EMVSIM_CTRL_ANACK_MASK)
+#define EMVSIM_CTRL_ONACK_MASK                   (0x8U)
+#define EMVSIM_CTRL_ONACK_SHIFT                  (3U)
+/*! ONACK - Overrun NACK Enable
+ *  0b0..NACK generation on overrun is disabled (default)
+ *  0b1..NACK generation on overrun is enabled
+ */
+#define EMVSIM_CTRL_ONACK(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_ONACK_SHIFT)) & EMVSIM_CTRL_ONACK_MASK)
+#define EMVSIM_CTRL_FLSH_RX_MASK                 (0x100U)
+#define EMVSIM_CTRL_FLSH_RX_SHIFT                (8U)
+/*! FLSH_RX - Flush Receiver Bit
+ *  0b0..EMV SIM Receiver normal operation (default)
+ *  0b1..EMV SIM Receiver held in Reset
+ */
+#define EMVSIM_CTRL_FLSH_RX(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_FLSH_RX_SHIFT)) & EMVSIM_CTRL_FLSH_RX_MASK)
+#define EMVSIM_CTRL_FLSH_TX_MASK                 (0x200U)
+#define EMVSIM_CTRL_FLSH_TX_SHIFT                (9U)
+/*! FLSH_TX - Flush Transmitter Bit
+ *  0b0..EMV SIM Transmitter normal operation (default)
+ *  0b1..EMV SIM Transmitter held in Reset
+ */
+#define EMVSIM_CTRL_FLSH_TX(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_FLSH_TX_SHIFT)) & EMVSIM_CTRL_FLSH_TX_MASK)
+#define EMVSIM_CTRL_SW_RST_MASK                  (0x400U)
+#define EMVSIM_CTRL_SW_RST_SHIFT                 (10U)
+/*! SW_RST - Software Reset Bit
+ *  0b0..EMV SIM Normal operation (default)
+ *  0b1..EMV SIM held in Reset
+ */
+#define EMVSIM_CTRL_SW_RST(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_SW_RST_SHIFT)) & EMVSIM_CTRL_SW_RST_MASK)
+#define EMVSIM_CTRL_KILL_CLOCKS_MASK             (0x800U)
+#define EMVSIM_CTRL_KILL_CLOCKS_SHIFT            (11U)
+/*! KILL_CLOCKS - Kill all internal clocks
+ *  0b0..EMV SIM input clock enabled (default)
+ *  0b1..EMV SIM input clock is disabled
+ */
+#define EMVSIM_CTRL_KILL_CLOCKS(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_KILL_CLOCKS_SHIFT)) & EMVSIM_CTRL_KILL_CLOCKS_MASK)
+#define EMVSIM_CTRL_DOZE_EN_MASK                 (0x1000U)
+#define EMVSIM_CTRL_DOZE_EN_SHIFT                (12U)
+/*! DOZE_EN - Doze Enable
+ *  0b0..DOZE instruction will gate all internal EMV SIM clocks as well as the Smart Card clock when the transmit FIFO is empty (default)
+ *  0b1..DOZE instruction has no effect on EMV SIM module
+ */
+#define EMVSIM_CTRL_DOZE_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_DOZE_EN_SHIFT)) & EMVSIM_CTRL_DOZE_EN_MASK)
+#define EMVSIM_CTRL_STOP_EN_MASK                 (0x2000U)
+#define EMVSIM_CTRL_STOP_EN_SHIFT                (13U)
+/*! STOP_EN - STOP Enable
+ *  0b0..STOP instruction shuts down all EMV SIM clocks (default)
+ *  0b1..STOP instruction shuts down all clocks except for the Smart Card Clock (SCK) (clock provided to Smart Card)
+ */
+#define EMVSIM_CTRL_STOP_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_STOP_EN_SHIFT)) & EMVSIM_CTRL_STOP_EN_MASK)
+#define EMVSIM_CTRL_RCV_EN_MASK                  (0x10000U)
+#define EMVSIM_CTRL_RCV_EN_SHIFT                 (16U)
+/*! RCV_EN - Receiver Enable
+ *  0b0..EMV SIM Receiver disabled (default)
+ *  0b1..EMV SIM Receiver enabled
+ */
+#define EMVSIM_CTRL_RCV_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RCV_EN_SHIFT)) & EMVSIM_CTRL_RCV_EN_MASK)
+#define EMVSIM_CTRL_XMT_EN_MASK                  (0x20000U)
+#define EMVSIM_CTRL_XMT_EN_SHIFT                 (17U)
+/*! XMT_EN - Transmitter Enable
+ *  0b0..EMV SIM Transmitter disabled (default)
+ *  0b1..EMV SIM Transmitter enabled
+ */
+#define EMVSIM_CTRL_XMT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_XMT_EN_SHIFT)) & EMVSIM_CTRL_XMT_EN_MASK)
+#define EMVSIM_CTRL_RCVR_11_MASK                 (0x40000U)
+#define EMVSIM_CTRL_RCVR_11_SHIFT                (18U)
+/*! RCVR_11 - Receiver 11 ETU Mode Enable
+ *  0b0..Receiver configured for 12 ETU operation mode (default)
+ *  0b1..Receiver configured for 11 ETU operation mode
+ */
+#define EMVSIM_CTRL_RCVR_11(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RCVR_11_SHIFT)) & EMVSIM_CTRL_RCVR_11_MASK)
+#define EMVSIM_CTRL_RX_DMA_EN_MASK               (0x80000U)
+#define EMVSIM_CTRL_RX_DMA_EN_SHIFT              (19U)
+/*! RX_DMA_EN - Receive DMA Enable
+ *  0b0..No DMA Read Request asserted for Receiver (default)
+ *  0b1..DMA Read Request asserted for Receiver
+ */
+#define EMVSIM_CTRL_RX_DMA_EN(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_RX_DMA_EN_SHIFT)) & EMVSIM_CTRL_RX_DMA_EN_MASK)
+#define EMVSIM_CTRL_TX_DMA_EN_MASK               (0x100000U)
+#define EMVSIM_CTRL_TX_DMA_EN_SHIFT              (20U)
+/*! TX_DMA_EN - Transmit DMA Enable
+ *  0b0..No DMA Write Request asserted for Transmitter (default)
+ *  0b1..DMA Write Request asserted for Transmitter
+ */
+#define EMVSIM_CTRL_TX_DMA_EN(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_TX_DMA_EN_SHIFT)) & EMVSIM_CTRL_TX_DMA_EN_MASK)
+#define EMVSIM_CTRL_INV_CRC_VAL_MASK             (0x1000000U)
+#define EMVSIM_CTRL_INV_CRC_VAL_SHIFT            (24U)
+/*! INV_CRC_VAL - Invert bits in the CRC Output Value
+ *  0b0..Bits in CRC Output value will not be inverted.
+ *  0b1..Bits in CRC Output value will be inverted. (default)
+ */
+#define EMVSIM_CTRL_INV_CRC_VAL(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_INV_CRC_VAL_SHIFT)) & EMVSIM_CTRL_INV_CRC_VAL_MASK)
+#define EMVSIM_CTRL_CRC_OUT_FLIP_MASK            (0x2000000U)
+#define EMVSIM_CTRL_CRC_OUT_FLIP_SHIFT           (25U)
+/*! CRC_OUT_FLIP - CRC Output Value Bit Reversal or Flip
+ *  0b0..Bits within the CRC output bytes will not be reversed i.e. 15:0 will remain 15:0 (default)
+ *  0b1..Bits within the CRC output bytes will be reversed i.e. 15:0 will become {8:15,0:7}
+ */
+#define EMVSIM_CTRL_CRC_OUT_FLIP(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_OUT_FLIP_SHIFT)) & EMVSIM_CTRL_CRC_OUT_FLIP_MASK)
+#define EMVSIM_CTRL_CRC_IN_FLIP_MASK             (0x4000000U)
+#define EMVSIM_CTRL_CRC_IN_FLIP_SHIFT            (26U)
+/*! CRC_IN_FLIP - CRC Input Byte's Bit Reversal or Flip Control
+ *  0b0..Bits in the input byte will not be reversed (i.e. 7:0 will remain 7:0) before the CRC calculation (default)
+ *  0b1..Bits in the input byte will be reversed (i.e. 7:0 will become 0:7) before CRC calculation
+ */
+#define EMVSIM_CTRL_CRC_IN_FLIP(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_IN_FLIP_SHIFT)) & EMVSIM_CTRL_CRC_IN_FLIP_MASK)
+#define EMVSIM_CTRL_CWT_EN_MASK                  (0x8000000U)
+#define EMVSIM_CTRL_CWT_EN_SHIFT                 (27U)
+/*! CWT_EN - Character Wait Time Counter Enable
+ *  0b0..Character Wait time Counter is disabled (default)
+ *  0b1..Character Wait time counter is enabled
+ */
+#define EMVSIM_CTRL_CWT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CWT_EN_SHIFT)) & EMVSIM_CTRL_CWT_EN_MASK)
+#define EMVSIM_CTRL_LRC_EN_MASK                  (0x10000000U)
+#define EMVSIM_CTRL_LRC_EN_SHIFT                 (28U)
+/*! LRC_EN - LRC Enable
+ *  0b0..8-bit Linear Redundancy Checking disabled (default)
+ *  0b1..8-bit Linear Redundancy Checking enabled
+ */
+#define EMVSIM_CTRL_LRC_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_LRC_EN_SHIFT)) & EMVSIM_CTRL_LRC_EN_MASK)
+#define EMVSIM_CTRL_CRC_EN_MASK                  (0x20000000U)
+#define EMVSIM_CTRL_CRC_EN_SHIFT                 (29U)
+/*! CRC_EN - CRC Enable
+ *  0b0..16-bit Cyclic Redundancy Checking disabled (default)
+ *  0b1..16-bit Cyclic Redundancy Checking enabled
+ */
+#define EMVSIM_CTRL_CRC_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_CRC_EN_SHIFT)) & EMVSIM_CTRL_CRC_EN_MASK)
+#define EMVSIM_CTRL_XMT_CRC_LRC_MASK             (0x40000000U)
+#define EMVSIM_CTRL_XMT_CRC_LRC_SHIFT            (30U)
+/*! XMT_CRC_LRC - Transmit CRC or LRC Enable
+ *  0b0..No CRC or LRC value is transmitted (default)
+ *  0b1..Transmit LRC or CRC info when FIFO empties (whichever is enabled)
+ */
+#define EMVSIM_CTRL_XMT_CRC_LRC(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_XMT_CRC_LRC_SHIFT)) & EMVSIM_CTRL_XMT_CRC_LRC_MASK)
+#define EMVSIM_CTRL_BWT_EN_MASK                  (0x80000000U)
+#define EMVSIM_CTRL_BWT_EN_SHIFT                 (31U)
+/*! BWT_EN - Block Wait Time Counter Enable
+ *  0b0..Disable BWT, BGT Counters (default)
+ *  0b1..Enable BWT, BGT Counters
+ */
+#define EMVSIM_CTRL_BWT_EN(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CTRL_BWT_EN_SHIFT)) & EMVSIM_CTRL_BWT_EN_MASK)
+/*! @} */
+
+/*! @name INT_MASK - Interrupt Mask Register */
+/*! @{ */
+#define EMVSIM_INT_MASK_RDT_IM_MASK              (0x1U)
+#define EMVSIM_INT_MASK_RDT_IM_SHIFT             (0U)
+/*! RDT_IM - Receive Data Threshold Interrupt Mask
+ *  0b0..RDTF interrupt enabled
+ *  0b1..RDTF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RDT_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RDT_IM_SHIFT)) & EMVSIM_INT_MASK_RDT_IM_MASK)
+#define EMVSIM_INT_MASK_TC_IM_MASK               (0x2U)
+#define EMVSIM_INT_MASK_TC_IM_SHIFT              (1U)
+/*! TC_IM - Transmit Complete Interrupt Mask
+ *  0b0..TCF interrupt enabled
+ *  0b1..TCF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TC_IM(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TC_IM_SHIFT)) & EMVSIM_INT_MASK_TC_IM_MASK)
+#define EMVSIM_INT_MASK_RFO_IM_MASK              (0x4U)
+#define EMVSIM_INT_MASK_RFO_IM_SHIFT             (2U)
+/*! RFO_IM - Receive FIFO Overflow Interrupt Mask
+ *  0b0..RFO interrupt enabled
+ *  0b1..RFO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RFO_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RFO_IM_SHIFT)) & EMVSIM_INT_MASK_RFO_IM_MASK)
+#define EMVSIM_INT_MASK_ETC_IM_MASK              (0x8U)
+#define EMVSIM_INT_MASK_ETC_IM_SHIFT             (3U)
+/*! ETC_IM - Early Transmit Complete Interrupt Mask
+ *  0b0..ETC interrupt enabled
+ *  0b1..ETC interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_ETC_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_ETC_IM_SHIFT)) & EMVSIM_INT_MASK_ETC_IM_MASK)
+#define EMVSIM_INT_MASK_TFE_IM_MASK              (0x10U)
+#define EMVSIM_INT_MASK_TFE_IM_SHIFT             (4U)
+/*! TFE_IM - Transmit FIFO Empty Interrupt Mask
+ *  0b0..TFE interrupt enabled
+ *  0b1..TFE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TFE_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TFE_IM_SHIFT)) & EMVSIM_INT_MASK_TFE_IM_MASK)
+#define EMVSIM_INT_MASK_TNACK_IM_MASK            (0x20U)
+#define EMVSIM_INT_MASK_TNACK_IM_SHIFT           (5U)
+/*! TNACK_IM - Transmit NACK Threshold Interrupt Mask
+ *  0b0..TNTE interrupt enabled
+ *  0b1..TNTE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TNACK_IM(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TNACK_IM_SHIFT)) & EMVSIM_INT_MASK_TNACK_IM_MASK)
+#define EMVSIM_INT_MASK_TFF_IM_MASK              (0x40U)
+#define EMVSIM_INT_MASK_TFF_IM_SHIFT             (6U)
+/*! TFF_IM - Transmit FIFO Full Interrupt Mask
+ *  0b0..TFF interrupt enabled
+ *  0b1..TFF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TFF_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TFF_IM_SHIFT)) & EMVSIM_INT_MASK_TFF_IM_MASK)
+#define EMVSIM_INT_MASK_TDT_IM_MASK              (0x80U)
+#define EMVSIM_INT_MASK_TDT_IM_SHIFT             (7U)
+/*! TDT_IM - Transmit Data Threshold Interrupt Mask
+ *  0b0..TDTF interrupt enabled
+ *  0b1..TDTF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_TDT_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_TDT_IM_SHIFT)) & EMVSIM_INT_MASK_TDT_IM_MASK)
+#define EMVSIM_INT_MASK_GPCNT0_IM_MASK           (0x100U)
+#define EMVSIM_INT_MASK_GPCNT0_IM_SHIFT          (8U)
+/*! GPCNT0_IM - General Purpose Timer 0 Timeout Interrupt Mask
+ *  0b0..GPCNT0_TO interrupt enabled
+ *  0b1..GPCNT0_TO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_GPCNT0_IM(x)             (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_GPCNT0_IM_SHIFT)) & EMVSIM_INT_MASK_GPCNT0_IM_MASK)
+#define EMVSIM_INT_MASK_CWT_ERR_IM_MASK          (0x200U)
+#define EMVSIM_INT_MASK_CWT_ERR_IM_SHIFT         (9U)
+/*! CWT_ERR_IM - Character Wait Time Error Interrupt Mask
+ *  0b0..CWT_ERR interrupt enabled
+ *  0b1..CWT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_CWT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_CWT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_CWT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_RNACK_IM_MASK            (0x400U)
+#define EMVSIM_INT_MASK_RNACK_IM_SHIFT           (10U)
+/*! RNACK_IM - Receiver NACK Threshold Interrupt Mask
+ *  0b0..RTE interrupt enabled
+ *  0b1..RTE interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RNACK_IM(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RNACK_IM_SHIFT)) & EMVSIM_INT_MASK_RNACK_IM_MASK)
+#define EMVSIM_INT_MASK_BWT_ERR_IM_MASK          (0x800U)
+#define EMVSIM_INT_MASK_BWT_ERR_IM_SHIFT         (11U)
+/*! BWT_ERR_IM - Block Wait Time Error Interrupt Mask
+ *  0b0..BWT_ERR interrupt enabled
+ *  0b1..BWT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_BWT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_BWT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_BWT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_BGT_ERR_IM_MASK          (0x1000U)
+#define EMVSIM_INT_MASK_BGT_ERR_IM_SHIFT         (12U)
+/*! BGT_ERR_IM - Block Guard Time Error Interrupt
+ *  0b0..BGT_ERR interrupt enabled
+ *  0b1..BGT_ERR interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_BGT_ERR_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_BGT_ERR_IM_SHIFT)) & EMVSIM_INT_MASK_BGT_ERR_IM_MASK)
+#define EMVSIM_INT_MASK_GPCNT1_IM_MASK           (0x2000U)
+#define EMVSIM_INT_MASK_GPCNT1_IM_SHIFT          (13U)
+/*! GPCNT1_IM - General Purpose Counter 1 Timeout Interrupt Mask
+ *  0b0..GPCNT1_TO interrupt enabled
+ *  0b1..GPCNT1_TO interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_GPCNT1_IM(x)             (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_GPCNT1_IM_SHIFT)) & EMVSIM_INT_MASK_GPCNT1_IM_MASK)
+#define EMVSIM_INT_MASK_RX_DATA_IM_MASK          (0x4000U)
+#define EMVSIM_INT_MASK_RX_DATA_IM_SHIFT         (14U)
+/*! RX_DATA_IM - Receive Data Interrupt Mask
+ *  0b0..RX_DATA interrupt enabled
+ *  0b1..RX_DATA interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_RX_DATA_IM(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_RX_DATA_IM_SHIFT)) & EMVSIM_INT_MASK_RX_DATA_IM_MASK)
+#define EMVSIM_INT_MASK_PEF_IM_MASK              (0x8000U)
+#define EMVSIM_INT_MASK_PEF_IM_SHIFT             (15U)
+/*! PEF_IM - Parity Error Interrupt Mask
+ *  0b0..PEF interrupt enabled
+ *  0b1..PEF interrupt masked (default)
+ */
+#define EMVSIM_INT_MASK_PEF_IM(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_INT_MASK_PEF_IM_SHIFT)) & EMVSIM_INT_MASK_PEF_IM_MASK)
+/*! @} */
+
+/*! @name RX_THD - Receiver Threshold Register */
+/*! @{ */
+#define EMVSIM_RX_THD_RDT_MASK                   (0xFU)
+#define EMVSIM_RX_THD_RDT_SHIFT                  (0U)
+#define EMVSIM_RX_THD_RDT(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_THD_RDT_SHIFT)) & EMVSIM_RX_THD_RDT_MASK)
+#define EMVSIM_RX_THD_RNCK_THD_MASK              (0xF00U)
+#define EMVSIM_RX_THD_RNCK_THD_SHIFT             (8U)
+/*! RNCK_THD - Receiver NACK Threshold Value
+ *  0b0000..Zero Threshold. RTE will not be set
+ */
+#define EMVSIM_RX_THD_RNCK_THD(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_THD_RNCK_THD_SHIFT)) & EMVSIM_RX_THD_RNCK_THD_MASK)
+/*! @} */
+
+/*! @name TX_THD - Transmitter Threshold Register */
+/*! @{ */
+#define EMVSIM_TX_THD_TDT_MASK                   (0xFU)
+#define EMVSIM_TX_THD_TDT_SHIFT                  (0U)
+#define EMVSIM_TX_THD_TDT(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_THD_TDT_SHIFT)) & EMVSIM_TX_THD_TDT_MASK)
+#define EMVSIM_TX_THD_TNCK_THD_MASK              (0xF00U)
+#define EMVSIM_TX_THD_TNCK_THD_SHIFT             (8U)
+/*! TNCK_THD - Transmitter NACK Threshold Value
+ *  0b0000..TNTE will never be set; retransmission after NACK reception is disabled.
+ *  0b0001..TNTE will be set after 1 nack is received; 0 retransmissions occurs.
+ *  0b0010..TNTE will be set after 2 nacks are received; at most 1 retransmission occurs.
+ *  0b0011..TNTE will be set after 3 nacks are received; at most 2 retransmissions occurs.
+ *  0b1111..TNTE will be set after 15 nacks are received; at most 14 retransmissions occurs.
+ */
+#define EMVSIM_TX_THD_TNCK_THD(x)                (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_THD_TNCK_THD_SHIFT)) & EMVSIM_TX_THD_TNCK_THD_MASK)
+/*! @} */
+
+/*! @name RX_STATUS - Receive Status Register */
+/*! @{ */
+#define EMVSIM_RX_STATUS_RFO_MASK                (0x1U)
+#define EMVSIM_RX_STATUS_RFO_SHIFT               (0U)
+/*! RFO - Receive FIFO Overflow Flag
+ *  0b0..No overrun error has occurred (default)
+ *  0b1..A byte was received when the received FIFO was already full
+ */
+#define EMVSIM_RX_STATUS_RFO(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RFO_SHIFT)) & EMVSIM_RX_STATUS_RFO_MASK)
+#define EMVSIM_RX_STATUS_RX_DATA_MASK            (0x10U)
+#define EMVSIM_RX_STATUS_RX_DATA_SHIFT           (4U)
+/*! RX_DATA - Receive Data Interrupt Flag
+ *  0b0..No new byte is received
+ *  0b1..New byte is received ans stored in Receive FIFO
+ */
+#define EMVSIM_RX_STATUS_RX_DATA(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_DATA_SHIFT)) & EMVSIM_RX_STATUS_RX_DATA_MASK)
+#define EMVSIM_RX_STATUS_RDTF_MASK               (0x20U)
+#define EMVSIM_RX_STATUS_RDTF_SHIFT              (5U)
+/*! RDTF - Receive Data Threshold Interrupt Flag
+ *  0b0..Number of unread bytes in receive FIFO less than the value set by RDT[3:0] (default).
+ *  0b1..Number of unread bytes in receive FIFO greater or than equal to value set by RDT[3:0].
+ */
+#define EMVSIM_RX_STATUS_RDTF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RDTF_SHIFT)) & EMVSIM_RX_STATUS_RDTF_MASK)
+#define EMVSIM_RX_STATUS_LRC_OK_MASK             (0x40U)
+#define EMVSIM_RX_STATUS_LRC_OK_SHIFT            (6U)
+/*! LRC_OK - LRC Check OK Flag
+ *  0b0..Current LRC value does not match remainder.
+ *  0b1..Current calculated LRC value matches the expected result (i.e. zero).
+ */
+#define EMVSIM_RX_STATUS_LRC_OK(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_LRC_OK_SHIFT)) & EMVSIM_RX_STATUS_LRC_OK_MASK)
+#define EMVSIM_RX_STATUS_CRC_OK_MASK             (0x80U)
+#define EMVSIM_RX_STATUS_CRC_OK_SHIFT            (7U)
+/*! CRC_OK - CRC Check OK Flag
+ *  0b0..Current CRC value does not match remainder.
+ *  0b1..Current calculated CRC value matches the expected result.
+ */
+#define EMVSIM_RX_STATUS_CRC_OK(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_CRC_OK_SHIFT)) & EMVSIM_RX_STATUS_CRC_OK_MASK)
+#define EMVSIM_RX_STATUS_CWT_ERR_MASK            (0x100U)
+#define EMVSIM_RX_STATUS_CWT_ERR_SHIFT           (8U)
+/*! CWT_ERR - Character Wait Time Error Flag
+ *  0b0..No CWT violation has occurred (default).
+ *  0b1..Time between two consecutive characters has exceeded the value in CHAR_WAIT.
+ */
+#define EMVSIM_RX_STATUS_CWT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_CWT_ERR_SHIFT)) & EMVSIM_RX_STATUS_CWT_ERR_MASK)
+#define EMVSIM_RX_STATUS_RTE_MASK                (0x200U)
+#define EMVSIM_RX_STATUS_RTE_SHIFT               (9U)
+/*! RTE - Received NACK Threshold Error Flag
+ *  0b0..Number of NACKs generated by the receiver is less than the value programmed in RTH[3:0]
+ *  0b1..Number of NACKs generated by the receiver is equal to the value programmed in RTH[3:0]
+ */
+#define EMVSIM_RX_STATUS_RTE(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RTE_SHIFT)) & EMVSIM_RX_STATUS_RTE_MASK)
+#define EMVSIM_RX_STATUS_BWT_ERR_MASK            (0x400U)
+#define EMVSIM_RX_STATUS_BWT_ERR_SHIFT           (10U)
+/*! BWT_ERR - Block Wait Time Error Flag
+ *  0b0..Block wait time not exceeded
+ *  0b1..Block wait time was exceeded
+ */
+#define EMVSIM_RX_STATUS_BWT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_BWT_ERR_SHIFT)) & EMVSIM_RX_STATUS_BWT_ERR_MASK)
+#define EMVSIM_RX_STATUS_BGT_ERR_MASK            (0x800U)
+#define EMVSIM_RX_STATUS_BGT_ERR_SHIFT           (11U)
+/*! BGT_ERR - Block Guard Time Error Flag
+ *  0b0..Block guard time was sufficient
+ *  0b1..Block guard time was too small
+ */
+#define EMVSIM_RX_STATUS_BGT_ERR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_BGT_ERR_SHIFT)) & EMVSIM_RX_STATUS_BGT_ERR_MASK)
+#define EMVSIM_RX_STATUS_PEF_MASK                (0x1000U)
+#define EMVSIM_RX_STATUS_PEF_SHIFT               (12U)
+/*! PEF - Parity Error Flag
+ *  0b0..No parity error detected
+ *  0b1..Parity error detected
+ */
+#define EMVSIM_RX_STATUS_PEF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_PEF_SHIFT)) & EMVSIM_RX_STATUS_PEF_MASK)
+#define EMVSIM_RX_STATUS_FEF_MASK                (0x2000U)
+#define EMVSIM_RX_STATUS_FEF_SHIFT               (13U)
+/*! FEF - Frame Error Flag
+ *  0b0..No frame error detected
+ *  0b1..Frame error detected
+ */
+#define EMVSIM_RX_STATUS_FEF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_FEF_SHIFT)) & EMVSIM_RX_STATUS_FEF_MASK)
+#define EMVSIM_RX_STATUS_RX_WPTR_MASK            (0xF0000U)
+#define EMVSIM_RX_STATUS_RX_WPTR_SHIFT           (16U)
+#define EMVSIM_RX_STATUS_RX_WPTR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_WPTR_SHIFT)) & EMVSIM_RX_STATUS_RX_WPTR_MASK)
+#define EMVSIM_RX_STATUS_RX_CNT_MASK             (0xF000000U)
+#define EMVSIM_RX_STATUS_RX_CNT_SHIFT            (24U)
+/*! RX_CNT - Receive FIFO Byte Count
+ *  0b0000..FIFO is emtpy
+ */
+#define EMVSIM_RX_STATUS_RX_CNT(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_STATUS_RX_CNT_SHIFT)) & EMVSIM_RX_STATUS_RX_CNT_MASK)
+/*! @} */
+
+/*! @name TX_STATUS - Transmitter Status Register */
+/*! @{ */
+#define EMVSIM_TX_STATUS_TNTE_MASK               (0x1U)
+#define EMVSIM_TX_STATUS_TNTE_SHIFT              (0U)
+/*! TNTE - Transmit NACK Threshold Error Flag
+ *  0b0..Transmit NACK threshold has not been reached (default)
+ *  0b1..Transmit NACK threshold reached; transmitter frozen
+ */
+#define EMVSIM_TX_STATUS_TNTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TNTE_SHIFT)) & EMVSIM_TX_STATUS_TNTE_MASK)
+#define EMVSIM_TX_STATUS_TFE_MASK                (0x8U)
+#define EMVSIM_TX_STATUS_TFE_SHIFT               (3U)
+/*! TFE - Transmit FIFO Empty Flag
+ *  0b0..Transmit FIFO is not empty
+ *  0b1..Transmit FIFO is empty (default)
+ */
+#define EMVSIM_TX_STATUS_TFE(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TFE_SHIFT)) & EMVSIM_TX_STATUS_TFE_MASK)
+#define EMVSIM_TX_STATUS_ETCF_MASK               (0x10U)
+#define EMVSIM_TX_STATUS_ETCF_SHIFT              (4U)
+/*! ETCF - Early Transmit Complete Flag
+ *  0b0..Transmit pending or in progress
+ *  0b1..Transmit complete (default)
+ */
+#define EMVSIM_TX_STATUS_ETCF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_ETCF_SHIFT)) & EMVSIM_TX_STATUS_ETCF_MASK)
+#define EMVSIM_TX_STATUS_TCF_MASK                (0x20U)
+#define EMVSIM_TX_STATUS_TCF_SHIFT               (5U)
+/*! TCF - Transmit Complete Flag
+ *  0b0..Transmit pending or in progress
+ *  0b1..Transmit complete (default)
+ */
+#define EMVSIM_TX_STATUS_TCF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TCF_SHIFT)) & EMVSIM_TX_STATUS_TCF_MASK)
+#define EMVSIM_TX_STATUS_TFF_MASK                (0x40U)
+#define EMVSIM_TX_STATUS_TFF_SHIFT               (6U)
+/*! TFF - Transmit FIFO Full Flag
+ *  0b0..Transmit FIFO Full condition has not occurred (default)
+ *  0b1..A Transmit FIFO Full condition has occurred
+ */
+#define EMVSIM_TX_STATUS_TFF(x)                  (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TFF_SHIFT)) & EMVSIM_TX_STATUS_TFF_MASK)
+#define EMVSIM_TX_STATUS_TDTF_MASK               (0x80U)
+#define EMVSIM_TX_STATUS_TDTF_SHIFT              (7U)
+/*! TDTF - Transmit Data Threshold Flag
+ *  0b0..Number of bytes in FIFO is greater than TDT[3:0], or bit has been cleared
+ *  0b1..Number of bytes in FIFO is less than or equal to TDT[3:0] (default)
+ */
+#define EMVSIM_TX_STATUS_TDTF(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TDTF_SHIFT)) & EMVSIM_TX_STATUS_TDTF_MASK)
+#define EMVSIM_TX_STATUS_GPCNT0_TO_MASK          (0x100U)
+#define EMVSIM_TX_STATUS_GPCNT0_TO_SHIFT         (8U)
+/*! GPCNT0_TO - General Purpose Counter 0 Timeout Flag
+ *  0b0..GPCNT0_VAL time not reached, or bit has been cleared. (default)
+ *  0b1..General Purpose counter has reached the GPCNT0_VAL value
+ */
+#define EMVSIM_TX_STATUS_GPCNT0_TO(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_GPCNT0_TO_SHIFT)) & EMVSIM_TX_STATUS_GPCNT0_TO_MASK)
+#define EMVSIM_TX_STATUS_GPCNT1_TO_MASK          (0x200U)
+#define EMVSIM_TX_STATUS_GPCNT1_TO_SHIFT         (9U)
+/*! GPCNT1_TO - General Purpose Counter 1 Timeout Flag
+ *  0b0..GPCNT1_VAL time not reached, or bit has been cleared. (default)
+ *  0b1..General Purpose counter has reached the GPCNT1_VAL value
+ */
+#define EMVSIM_TX_STATUS_GPCNT1_TO(x)            (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_GPCNT1_TO_SHIFT)) & EMVSIM_TX_STATUS_GPCNT1_TO_MASK)
+#define EMVSIM_TX_STATUS_TX_RPTR_MASK            (0xF0000U)
+#define EMVSIM_TX_STATUS_TX_RPTR_SHIFT           (16U)
+#define EMVSIM_TX_STATUS_TX_RPTR(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TX_RPTR_SHIFT)) & EMVSIM_TX_STATUS_TX_RPTR_MASK)
+#define EMVSIM_TX_STATUS_TX_CNT_MASK             (0xF000000U)
+#define EMVSIM_TX_STATUS_TX_CNT_SHIFT            (24U)
+/*! TX_CNT - Transmit FIFO Byte Count
+ *  0b0000..FIFO is emtpy
+ */
+#define EMVSIM_TX_STATUS_TX_CNT(x)               (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_STATUS_TX_CNT_SHIFT)) & EMVSIM_TX_STATUS_TX_CNT_MASK)
+/*! @} */
+
+/*! @name PCSR - Port Control and Status Register */
+/*! @{ */
+#define EMVSIM_PCSR_SAPD_MASK                    (0x1U)
+#define EMVSIM_PCSR_SAPD_SHIFT                   (0U)
+/*! SAPD - Auto Power Down Enable
+ *  0b0..Auto power down disabled (default)
+ *  0b1..Auto power down enabled
+ */
+#define EMVSIM_PCSR_SAPD(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SAPD_SHIFT)) & EMVSIM_PCSR_SAPD_MASK)
+#define EMVSIM_PCSR_SVCC_EN_MASK                 (0x2U)
+#define EMVSIM_PCSR_SVCC_EN_SHIFT                (1U)
+/*! SVCC_EN - Vcc Enable for Smart Card
+ *  0b0..Smart Card Voltage disabled (default)
+ *  0b1..Smart Card Voltage enabled
+ */
+#define EMVSIM_PCSR_SVCC_EN(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SVCC_EN_SHIFT)) & EMVSIM_PCSR_SVCC_EN_MASK)
+#define EMVSIM_PCSR_VCCENP_MASK                  (0x4U)
+#define EMVSIM_PCSR_VCCENP_SHIFT                 (2U)
+/*! VCCENP - VCC Enable Polarity Control
+ *  0b0..VCC_EN is active high. Polarity of SVCC_EN is unchanged.
+ *  0b1..VCC_EN is active low. Polarity of SVCC_EN is inverted.
+ */
+#define EMVSIM_PCSR_VCCENP(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_VCCENP_SHIFT)) & EMVSIM_PCSR_VCCENP_MASK)
+#define EMVSIM_PCSR_SRST_MASK                    (0x8U)
+#define EMVSIM_PCSR_SRST_SHIFT                   (3U)
+/*! SRST - Reset to Smart Card
+ *  0b0..Smart Card Reset is asserted (default)
+ *  0b1..Smart Card Reset is de-asserted
+ */
+#define EMVSIM_PCSR_SRST(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SRST_SHIFT)) & EMVSIM_PCSR_SRST_MASK)
+#define EMVSIM_PCSR_SCEN_MASK                    (0x10U)
+#define EMVSIM_PCSR_SCEN_SHIFT                   (4U)
+/*! SCEN - Clock Enable for Smart Card
+ *  0b0..Smart Card Clock Disabled
+ *  0b1..Smart Card Clock Enabled
+ */
+#define EMVSIM_PCSR_SCEN(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SCEN_SHIFT)) & EMVSIM_PCSR_SCEN_MASK)
+#define EMVSIM_PCSR_SCSP_MASK                    (0x20U)
+#define EMVSIM_PCSR_SCSP_SHIFT                   (5U)
+/*! SCSP - Smart Card Clock Stop Polarity
+ *  0b0..Clock is logic 0 when stopped by SCEN
+ *  0b1..Clock is logic 1 when stopped by SCEN
+ */
+#define EMVSIM_PCSR_SCSP(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SCSP_SHIFT)) & EMVSIM_PCSR_SCSP_MASK)
+#define EMVSIM_PCSR_SPD_MASK                     (0x80U)
+#define EMVSIM_PCSR_SPD_SHIFT                    (7U)
+/*! SPD - Auto Power Down Control
+ *  0b0..No effect (default)
+ *  0b1..Start Auto Powerdown or Power Down is in progress
+ */
+#define EMVSIM_PCSR_SPD(x)                       (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPD_SHIFT)) & EMVSIM_PCSR_SPD_MASK)
+#define EMVSIM_PCSR_SPDIM_MASK                   (0x1000000U)
+#define EMVSIM_PCSR_SPDIM_SHIFT                  (24U)
+/*! SPDIM - Smart Card Presence Detect Interrupt Mask
+ *  0b0..SIM presence detect interrupt is enabled
+ *  0b1..SIM presence detect interrupt is masked (default)
+ */
+#define EMVSIM_PCSR_SPDIM(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDIM_SHIFT)) & EMVSIM_PCSR_SPDIM_MASK)
+#define EMVSIM_PCSR_SPDIF_MASK                   (0x2000000U)
+#define EMVSIM_PCSR_SPDIF_SHIFT                  (25U)
+/*! SPDIF - Smart Card Presence Detect Interrupt Flag
+ *  0b0..No insertion or removal of Smart Card detected on Port (default)
+ *  0b1..Insertion or removal of Smart Card detected on Port
+ */
+#define EMVSIM_PCSR_SPDIF(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDIF_SHIFT)) & EMVSIM_PCSR_SPDIF_MASK)
+#define EMVSIM_PCSR_SPDP_MASK                    (0x4000000U)
+#define EMVSIM_PCSR_SPDP_SHIFT                   (26U)
+/*! SPDP - Smart Card Presence Detect Pin Status
+ *  0b0..SIM Presence Detect pin is logic low
+ *  0b1..SIM Presence Detectpin is logic high
+ */
+#define EMVSIM_PCSR_SPDP(x)                      (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDP_SHIFT)) & EMVSIM_PCSR_SPDP_MASK)
+#define EMVSIM_PCSR_SPDES_MASK                   (0x8000000U)
+#define EMVSIM_PCSR_SPDES_SHIFT                  (27U)
+/*! SPDES - SIM Presence Detect Edge Select
+ *  0b0..Falling edge on the pin (default)
+ *  0b1..Rising edge on the pin
+ */
+#define EMVSIM_PCSR_SPDES(x)                     (((uint32_t)(((uint32_t)(x)) << EMVSIM_PCSR_SPDES_SHIFT)) & EMVSIM_PCSR_SPDES_MASK)
+/*! @} */
+
+/*! @name RX_BUF - Receive Data Read Buffer */
+/*! @{ */
+#define EMVSIM_RX_BUF_RX_BYTE_MASK               (0xFFU)
+#define EMVSIM_RX_BUF_RX_BYTE_SHIFT              (0U)
+#define EMVSIM_RX_BUF_RX_BYTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_RX_BUF_RX_BYTE_SHIFT)) & EMVSIM_RX_BUF_RX_BYTE_MASK)
+/*! @} */
+
+/*! @name TX_BUF - Transmit Data Buffer */
+/*! @{ */
+#define EMVSIM_TX_BUF_TX_BYTE_MASK               (0xFFU)
+#define EMVSIM_TX_BUF_TX_BYTE_SHIFT              (0U)
+#define EMVSIM_TX_BUF_TX_BYTE(x)                 (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_BUF_TX_BYTE_SHIFT)) & EMVSIM_TX_BUF_TX_BYTE_MASK)
+/*! @} */
+
+/*! @name TX_GETU - Transmitter Guard ETU Value Register */
+/*! @{ */
+#define EMVSIM_TX_GETU_GETU_MASK                 (0xFFU)
+#define EMVSIM_TX_GETU_GETU_SHIFT                (0U)
+/*! GETU - Transmitter Guard Time Value in ETU
+ *  0b00000000..no additional ETUs inserted (default)
+ *  0b00000001..1 additional ETU inserted
+ *  0b11111110..254 additional ETUs inserted
+ *  0b11111111..Subtracts one ETU by reducing the number of STOP bits from two to one
+ */
+#define EMVSIM_TX_GETU_GETU(x)                   (((uint32_t)(((uint32_t)(x)) << EMVSIM_TX_GETU_GETU_SHIFT)) & EMVSIM_TX_GETU_GETU_MASK)
+/*! @} */
+
+/*! @name CWT_VAL - Character Wait Time Value Register */
+/*! @{ */
+#define EMVSIM_CWT_VAL_CWT_MASK                  (0xFFFFU)
+#define EMVSIM_CWT_VAL_CWT_SHIFT                 (0U)
+#define EMVSIM_CWT_VAL_CWT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_CWT_VAL_CWT_SHIFT)) & EMVSIM_CWT_VAL_CWT_MASK)
+/*! @} */
+
+/*! @name BWT_VAL - Block Wait Time Value Register */
+/*! @{ */
+#define EMVSIM_BWT_VAL_BWT_MASK                  (0xFFFFFFFFU)
+#define EMVSIM_BWT_VAL_BWT_SHIFT                 (0U)
+#define EMVSIM_BWT_VAL_BWT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_BWT_VAL_BWT_SHIFT)) & EMVSIM_BWT_VAL_BWT_MASK)
+/*! @} */
+
+/*! @name BGT_VAL - Block Guard Time Value Register */
+/*! @{ */
+#define EMVSIM_BGT_VAL_BGT_MASK                  (0xFFFFU)
+#define EMVSIM_BGT_VAL_BGT_SHIFT                 (0U)
+#define EMVSIM_BGT_VAL_BGT(x)                    (((uint32_t)(((uint32_t)(x)) << EMVSIM_BGT_VAL_BGT_SHIFT)) & EMVSIM_BGT_VAL_BGT_MASK)
+/*! @} */
+
+/*! @name GPCNT0_VAL - General Purpose Counter 0 Timeout Value Register */
+/*! @{ */
+#define EMVSIM_GPCNT0_VAL_GPCNT0_MASK            (0xFFFFU)
+#define EMVSIM_GPCNT0_VAL_GPCNT0_SHIFT           (0U)
+#define EMVSIM_GPCNT0_VAL_GPCNT0(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_GPCNT0_VAL_GPCNT0_SHIFT)) & EMVSIM_GPCNT0_VAL_GPCNT0_MASK)
+/*! @} */
+
+/*! @name GPCNT1_VAL - General Purpose Counter 1 Timeout Value */
+/*! @{ */
+#define EMVSIM_GPCNT1_VAL_GPCNT1_MASK            (0xFFFFU)
+#define EMVSIM_GPCNT1_VAL_GPCNT1_SHIFT           (0U)
+#define EMVSIM_GPCNT1_VAL_GPCNT1(x)              (((uint32_t)(((uint32_t)(x)) << EMVSIM_GPCNT1_VAL_GPCNT1_SHIFT)) & EMVSIM_GPCNT1_VAL_GPCNT1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EMVSIM_Register_Masks */
+
+
+/* EMVSIM - Peripheral instance base addresses */
+/** Peripheral EMVSIM0 base address */
+#define EMVSIM0_BASE                             (0x40038000u)
+/** Peripheral EMVSIM0 base pointer */
+#define EMVSIM0                                  ((EMVSIM_Type *)EMVSIM0_BASE)
+/** Array initializer of EMVSIM peripheral base addresses */
+#define EMVSIM_BASE_ADDRS                        { EMVSIM0_BASE }
+/** Array initializer of EMVSIM peripheral base pointers */
+#define EMVSIM_BASE_PTRS                         { EMVSIM0 }
+/** Interrupt vectors for the EMVSIM peripheral type */
+#define EMVSIM_IRQS                              { EMVSIM0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group EMVSIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EVENT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EVENT_Peripheral_Access_Layer EVENT Peripheral Access Layer
+ * @{
+ */
+
+/** EVENT - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t INTPTEN;                           /**< Interrupt Enable Register, offset: 0x0 */
+  __IO uint32_t INTPTPEND;                         /**< Interrupt Pengding Register, offset: 0x4 */
+  __IO uint32_t INTPTPENDSET;                      /**< Set Interrupt Pengding Register, offset: 0x8 */
+  __IO uint32_t INTPTPENDCLEAR;                    /**< Clear Interrupt Pengding Register, offset: 0xC */
+  __IO uint32_t INTPTSECURE;                       /**< Interrupt Secure Register, offset: 0x10 */
+  __IO uint32_t INTPTPRI[4];                       /**< Interrupt Priority 0 Register..Interrupt Priority 3 Register, array offset: 0x14, array step: 0x4 */
+  __IO uint32_t INTPRIBASE;                        /**< Interrupt Priority Base, offset: 0x24 */
+  __I  uint32_t INTPTENACTIVE;                     /**< Interrupt Active Register, offset: 0x28 */
+  __I  uint32_t INTACTPRI[4];                      /**< Interrupt Active Priority 0 Register..Interrupt Active Priority 3 Register, array offset: 0x2C, array step: 0x4 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t EVENTEN;                           /**< Event Enable Register, offset: 0x40 */
+  __IO uint32_t EVENTPEND;                         /**< Event Pengding Register, offset: 0x44 */
+  __IO uint32_t EVTPENDSET;                        /**< Set Event Pengding Register, offset: 0x48 */
+  __IO uint32_t EVTPENDCLEAR;                      /**< Clear Event Pengding Register, offset: 0x4C */
+       uint8_t RESERVED_1[48];
+  __IO uint32_t SLPCTRL;                           /**< Sleep Control Register, offset: 0x80 */
+  __IO uint32_t SLPSTATUS;                         /**< Sleep Status Register, offset: 0x84 */
+} EVENT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EVENT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EVENT_Register_Masks EVENT Register Masks
+ * @{
+ */
+
+/*! @name INTPTEN - Interrupt Enable Register */
+/*! @{ */
+#define EVENT_INTPTEN_IEN_MASK                   (0xFFFFFFFFU)
+#define EVENT_INTPTEN_IEN_SHIFT                  (0U)
+/*! IEN - Interrupt n Enable
+ *  0b00000000000000000000000000000000..Interrupt n is disabled.
+ *  0b00000000000000000000000000000001..Interrupt n is enabled.
+ */
+#define EVENT_INTPTEN_IEN(x)                     (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTEN_IEN_SHIFT)) & EVENT_INTPTEN_IEN_MASK)
+/*! @} */
+
+/*! @name INTPTPEND - Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPEND_IPEND_MASK               (0xFFFFFFFFU)
+#define EVENT_INTPTPEND_IPEND_SHIFT              (0U)
+/*! IPEND - Interrupt n Pending
+ *  0b00000000000000000000000000000000..Interrupt n is not pending.
+ *  0b00000000000000000000000000000001..Interrupt n is pending.
+ */
+#define EVENT_INTPTPEND_IPEND(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPEND_IPEND_SHIFT)) & EVENT_INTPTPEND_IPEND_MASK)
+/*! @} */
+
+/*! @name INTPTPENDSET - Set Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPENDSET_IPENDSET_MASK         (0xFFFFFFFFU)
+#define EVENT_INTPTPENDSET_IPENDSET_SHIFT        (0U)
+/*! IPENDSET - Set Interrupt n Pending
+ *  0b00000000000000000000000000000000..Not set interrupt n in pending status
+ *  0b00000000000000000000000000000001..Set interrupt n in pending status.
+ */
+#define EVENT_INTPTPENDSET_IPENDSET(x)           (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPENDSET_IPENDSET_SHIFT)) & EVENT_INTPTPENDSET_IPENDSET_MASK)
+/*! @} */
+
+/*! @name INTPTPENDCLEAR - Clear Interrupt Pengding Register */
+/*! @{ */
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR_MASK     (0xFFFFFFFFU)
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR_SHIFT    (0U)
+/*! IPENDCLEAR - Clear Interrupt n out of Pending
+ *  0b00000000000000000000000000000000..Not clear interrupt n out of pending status
+ *  0b00000000000000000000000000000001..Clear interrupt n out of pending status.
+ */
+#define EVENT_INTPTPENDCLEAR_IPENDCLEAR(x)       (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPENDCLEAR_IPENDCLEAR_SHIFT)) & EVENT_INTPTPENDCLEAR_IPENDCLEAR_MASK)
+/*! @} */
+
+/*! @name INTPTSECURE - Interrupt Secure Register */
+/*! @{ */
+#define EVENT_INTPTSECURE_ISECURE_MASK           (0xFFFFFFFFU)
+#define EVENT_INTPTSECURE_ISECURE_SHIFT          (0U)
+/*! ISECURE - Set secure feature of Interrupt n
+ *  0b00000000000000000000000000000000..Set interrupt n out of security
+ *  0b00000000000000000000000000000001..Set interrupt n in secruity.
+ */
+#define EVENT_INTPTSECURE_ISECURE(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTSECURE_ISECURE_SHIFT)) & EVENT_INTPTSECURE_ISECURE_MASK)
+/*! @} */
+
+/*! @name INTPTPRI - Interrupt Priority 0 Register..Interrupt Priority 3 Register */
+/*! @{ */
+#define EVENT_INTPTPRI_IPRI0_MASK                (0x7U)
+#define EVENT_INTPTPRI_IPRI0_SHIFT               (0U)
+#define EVENT_INTPTPRI_IPRI0(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI0_SHIFT)) & EVENT_INTPTPRI_IPRI0_MASK)
+#define EVENT_INTPTPRI_IPRI8_MASK                (0x7U)
+#define EVENT_INTPTPRI_IPRI8_SHIFT               (0U)
+#define EVENT_INTPTPRI_IPRI8(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI8_SHIFT)) & EVENT_INTPTPRI_IPRI8_MASK)
+#define EVENT_INTPTPRI_IPRI16_MASK               (0x7U)
+#define EVENT_INTPTPRI_IPRI16_SHIFT              (0U)
+#define EVENT_INTPTPRI_IPRI16(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI16_SHIFT)) & EVENT_INTPTPRI_IPRI16_MASK)
+#define EVENT_INTPTPRI_IPRI24_MASK               (0x7U)
+#define EVENT_INTPTPRI_IPRI24_SHIFT              (0U)
+#define EVENT_INTPTPRI_IPRI24(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI24_SHIFT)) & EVENT_INTPTPRI_IPRI24_MASK)
+#define EVENT_INTPTPRI_IPRI1_MASK                (0x70U)
+#define EVENT_INTPTPRI_IPRI1_SHIFT               (4U)
+#define EVENT_INTPTPRI_IPRI1(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI1_SHIFT)) & EVENT_INTPTPRI_IPRI1_MASK)
+#define EVENT_INTPTPRI_IPRI9_MASK                (0x70U)
+#define EVENT_INTPTPRI_IPRI9_SHIFT               (4U)
+#define EVENT_INTPTPRI_IPRI9(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI9_SHIFT)) & EVENT_INTPTPRI_IPRI9_MASK)
+#define EVENT_INTPTPRI_IPRI17_MASK               (0x70U)
+#define EVENT_INTPTPRI_IPRI17_SHIFT              (4U)
+#define EVENT_INTPTPRI_IPRI17(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI17_SHIFT)) & EVENT_INTPTPRI_IPRI17_MASK)
+#define EVENT_INTPTPRI_IPRI25_MASK               (0x70U)
+#define EVENT_INTPTPRI_IPRI25_SHIFT              (4U)
+#define EVENT_INTPTPRI_IPRI25(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI25_SHIFT)) & EVENT_INTPTPRI_IPRI25_MASK)
+#define EVENT_INTPTPRI_IPRI2_MASK                (0x700U)
+#define EVENT_INTPTPRI_IPRI2_SHIFT               (8U)
+#define EVENT_INTPTPRI_IPRI2(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI2_SHIFT)) & EVENT_INTPTPRI_IPRI2_MASK)
+#define EVENT_INTPTPRI_IPRI10_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI10_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI10(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI10_SHIFT)) & EVENT_INTPTPRI_IPRI10_MASK)
+#define EVENT_INTPTPRI_IPRI18_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI18_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI18(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI18_SHIFT)) & EVENT_INTPTPRI_IPRI18_MASK)
+#define EVENT_INTPTPRI_IPRI26_MASK               (0x700U)
+#define EVENT_INTPTPRI_IPRI26_SHIFT              (8U)
+#define EVENT_INTPTPRI_IPRI26(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI26_SHIFT)) & EVENT_INTPTPRI_IPRI26_MASK)
+#define EVENT_INTPTPRI_IPRI3_MASK                (0x7000U)
+#define EVENT_INTPTPRI_IPRI3_SHIFT               (12U)
+#define EVENT_INTPTPRI_IPRI3(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI3_SHIFT)) & EVENT_INTPTPRI_IPRI3_MASK)
+#define EVENT_INTPTPRI_IPRI11_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI11_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI11(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI11_SHIFT)) & EVENT_INTPTPRI_IPRI11_MASK)
+#define EVENT_INTPTPRI_IPRI19_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI19_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI19(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI19_SHIFT)) & EVENT_INTPTPRI_IPRI19_MASK)
+#define EVENT_INTPTPRI_IPRI27_MASK               (0x7000U)
+#define EVENT_INTPTPRI_IPRI27_SHIFT              (12U)
+#define EVENT_INTPTPRI_IPRI27(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI27_SHIFT)) & EVENT_INTPTPRI_IPRI27_MASK)
+#define EVENT_INTPTPRI_IPRI4_MASK                (0x70000U)
+#define EVENT_INTPTPRI_IPRI4_SHIFT               (16U)
+#define EVENT_INTPTPRI_IPRI4(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI4_SHIFT)) & EVENT_INTPTPRI_IPRI4_MASK)
+#define EVENT_INTPTPRI_IPRI12_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI12_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI12(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI12_SHIFT)) & EVENT_INTPTPRI_IPRI12_MASK)
+#define EVENT_INTPTPRI_IPRI20_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI20_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI20(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI20_SHIFT)) & EVENT_INTPTPRI_IPRI20_MASK)
+#define EVENT_INTPTPRI_IPRI28_MASK               (0x70000U)
+#define EVENT_INTPTPRI_IPRI28_SHIFT              (16U)
+#define EVENT_INTPTPRI_IPRI28(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI28_SHIFT)) & EVENT_INTPTPRI_IPRI28_MASK)
+#define EVENT_INTPTPRI_IPRI5_MASK                (0x700000U)
+#define EVENT_INTPTPRI_IPRI5_SHIFT               (20U)
+#define EVENT_INTPTPRI_IPRI5(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI5_SHIFT)) & EVENT_INTPTPRI_IPRI5_MASK)
+#define EVENT_INTPTPRI_IPRI13_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI13_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI13(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI13_SHIFT)) & EVENT_INTPTPRI_IPRI13_MASK)
+#define EVENT_INTPTPRI_IPRI21_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI21_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI21(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI21_SHIFT)) & EVENT_INTPTPRI_IPRI21_MASK)
+#define EVENT_INTPTPRI_IPRI29_MASK               (0x700000U)
+#define EVENT_INTPTPRI_IPRI29_SHIFT              (20U)
+#define EVENT_INTPTPRI_IPRI29(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI29_SHIFT)) & EVENT_INTPTPRI_IPRI29_MASK)
+#define EVENT_INTPTPRI_IPRI6_MASK                (0x7000000U)
+#define EVENT_INTPTPRI_IPRI6_SHIFT               (24U)
+#define EVENT_INTPTPRI_IPRI6(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI6_SHIFT)) & EVENT_INTPTPRI_IPRI6_MASK)
+#define EVENT_INTPTPRI_IPRI14_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI14_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI14(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI14_SHIFT)) & EVENT_INTPTPRI_IPRI14_MASK)
+#define EVENT_INTPTPRI_IPRI22_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI22_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI22(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI22_SHIFT)) & EVENT_INTPTPRI_IPRI22_MASK)
+#define EVENT_INTPTPRI_IPRI30_MASK               (0x7000000U)
+#define EVENT_INTPTPRI_IPRI30_SHIFT              (24U)
+#define EVENT_INTPTPRI_IPRI30(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI30_SHIFT)) & EVENT_INTPTPRI_IPRI30_MASK)
+#define EVENT_INTPTPRI_IPRI7_MASK                (0x70000000U)
+#define EVENT_INTPTPRI_IPRI7_SHIFT               (28U)
+#define EVENT_INTPTPRI_IPRI7(x)                  (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI7_SHIFT)) & EVENT_INTPTPRI_IPRI7_MASK)
+#define EVENT_INTPTPRI_IPRI15_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI15_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI15(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI15_SHIFT)) & EVENT_INTPTPRI_IPRI15_MASK)
+#define EVENT_INTPTPRI_IPRI23_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI23_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI23(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI23_SHIFT)) & EVENT_INTPTPRI_IPRI23_MASK)
+#define EVENT_INTPTPRI_IPRI31_MASK               (0x70000000U)
+#define EVENT_INTPTPRI_IPRI31_SHIFT              (28U)
+#define EVENT_INTPTPRI_IPRI31(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTPRI_IPRI31_SHIFT)) & EVENT_INTPTPRI_IPRI31_MASK)
+/*! @} */
+
+/* The count of EVENT_INTPTPRI */
+#define EVENT_INTPTPRI_COUNT                     (4U)
+
+/*! @name INTPRIBASE - Interrupt Priority Base */
+/*! @{ */
+#define EVENT_INTPRIBASE_IPBASE_MASK             (0xFU)
+#define EVENT_INTPRIBASE_IPBASE_SHIFT            (0U)
+#define EVENT_INTPRIBASE_IPBASE(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTPRIBASE_IPBASE_SHIFT)) & EVENT_INTPRIBASE_IPBASE_MASK)
+/*! @} */
+
+/*! @name INTPTENACTIVE - Interrupt Active Register */
+/*! @{ */
+#define EVENT_INTPTENACTIVE_IACTIVE_MASK         (0xFFFFFFFFU)
+#define EVENT_INTPTENACTIVE_IACTIVE_SHIFT        (0U)
+/*! IACTIVE - Interrupt n Enable
+ *  0b00000000000000000000000000000000..Interrupt n is not active.
+ *  0b00000000000000000000000000000001..Interrupt n is active..
+ */
+#define EVENT_INTPTENACTIVE_IACTIVE(x)           (((uint32_t)(((uint32_t)(x)) << EVENT_INTPTENACTIVE_IACTIVE_SHIFT)) & EVENT_INTPTENACTIVE_IACTIVE_MASK)
+/*! @} */
+
+/*! @name INTACTPRI - Interrupt Active Priority 0 Register..Interrupt Active Priority 3 Register */
+/*! @{ */
+#define EVENT_INTACTPRI_IAPRI0_MASK              (0x7U)
+#define EVENT_INTACTPRI_IAPRI0_SHIFT             (0U)
+#define EVENT_INTACTPRI_IAPRI0(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI0_SHIFT)) & EVENT_INTACTPRI_IAPRI0_MASK)
+#define EVENT_INTACTPRI_IAPRI8_MASK              (0x7U)
+#define EVENT_INTACTPRI_IAPRI8_SHIFT             (0U)
+#define EVENT_INTACTPRI_IAPRI8(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI8_SHIFT)) & EVENT_INTACTPRI_IAPRI8_MASK)
+#define EVENT_INTACTPRI_IAPRI16_MASK             (0x7U)
+#define EVENT_INTACTPRI_IAPRI16_SHIFT            (0U)
+#define EVENT_INTACTPRI_IAPRI16(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI16_SHIFT)) & EVENT_INTACTPRI_IAPRI16_MASK)
+#define EVENT_INTACTPRI_IAPRI24_MASK             (0x7U)
+#define EVENT_INTACTPRI_IAPRI24_SHIFT            (0U)
+#define EVENT_INTACTPRI_IAPRI24(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI24_SHIFT)) & EVENT_INTACTPRI_IAPRI24_MASK)
+#define EVENT_INTACTPRI_IAPRI1_MASK              (0x70U)
+#define EVENT_INTACTPRI_IAPRI1_SHIFT             (4U)
+#define EVENT_INTACTPRI_IAPRI1(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI1_SHIFT)) & EVENT_INTACTPRI_IAPRI1_MASK)
+#define EVENT_INTACTPRI_IAPRI9_MASK              (0x70U)
+#define EVENT_INTACTPRI_IAPRI9_SHIFT             (4U)
+#define EVENT_INTACTPRI_IAPRI9(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI9_SHIFT)) & EVENT_INTACTPRI_IAPRI9_MASK)
+#define EVENT_INTACTPRI_IAPRI17_MASK             (0x70U)
+#define EVENT_INTACTPRI_IAPRI17_SHIFT            (4U)
+#define EVENT_INTACTPRI_IAPRI17(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI17_SHIFT)) & EVENT_INTACTPRI_IAPRI17_MASK)
+#define EVENT_INTACTPRI_IAPRI25_MASK             (0x70U)
+#define EVENT_INTACTPRI_IAPRI25_SHIFT            (4U)
+#define EVENT_INTACTPRI_IAPRI25(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI25_SHIFT)) & EVENT_INTACTPRI_IAPRI25_MASK)
+#define EVENT_INTACTPRI_IAPRI2_MASK              (0x700U)
+#define EVENT_INTACTPRI_IAPRI2_SHIFT             (8U)
+#define EVENT_INTACTPRI_IAPRI2(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI2_SHIFT)) & EVENT_INTACTPRI_IAPRI2_MASK)
+#define EVENT_INTACTPRI_IAPRI10_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI10_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI10(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI10_SHIFT)) & EVENT_INTACTPRI_IAPRI10_MASK)
+#define EVENT_INTACTPRI_IAPRI18_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI18_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI18(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI18_SHIFT)) & EVENT_INTACTPRI_IAPRI18_MASK)
+#define EVENT_INTACTPRI_IAPRI26_MASK             (0x700U)
+#define EVENT_INTACTPRI_IAPRI26_SHIFT            (8U)
+#define EVENT_INTACTPRI_IAPRI26(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI26_SHIFT)) & EVENT_INTACTPRI_IAPRI26_MASK)
+#define EVENT_INTACTPRI_IAPRI3_MASK              (0x7000U)
+#define EVENT_INTACTPRI_IAPRI3_SHIFT             (12U)
+#define EVENT_INTACTPRI_IAPRI3(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI3_SHIFT)) & EVENT_INTACTPRI_IAPRI3_MASK)
+#define EVENT_INTACTPRI_IAPRI11_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI11_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI11(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI11_SHIFT)) & EVENT_INTACTPRI_IAPRI11_MASK)
+#define EVENT_INTACTPRI_IAPRI19_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI19_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI19(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI19_SHIFT)) & EVENT_INTACTPRI_IAPRI19_MASK)
+#define EVENT_INTACTPRI_IAPRI27_MASK             (0x7000U)
+#define EVENT_INTACTPRI_IAPRI27_SHIFT            (12U)
+#define EVENT_INTACTPRI_IAPRI27(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI27_SHIFT)) & EVENT_INTACTPRI_IAPRI27_MASK)
+#define EVENT_INTACTPRI_IAPRI4_MASK              (0x70000U)
+#define EVENT_INTACTPRI_IAPRI4_SHIFT             (16U)
+#define EVENT_INTACTPRI_IAPRI4(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI4_SHIFT)) & EVENT_INTACTPRI_IAPRI4_MASK)
+#define EVENT_INTACTPRI_IAPRI12_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI12_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI12(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI12_SHIFT)) & EVENT_INTACTPRI_IAPRI12_MASK)
+#define EVENT_INTACTPRI_IAPRI20_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI20_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI20(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI20_SHIFT)) & EVENT_INTACTPRI_IAPRI20_MASK)
+#define EVENT_INTACTPRI_IAPRI28_MASK             (0x70000U)
+#define EVENT_INTACTPRI_IAPRI28_SHIFT            (16U)
+#define EVENT_INTACTPRI_IAPRI28(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI28_SHIFT)) & EVENT_INTACTPRI_IAPRI28_MASK)
+#define EVENT_INTACTPRI_IAPRI5_MASK              (0x700000U)
+#define EVENT_INTACTPRI_IAPRI5_SHIFT             (20U)
+#define EVENT_INTACTPRI_IAPRI5(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI5_SHIFT)) & EVENT_INTACTPRI_IAPRI5_MASK)
+#define EVENT_INTACTPRI_IAPRI13_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI13_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI13(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI13_SHIFT)) & EVENT_INTACTPRI_IAPRI13_MASK)
+#define EVENT_INTACTPRI_IAPRI21_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI21_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI21(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI21_SHIFT)) & EVENT_INTACTPRI_IAPRI21_MASK)
+#define EVENT_INTACTPRI_IAPRI29_MASK             (0x700000U)
+#define EVENT_INTACTPRI_IAPRI29_SHIFT            (20U)
+#define EVENT_INTACTPRI_IAPRI29(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI29_SHIFT)) & EVENT_INTACTPRI_IAPRI29_MASK)
+#define EVENT_INTACTPRI_IAPRI6_MASK              (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI6_SHIFT             (24U)
+#define EVENT_INTACTPRI_IAPRI6(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI6_SHIFT)) & EVENT_INTACTPRI_IAPRI6_MASK)
+#define EVENT_INTACTPRI_IAPRI14_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI14_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI14(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI14_SHIFT)) & EVENT_INTACTPRI_IAPRI14_MASK)
+#define EVENT_INTACTPRI_IAPRI22_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI22_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI22(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI22_SHIFT)) & EVENT_INTACTPRI_IAPRI22_MASK)
+#define EVENT_INTACTPRI_IAPRI30_MASK             (0x7000000U)
+#define EVENT_INTACTPRI_IAPRI30_SHIFT            (24U)
+#define EVENT_INTACTPRI_IAPRI30(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI30_SHIFT)) & EVENT_INTACTPRI_IAPRI30_MASK)
+#define EVENT_INTACTPRI_IAPRI7_MASK              (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI7_SHIFT             (28U)
+#define EVENT_INTACTPRI_IAPRI7(x)                (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI7_SHIFT)) & EVENT_INTACTPRI_IAPRI7_MASK)
+#define EVENT_INTACTPRI_IAPRI15_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI15_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI15(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI15_SHIFT)) & EVENT_INTACTPRI_IAPRI15_MASK)
+#define EVENT_INTACTPRI_IAPRI23_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI23_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI23(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI23_SHIFT)) & EVENT_INTACTPRI_IAPRI23_MASK)
+#define EVENT_INTACTPRI_IAPRI31_MASK             (0x70000000U)
+#define EVENT_INTACTPRI_IAPRI31_SHIFT            (28U)
+#define EVENT_INTACTPRI_IAPRI31(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_INTACTPRI_IAPRI31_SHIFT)) & EVENT_INTACTPRI_IAPRI31_MASK)
+/*! @} */
+
+/* The count of EVENT_INTACTPRI */
+#define EVENT_INTACTPRI_COUNT                    (4U)
+
+/*! @name EVENTEN - Event Enable Register */
+/*! @{ */
+#define EVENT_EVENTEN_EEN_MASK                   (0xFFFFFFFFU)
+#define EVENT_EVENTEN_EEN_SHIFT                  (0U)
+/*! EEN - Event n Enable
+ *  0b00000000000000000000000000000000..Event n is disabled.
+ *  0b00000000000000000000000000000001..Event n is enabled.
+ */
+#define EVENT_EVENTEN_EEN(x)                     (((uint32_t)(((uint32_t)(x)) << EVENT_EVENTEN_EEN_SHIFT)) & EVENT_EVENTEN_EEN_MASK)
+/*! @} */
+
+/*! @name EVENTPEND - Event Pengding Register */
+/*! @{ */
+#define EVENT_EVENTPEND_EPEND_MASK               (0xFFFFFFFFU)
+#define EVENT_EVENTPEND_EPEND_SHIFT              (0U)
+/*! EPEND - Event n Pending
+ *  0b00000000000000000000000000000000..Event n is not pending.
+ *  0b00000000000000000000000000000001..Event n is pending.
+ */
+#define EVENT_EVENTPEND_EPEND(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_EVENTPEND_EPEND_SHIFT)) & EVENT_EVENTPEND_EPEND_MASK)
+/*! @} */
+
+/*! @name EVTPENDSET - Set Event Pengding Register */
+/*! @{ */
+#define EVENT_EVTPENDSET_EPENDSET_MASK           (0xFFFFFFFFU)
+#define EVENT_EVTPENDSET_EPENDSET_SHIFT          (0U)
+/*! EPENDSET - Set Event n Pending
+ *  0b00000000000000000000000000000000..Not set event n in pending status
+ *  0b00000000000000000000000000000001..Set event n in pending status.
+ */
+#define EVENT_EVTPENDSET_EPENDSET(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_EVTPENDSET_EPENDSET_SHIFT)) & EVENT_EVTPENDSET_EPENDSET_MASK)
+/*! @} */
+
+/*! @name EVTPENDCLEAR - Clear Event Pengding Register */
+/*! @{ */
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR_MASK       (0xFFFFFFFFU)
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR_SHIFT      (0U)
+/*! EPENDCLEAR - Clear Event n out of Pending
+ *  0b00000000000000000000000000000000..Not clear event n out of pending status
+ *  0b00000000000000000000000000000001..Clear event n out of pending status.
+ */
+#define EVENT_EVTPENDCLEAR_EPENDCLEAR(x)         (((uint32_t)(((uint32_t)(x)) << EVENT_EVTPENDCLEAR_EPENDCLEAR_SHIFT)) & EVENT_EVTPENDCLEAR_EPENDCLEAR_MASK)
+/*! @} */
+
+/*! @name SLPCTRL - Sleep Control Register */
+/*! @{ */
+#define EVENT_SLPCTRL_SLPCTRL_MASK               (0x3U)
+#define EVENT_SLPCTRL_SLPCTRL_SHIFT              (0U)
+/*! SLPCTRL - Sleep Mode Control
+ *  0b01..Sleep enable
+ *  0b10..Deep sleep enable
+ */
+#define EVENT_SLPCTRL_SLPCTRL(x)                 (((uint32_t)(((uint32_t)(x)) << EVENT_SLPCTRL_SLPCTRL_SHIFT)) & EVENT_SLPCTRL_SLPCTRL_MASK)
+#define EVENT_SLPCTRL_SYSRSTREQST_MASK           (0x80000000U)
+#define EVENT_SLPCTRL_SYSRSTREQST_SHIFT          (31U)
+/*! SYSRSTREQST - System Reset Request
+ *  0b0..Do not send system reset request.
+ *  0b1..Send system reset request
+ */
+#define EVENT_SLPCTRL_SYSRSTREQST(x)             (((uint32_t)(((uint32_t)(x)) << EVENT_SLPCTRL_SYSRSTREQST_SHIFT)) & EVENT_SLPCTRL_SYSRSTREQST_MASK)
+/*! @} */
+
+/*! @name SLPSTATUS - Sleep Status Register */
+/*! @{ */
+#define EVENT_SLPSTATUS_SLPSTAT_MASK             (0x3U)
+#define EVENT_SLPSTATUS_SLPSTAT_SHIFT            (0U)
+/*! SLPSTAT - Sleep Status
+ *  0b01..In sleep mode
+ *  0b10..In deep sleep mode
+ */
+#define EVENT_SLPSTATUS_SLPSTAT(x)               (((uint32_t)(((uint32_t)(x)) << EVENT_SLPSTATUS_SLPSTAT_SHIFT)) & EVENT_SLPSTATUS_SLPSTAT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EVENT_Register_Masks */
+
+
+/* EVENT - Peripheral instance base addresses */
+/** Peripheral EVENT1 base address */
+#define EVENT1_BASE                              (0x4101F000u)
+/** Peripheral EVENT1 base pointer */
+#define EVENT1                                   ((EVENT_Type *)EVENT1_BASE)
+/** Array initializer of EVENT peripheral base addresses */
+#define EVENT_BASE_ADDRS                         { EVENT1_BASE }
+/** Array initializer of EVENT peripheral base pointers */
+#define EVENT_BASE_PTRS                          { EVENT1 }
+
+/*!
+ * @}
+ */ /* end of group EVENT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- EWM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EWM_Peripheral_Access_Layer EWM Peripheral Access Layer
+ * @{
+ */
+
+/** EWM - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t CTRL;                               /**< Control Register, offset: 0x0 */
+  __O  uint8_t SERV;                               /**< Service Register, offset: 0x1 */
+  __IO uint8_t CMPL;                               /**< Compare Low Register, offset: 0x2 */
+  __IO uint8_t CMPH;                               /**< Compare High Register, offset: 0x3 */
+       uint8_t RESERVED_0[1];
+  __IO uint8_t CLKPRESCALER;                       /**< Clock Prescaler Register, offset: 0x5 */
+} EWM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- EWM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup EWM_Register_Masks EWM Register Masks
+ * @{
+ */
+
+/*! @name CTRL - Control Register */
+/*! @{ */
+#define EWM_CTRL_EWMEN_MASK                      (0x1U)
+#define EWM_CTRL_EWMEN_SHIFT                     (0U)
+#define EWM_CTRL_EWMEN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_EWMEN_SHIFT)) & EWM_CTRL_EWMEN_MASK)
+#define EWM_CTRL_ASSIN_MASK                      (0x2U)
+#define EWM_CTRL_ASSIN_SHIFT                     (1U)
+#define EWM_CTRL_ASSIN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_ASSIN_SHIFT)) & EWM_CTRL_ASSIN_MASK)
+#define EWM_CTRL_INEN_MASK                       (0x4U)
+#define EWM_CTRL_INEN_SHIFT                      (2U)
+#define EWM_CTRL_INEN(x)                         (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INEN_SHIFT)) & EWM_CTRL_INEN_MASK)
+#define EWM_CTRL_INTEN_MASK                      (0x8U)
+#define EWM_CTRL_INTEN_SHIFT                     (3U)
+#define EWM_CTRL_INTEN(x)                        (((uint8_t)(((uint8_t)(x)) << EWM_CTRL_INTEN_SHIFT)) & EWM_CTRL_INTEN_MASK)
+/*! @} */
+
+/*! @name SERV - Service Register */
+/*! @{ */
+#define EWM_SERV_SERVICE_MASK                    (0xFFU)
+#define EWM_SERV_SERVICE_SHIFT                   (0U)
+#define EWM_SERV_SERVICE(x)                      (((uint8_t)(((uint8_t)(x)) << EWM_SERV_SERVICE_SHIFT)) & EWM_SERV_SERVICE_MASK)
+/*! @} */
+
+/*! @name CMPL - Compare Low Register */
+/*! @{ */
+#define EWM_CMPL_COMPAREL_MASK                   (0xFFU)
+#define EWM_CMPL_COMPAREL_SHIFT                  (0U)
+#define EWM_CMPL_COMPAREL(x)                     (((uint8_t)(((uint8_t)(x)) << EWM_CMPL_COMPAREL_SHIFT)) & EWM_CMPL_COMPAREL_MASK)
+/*! @} */
+
+/*! @name CMPH - Compare High Register */
+/*! @{ */
+#define EWM_CMPH_COMPAREH_MASK                   (0xFFU)
+#define EWM_CMPH_COMPAREH_SHIFT                  (0U)
+#define EWM_CMPH_COMPAREH(x)                     (((uint8_t)(((uint8_t)(x)) << EWM_CMPH_COMPAREH_SHIFT)) & EWM_CMPH_COMPAREH_MASK)
+/*! @} */
+
+/*! @name CLKPRESCALER - Clock Prescaler Register */
+/*! @{ */
+#define EWM_CLKPRESCALER_CLK_DIV_MASK            (0xFFU)
+#define EWM_CLKPRESCALER_CLK_DIV_SHIFT           (0U)
+#define EWM_CLKPRESCALER_CLK_DIV(x)              (((uint8_t)(((uint8_t)(x)) << EWM_CLKPRESCALER_CLK_DIV_SHIFT)) & EWM_CLKPRESCALER_CLK_DIV_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group EWM_Register_Masks */
+
+
+/* EWM - Peripheral instance base addresses */
+/** Peripheral EWM base address */
+#define EWM_BASE                                 (0x40022000u)
+/** Peripheral EWM base pointer */
+#define EWM                                      ((EWM_Type *)EWM_BASE)
+/** Array initializer of EWM peripheral base addresses */
+#define EWM_BASE_ADDRS                           { EWM_BASE }
+/** Array initializer of EWM peripheral base pointers */
+#define EWM_BASE_PTRS                            { EWM }
+/** Interrupt vectors for the EWM peripheral type */
+#define EWM_IRQS                                 { EWM_IRQn }
+
+/*!
+ * @}
+ */ /* end of group EWM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FB Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FB_Peripheral_Access_Layer FB Peripheral Access Layer
+ * @{
+ */
+
+/** FB - Register Layout Typedef */
+typedef struct {
+  struct {                                         /* offset: 0x0, array step: 0xC */
+    __IO uint32_t CSAR;                              /**< Chip Select Address Register, array offset: 0x0, array step: 0xC */
+    __IO uint32_t CSMR;                              /**< Chip Select Mask Register, array offset: 0x4, array step: 0xC */
+    __IO uint32_t CSCR;                              /**< Chip Select Control Register, array offset: 0x8, array step: 0xC */
+  } CS[6];
+       uint8_t RESERVED_0[24];
+  __IO uint32_t CSPMCR;                            /**< Chip Select Port Multiplexing Control Register, offset: 0x60 */
+} FB_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FB Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FB_Register_Masks FB Register Masks
+ * @{
+ */
+
+/*! @name CSAR - Chip Select Address Register */
+/*! @{ */
+#define FB_CSAR_BA_MASK                          (0xFFFF0000U)
+#define FB_CSAR_BA_SHIFT                         (16U)
+#define FB_CSAR_BA(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSAR_BA_SHIFT)) & FB_CSAR_BA_MASK)
+/*! @} */
+
+/* The count of FB_CSAR */
+#define FB_CSAR_COUNT                            (6U)
+
+/*! @name CSMR - Chip Select Mask Register */
+/*! @{ */
+#define FB_CSMR_V_MASK                           (0x1U)
+#define FB_CSMR_V_SHIFT                          (0U)
+/*! V - Valid
+ *  0b0..Chip-select is invalid.
+ *  0b1..Chip-select is valid.
+ */
+#define FB_CSMR_V(x)                             (((uint32_t)(((uint32_t)(x)) << FB_CSMR_V_SHIFT)) & FB_CSMR_V_MASK)
+#define FB_CSMR_WP_MASK                          (0x100U)
+#define FB_CSMR_WP_SHIFT                         (8U)
+/*! WP - Write Protect
+ *  0b0..Write accesses are allowed.
+ *  0b1..Write accesses are not allowed. Attempting to write to the range of addresses for which the WP bit is set results in a bus error termination of the internal cycle and no external cycle.
+ */
+#define FB_CSMR_WP(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSMR_WP_SHIFT)) & FB_CSMR_WP_MASK)
+#define FB_CSMR_BAM_MASK                         (0xFFFF0000U)
+#define FB_CSMR_BAM_SHIFT                        (16U)
+/*! BAM - Base Address Mask
+ *  0b0000000000000000..The corresponding address bit in CSAR is used in the chip-select decode.
+ *  0b0000000000000001..The corresponding address bit in CSAR is a don't care in the chip-select decode.
+ */
+#define FB_CSMR_BAM(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSMR_BAM_SHIFT)) & FB_CSMR_BAM_MASK)
+/*! @} */
+
+/* The count of FB_CSMR */
+#define FB_CSMR_COUNT                            (6U)
+
+/*! @name CSCR - Chip Select Control Register */
+/*! @{ */
+#define FB_CSCR_BSTW_MASK                        (0x8U)
+#define FB_CSCR_BSTW_SHIFT                       (3U)
+/*! BSTW - Burst-Write Enable
+ *  0b0..Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst writes. For example, a 32-bit write to an 8-bit port takes four byte writes.
+ *  0b1..Enabled. Enables burst write of data larger than the specified port size, including 32-bit writes to 8- and 16-bit ports, 16-bit writes to 8-bit ports, and line writes to 8-, 16-, and 32-bit ports.
+ */
+#define FB_CSCR_BSTW(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTW_SHIFT)) & FB_CSCR_BSTW_MASK)
+#define FB_CSCR_BSTR_MASK                        (0x10U)
+#define FB_CSCR_BSTR_SHIFT                       (4U)
+/*! BSTR - Burst-Read Enable
+ *  0b0..Disabled. Data exceeding the specified port size is broken into individual, port-sized, non-burst reads. For example, a 32-bit read from an 8-bit port is broken into four 8-bit reads.
+ *  0b1..Enabled. Enables data burst reads larger than the specified port size, including 32-bit reads from 8- and 16-bit ports, 16-bit reads from 8-bit ports, and line reads from 8-, 16-, and 32-bit ports.
+ */
+#define FB_CSCR_BSTR(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BSTR_SHIFT)) & FB_CSCR_BSTR_MASK)
+#define FB_CSCR_BEM_MASK                         (0x20U)
+#define FB_CSCR_BEM_SHIFT                        (5U)
+/*! BEM - Byte-Enable Mode
+ *  0b0..FB_BE_B is asserted for data write only.
+ *  0b1..FB_BE_B is asserted for data read and write accesses.
+ */
+#define FB_CSCR_BEM(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BEM_SHIFT)) & FB_CSCR_BEM_MASK)
+#define FB_CSCR_PS_MASK                          (0xC0U)
+#define FB_CSCR_PS_SHIFT                         (6U)
+/*! PS - Port Size
+ *  0b00..32-bit port size. Valid data is sampled and driven on FB_D[31:0].
+ *  0b01..8-bit port size. Valid data is sampled and driven on FB_D[31:24] when BLS is 0b, or FB_D[7:0] when BLS is 1b.
+ *  0b1x..16-bit port size. Valid data is sampled and driven on FB_D[31:16] when BLS is 0b, or FB_D[15:0] when BLS is 1b.
+ */
+#define FB_CSCR_PS(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_PS_SHIFT)) & FB_CSCR_PS_MASK)
+#define FB_CSCR_AA_MASK                          (0x100U)
+#define FB_CSCR_AA_SHIFT                         (8U)
+/*! AA - Auto-Acknowledge Enable
+ *  0b0..Disabled. No internal transfer acknowledge is asserted and the cycle is terminated externally.
+ *  0b1..Enabled. Internal transfer acknowledge is asserted as specified by WS.
+ */
+#define FB_CSCR_AA(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_AA_SHIFT)) & FB_CSCR_AA_MASK)
+#define FB_CSCR_BLS_MASK                         (0x200U)
+#define FB_CSCR_BLS_SHIFT                        (9U)
+/*! BLS - Byte-Lane Shift
+ *  0b0..Not shifted. Data is left-aligned on FB_AD.
+ *  0b1..Shifted. Data is right-aligned on FB_AD.
+ */
+#define FB_CSCR_BLS(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_BLS_SHIFT)) & FB_CSCR_BLS_MASK)
+#define FB_CSCR_WS_MASK                          (0xFC00U)
+#define FB_CSCR_WS_SHIFT                         (10U)
+#define FB_CSCR_WS(x)                            (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WS_SHIFT)) & FB_CSCR_WS_MASK)
+#define FB_CSCR_WRAH_MASK                        (0x30000U)
+#define FB_CSCR_WRAH_SHIFT                       (16U)
+/*! WRAH - Write Address Hold or Deselect
+ *  0b00..1 cycle (default for all but FB_CS0_B)
+ *  0b01..2 cycles
+ *  0b10..3 cycles
+ *  0b11..4 cycles (default for FB_CS0_B)
+ */
+#define FB_CSCR_WRAH(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_WRAH_SHIFT)) & FB_CSCR_WRAH_MASK)
+#define FB_CSCR_RDAH_MASK                        (0xC0000U)
+#define FB_CSCR_RDAH_SHIFT                       (18U)
+/*! RDAH - Read Address Hold or Deselect
+ *  0b00..When AA is 1b, 1 cycle. When AA is 0b, 0 cycles.
+ *  0b01..When AA is 1b, 2 cycles. When AA is 0b, 1 cycle.
+ *  0b10..When AA is 1b, 3 cycles. When AA is 0b, 2 cycles.
+ *  0b11..When AA is 1b, 4 cycles. When AA is 0b, 3 cycles.
+ */
+#define FB_CSCR_RDAH(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_RDAH_SHIFT)) & FB_CSCR_RDAH_MASK)
+#define FB_CSCR_ASET_MASK                        (0x300000U)
+#define FB_CSCR_ASET_SHIFT                       (20U)
+/*! ASET - Address Setup
+ *  0b00..Assert FB_CSn_B on the first rising clock edge after the address is asserted (default for all but FB_CS0_B).
+ *  0b01..Assert FB_CSn_B on the second rising clock edge after the address is asserted.
+ *  0b10..Assert FB_CSn_B on the third rising clock edge after the address is asserted.
+ *  0b11..Assert FB_CSn_B on the fourth rising clock edge after the address is asserted (default for FB_CS0_B ).
+ */
+#define FB_CSCR_ASET(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_ASET_SHIFT)) & FB_CSCR_ASET_MASK)
+#define FB_CSCR_EXTS_MASK                        (0x400000U)
+#define FB_CSCR_EXTS_SHIFT                       (22U)
+/*! EXTS - EXTS
+ *  0b0..Disabled. FB_TS_B/FB_ALE asserts for one bus clock cycle.
+ *  0b1..Enabled. FB_TS_B/FB_ALE remains asserted until the first positive clock edge after FB_CSn_B asserts.
+ */
+#define FB_CSCR_EXTS(x)                          (((uint32_t)(((uint32_t)(x)) << FB_CSCR_EXTS_SHIFT)) & FB_CSCR_EXTS_MASK)
+#define FB_CSCR_SWSEN_MASK                       (0x800000U)
+#define FB_CSCR_SWSEN_SHIFT                      (23U)
+/*! SWSEN - Secondary Wait State Enable
+ *  0b0..Disabled. A number of wait states (specified by WS) are inserted before an internal transfer acknowledge is generated for all transfers.
+ *  0b1..Enabled. A number of wait states (specified by SWS) are inserted before an internal transfer acknowledge is generated for burst transfer secondary terminations.
+ */
+#define FB_CSCR_SWSEN(x)                         (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWSEN_SHIFT)) & FB_CSCR_SWSEN_MASK)
+#define FB_CSCR_SWS_MASK                         (0xFC000000U)
+#define FB_CSCR_SWS_SHIFT                        (26U)
+#define FB_CSCR_SWS(x)                           (((uint32_t)(((uint32_t)(x)) << FB_CSCR_SWS_SHIFT)) & FB_CSCR_SWS_MASK)
+/*! @} */
+
+/* The count of FB_CSCR */
+#define FB_CSCR_COUNT                            (6U)
+
+/*! @name CSPMCR - Chip Select Port Multiplexing Control Register */
+/*! @{ */
+#define FB_CSPMCR_GROUP5_MASK                    (0xF000U)
+#define FB_CSPMCR_GROUP5_SHIFT                   (12U)
+/*! GROUP5 - FlexBus Signal Group 5 Multiplex control
+ *  0b0000..FB_TA_B
+ *  0b0001..FB_CS3_B. You must also write 1b to CSCR[AA].
+ *  0b0010..FB_BE_7_0_B. You must also write 1b to CSCR[AA].
+ */
+#define FB_CSPMCR_GROUP5(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP5_SHIFT)) & FB_CSPMCR_GROUP5_MASK)
+#define FB_CSPMCR_GROUP4_MASK                    (0xF0000U)
+#define FB_CSPMCR_GROUP4_SHIFT                   (16U)
+/*! GROUP4 - FlexBus Signal Group 4 Multiplex control
+ *  0b0000..FB_TBST_B
+ *  0b0001..FB_CS2_B
+ *  0b0010..FB_BE_15_8_B
+ */
+#define FB_CSPMCR_GROUP4(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP4_SHIFT)) & FB_CSPMCR_GROUP4_MASK)
+#define FB_CSPMCR_GROUP3_MASK                    (0xF00000U)
+#define FB_CSPMCR_GROUP3_SHIFT                   (20U)
+/*! GROUP3 - FlexBus Signal Group 3 Multiplex control
+ *  0b0000..FB_CS5_B
+ *  0b0001..FB_TSIZ1
+ *  0b0010..FB_BE_23_16_B
+ */
+#define FB_CSPMCR_GROUP3(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP3_SHIFT)) & FB_CSPMCR_GROUP3_MASK)
+#define FB_CSPMCR_GROUP2_MASK                    (0xF000000U)
+#define FB_CSPMCR_GROUP2_SHIFT                   (24U)
+/*! GROUP2 - FlexBus Signal Group 2 Multiplex control
+ *  0b0000..FB_CS4_B
+ *  0b0001..FB_TSIZ0
+ *  0b0010..FB_BE_31_24_B
+ */
+#define FB_CSPMCR_GROUP2(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP2_SHIFT)) & FB_CSPMCR_GROUP2_MASK)
+#define FB_CSPMCR_GROUP1_MASK                    (0xF0000000U)
+#define FB_CSPMCR_GROUP1_SHIFT                   (28U)
+/*! GROUP1 - FlexBus Signal Group 1 Multiplex control
+ *  0b0000..FB_ALE
+ *  0b0001..FB_CS1_B
+ *  0b0010..FB_TS_B
+ */
+#define FB_CSPMCR_GROUP1(x)                      (((uint32_t)(((uint32_t)(x)) << FB_CSPMCR_GROUP1_SHIFT)) & FB_CSPMCR_GROUP1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group FB_Register_Masks */
+
+
+/* FB - Peripheral instance base addresses */
+/** Peripheral FB base address */
+#define FB_BASE                                  (0x4000C000u)
+/** Peripheral FB base pointer */
+#define FB                                       ((FB_Type *)FB_BASE)
+/** Array initializer of FB peripheral base addresses */
+#define FB_BASE_ADDRS                            { FB_BASE }
+/** Array initializer of FB peripheral base pointers */
+#define FB_BASE_PTRS                             { FB }
+
+/*!
+ * @}
+ */ /* end of group FB_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FGPIO Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FGPIO_Peripheral_Access_Layer FGPIO Peripheral Access Layer
+ * @{
+ */
+
+/** FGPIO - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PDOR;                              /**< Port Data Output Register, offset: 0x0 */
+  __O  uint32_t PSOR;                              /**< Port Set Output Register, offset: 0x4 */
+  __O  uint32_t PCOR;                              /**< Port Clear Output Register, offset: 0x8 */
+  __O  uint32_t PTOR;                              /**< Port Toggle Output Register, offset: 0xC */
+  __I  uint32_t PDIR;                              /**< Port Data Input Register, offset: 0x10 */
+  __IO uint32_t PDDR;                              /**< Port Data Direction Register, offset: 0x14 */
+} FGPIO_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FGPIO Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FGPIO_Register_Masks FGPIO Register Masks
+ * @{
+ */
+
+/*! @name PDOR - Port Data Output Register */
+/*! @{ */
+#define FGPIO_PDOR_PDO_MASK                      (0xFFFFFFFFU)
+#define FGPIO_PDOR_PDO_SHIFT                     (0U)
+#define FGPIO_PDOR_PDO(x)                        (((uint32_t)(((uint32_t)(x)) << FGPIO_PDOR_PDO_SHIFT)) & FGPIO_PDOR_PDO_MASK)
+/*! @} */
+
+/*! @name PSOR - Port Set Output Register */
+/*! @{ */
+#define FGPIO_PSOR_PTSO_MASK                     (0xFFFFFFFFU)
+#define FGPIO_PSOR_PTSO_SHIFT                    (0U)
+#define FGPIO_PSOR_PTSO(x)                       (((uint32_t)(((uint32_t)(x)) << FGPIO_PSOR_PTSO_SHIFT)) & FGPIO_PSOR_PTSO_MASK)
+/*! @} */
+
+/*! @name PCOR - Port Clear Output Register */
+/*! @{ */
+#define FGPIO_PCOR_PTCO_MASK                     (0xFFFFFFFFU)
+#define FGPIO_PCOR_PTCO_SHIFT                    (0U)
+#define FGPIO_PCOR_PTCO(x)                       (((uint32_t)(((uint32_t)(x)) << FGPIO_PCOR_PTCO_SHIFT)) & FGPIO_PCOR_PTCO_MASK)
+/*! @} */
+
+/*! @name PTOR - Port Toggle Output Register */
+/*! @{ */
+#define FGPIO_PTOR_PTTO_MASK                     (0xFFFFFFFFU)
+#define FGPIO_PTOR_PTTO_SHIFT                    (0U)
+#define FGPIO_PTOR_PTTO(x)                       (((uint32_t)(((uint32_t)(x)) << FGPIO_PTOR_PTTO_SHIFT)) & FGPIO_PTOR_PTTO_MASK)
+/*! @} */
+
+/*! @name PDIR - Port Data Input Register */
+/*! @{ */
+#define FGPIO_PDIR_PDI_MASK                      (0xFFFFFFFFU)
+#define FGPIO_PDIR_PDI_SHIFT                     (0U)
+#define FGPIO_PDIR_PDI(x)                        (((uint32_t)(((uint32_t)(x)) << FGPIO_PDIR_PDI_SHIFT)) & FGPIO_PDIR_PDI_MASK)
+/*! @} */
+
+/*! @name PDDR - Port Data Direction Register */
+/*! @{ */
+#define FGPIO_PDDR_PDD_MASK                      (0xFFFFFFFFU)
+#define FGPIO_PDDR_PDD_SHIFT                     (0U)
+#define FGPIO_PDDR_PDD(x)                        (((uint32_t)(((uint32_t)(x)) << FGPIO_PDDR_PDD_SHIFT)) & FGPIO_PDDR_PDD_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group FGPIO_Register_Masks */
+
+
+/* FGPIO - Peripheral instance base addresses */
+/** Peripheral FGPIOE base address */
+#define FGPIOE_BASE                              (0xF8000000u)
+/** Peripheral FGPIOE base pointer */
+#define FGPIOE                                   ((FGPIO_Type *)FGPIOE_BASE)
+/** Array initializer of FGPIO peripheral base addresses */
+#define FGPIO_BASE_ADDRS                         { 0u, 0u, 0u, 0u, FGPIOE_BASE }
+/** Array initializer of FGPIO peripheral base pointers */
+#define FGPIO_BASE_PTRS                          { (FGPIO_Type *)0u, (FGPIO_Type *)0u, (FGPIO_Type *)0u, (FGPIO_Type *)0u, FGPIOE }
+
+/*!
+ * @}
+ */ /* end of group FGPIO_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FLEXIO Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FLEXIO_Peripheral_Access_Layer FLEXIO Peripheral Access Layer
+ * @{
+ */
+
+/** FLEXIO - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CTRL;                              /**< FlexIO Control Register, offset: 0x8 */
+  __I  uint32_t PIN;                               /**< Pin State Register, offset: 0xC */
+  __IO uint32_t SHIFTSTAT;                         /**< Shifter Status Register, offset: 0x10 */
+  __IO uint32_t SHIFTERR;                          /**< Shifter Error Register, offset: 0x14 */
+  __IO uint32_t TIMSTAT;                           /**< Timer Status Register, offset: 0x18 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t SHIFTSIEN;                         /**< Shifter Status Interrupt Enable, offset: 0x20 */
+  __IO uint32_t SHIFTEIEN;                         /**< Shifter Error Interrupt Enable, offset: 0x24 */
+  __IO uint32_t TIMIEN;                            /**< Timer Interrupt Enable Register, offset: 0x28 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t SHIFTSDEN;                         /**< Shifter Status DMA Enable, offset: 0x30 */
+       uint8_t RESERVED_2[12];
+  __IO uint32_t SHIFTSTATE;                        /**< Shifter State Register, offset: 0x40 */
+       uint8_t RESERVED_3[60];
+  __IO uint32_t SHIFTCTL[8];                       /**< Shifter Control N Register, array offset: 0x80, array step: 0x4 */
+       uint8_t RESERVED_4[96];
+  __IO uint32_t SHIFTCFG[8];                       /**< Shifter Configuration N Register, array offset: 0x100, array step: 0x4 */
+       uint8_t RESERVED_5[224];
+  __IO uint32_t SHIFTBUF[8];                       /**< Shifter Buffer N Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_6[96];
+  __IO uint32_t SHIFTBUFBIS[8];                    /**< Shifter Buffer N Bit Swapped Register, array offset: 0x280, array step: 0x4 */
+       uint8_t RESERVED_7[96];
+  __IO uint32_t SHIFTBUFBYS[8];                    /**< Shifter Buffer N Byte Swapped Register, array offset: 0x300, array step: 0x4 */
+       uint8_t RESERVED_8[96];
+  __IO uint32_t SHIFTBUFBBS[8];                    /**< Shifter Buffer N Bit Byte Swapped Register, array offset: 0x380, array step: 0x4 */
+       uint8_t RESERVED_9[96];
+  __IO uint32_t TIMCTL[8];                         /**< Timer Control N Register, array offset: 0x400, array step: 0x4 */
+       uint8_t RESERVED_10[96];
+  __IO uint32_t TIMCFG[8];                         /**< Timer Configuration N Register, array offset: 0x480, array step: 0x4 */
+       uint8_t RESERVED_11[96];
+  __IO uint32_t TIMCMP[8];                         /**< Timer Compare N Register, array offset: 0x500, array step: 0x4 */
+       uint8_t RESERVED_12[352];
+  __IO uint32_t SHIFTBUFNBS[8];                    /**< Shifter Buffer N Nibble Byte Swapped Register, array offset: 0x680, array step: 0x4 */
+       uint8_t RESERVED_13[96];
+  __IO uint32_t SHIFTBUFHWS[8];                    /**< Shifter Buffer N Half Word Swapped Register, array offset: 0x700, array step: 0x4 */
+       uint8_t RESERVED_14[96];
+  __IO uint32_t SHIFTBUFNIS[8];                    /**< Shifter Buffer N Nibble Swapped Register, array offset: 0x780, array step: 0x4 */
+} FLEXIO_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FLEXIO Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FLEXIO_Register_Masks FLEXIO Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define FLEXIO_VERID_FEATURE_MASK                (0xFFFFU)
+#define FLEXIO_VERID_FEATURE_SHIFT               (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented.
+ *  0b0000000000000001..Supports state, logic and parallel modes.
+ */
+#define FLEXIO_VERID_FEATURE(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_FEATURE_SHIFT)) & FLEXIO_VERID_FEATURE_MASK)
+#define FLEXIO_VERID_MINOR_MASK                  (0xFF0000U)
+#define FLEXIO_VERID_MINOR_SHIFT                 (16U)
+#define FLEXIO_VERID_MINOR(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_MINOR_SHIFT)) & FLEXIO_VERID_MINOR_MASK)
+#define FLEXIO_VERID_MAJOR_MASK                  (0xFF000000U)
+#define FLEXIO_VERID_MAJOR_SHIFT                 (24U)
+#define FLEXIO_VERID_MAJOR(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_VERID_MAJOR_SHIFT)) & FLEXIO_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define FLEXIO_PARAM_SHIFTER_MASK                (0xFFU)
+#define FLEXIO_PARAM_SHIFTER_SHIFT               (0U)
+#define FLEXIO_PARAM_SHIFTER(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_SHIFTER_SHIFT)) & FLEXIO_PARAM_SHIFTER_MASK)
+#define FLEXIO_PARAM_TIMER_MASK                  (0xFF00U)
+#define FLEXIO_PARAM_TIMER_SHIFT                 (8U)
+#define FLEXIO_PARAM_TIMER(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_TIMER_SHIFT)) & FLEXIO_PARAM_TIMER_MASK)
+#define FLEXIO_PARAM_PIN_MASK                    (0xFF0000U)
+#define FLEXIO_PARAM_PIN_SHIFT                   (16U)
+#define FLEXIO_PARAM_PIN(x)                      (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_PIN_SHIFT)) & FLEXIO_PARAM_PIN_MASK)
+#define FLEXIO_PARAM_TRIGGER_MASK                (0xFF000000U)
+#define FLEXIO_PARAM_TRIGGER_SHIFT               (24U)
+#define FLEXIO_PARAM_TRIGGER(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_PARAM_TRIGGER_SHIFT)) & FLEXIO_PARAM_TRIGGER_MASK)
+/*! @} */
+
+/*! @name CTRL - FlexIO Control Register */
+/*! @{ */
+#define FLEXIO_CTRL_FLEXEN_MASK                  (0x1U)
+#define FLEXIO_CTRL_FLEXEN_SHIFT                 (0U)
+/*! FLEXEN - FlexIO Enable
+ *  0b0..FlexIO module is disabled.
+ *  0b1..FlexIO module is enabled.
+ */
+#define FLEXIO_CTRL_FLEXEN(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_FLEXEN_SHIFT)) & FLEXIO_CTRL_FLEXEN_MASK)
+#define FLEXIO_CTRL_SWRST_MASK                   (0x2U)
+#define FLEXIO_CTRL_SWRST_SHIFT                  (1U)
+/*! SWRST - Software Reset
+ *  0b0..Software reset is disabled
+ *  0b1..Software reset is enabled, all FlexIO registers except the Control Register are reset.
+ */
+#define FLEXIO_CTRL_SWRST(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_SWRST_SHIFT)) & FLEXIO_CTRL_SWRST_MASK)
+#define FLEXIO_CTRL_FASTACC_MASK                 (0x4U)
+#define FLEXIO_CTRL_FASTACC_SHIFT                (2U)
+/*! FASTACC - Fast Access
+ *  0b0..Configures for normal register accesses to FlexIO
+ *  0b1..Configures for fast register accesses to FlexIO
+ */
+#define FLEXIO_CTRL_FASTACC(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_FASTACC_SHIFT)) & FLEXIO_CTRL_FASTACC_MASK)
+#define FLEXIO_CTRL_DBGE_MASK                    (0x40000000U)
+#define FLEXIO_CTRL_DBGE_SHIFT                   (30U)
+/*! DBGE - Debug Enable
+ *  0b0..FlexIO is disabled in debug modes.
+ *  0b1..FlexIO is enabled in debug modes
+ */
+#define FLEXIO_CTRL_DBGE(x)                      (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_DBGE_SHIFT)) & FLEXIO_CTRL_DBGE_MASK)
+#define FLEXIO_CTRL_DOZEN_MASK                   (0x80000000U)
+#define FLEXIO_CTRL_DOZEN_SHIFT                  (31U)
+/*! DOZEN - Doze Enable
+ *  0b0..FlexIO enabled in Doze modes.
+ *  0b1..FlexIO disabled in Doze modes.
+ */
+#define FLEXIO_CTRL_DOZEN(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_CTRL_DOZEN_SHIFT)) & FLEXIO_CTRL_DOZEN_MASK)
+/*! @} */
+
+/*! @name PIN - Pin State Register */
+/*! @{ */
+#define FLEXIO_PIN_PDI_MASK                      (0xFFFFFFFFU)
+#define FLEXIO_PIN_PDI_SHIFT                     (0U)
+#define FLEXIO_PIN_PDI(x)                        (((uint32_t)(((uint32_t)(x)) << FLEXIO_PIN_PDI_SHIFT)) & FLEXIO_PIN_PDI_MASK)
+/*! @} */
+
+/*! @name SHIFTSTAT - Shifter Status Register */
+/*! @{ */
+#define FLEXIO_SHIFTSTAT_SSF_MASK                (0xFFU)
+#define FLEXIO_SHIFTSTAT_SSF_SHIFT               (0U)
+#define FLEXIO_SHIFTSTAT_SSF(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSTAT_SSF_SHIFT)) & FLEXIO_SHIFTSTAT_SSF_MASK)
+/*! @} */
+
+/*! @name SHIFTERR - Shifter Error Register */
+/*! @{ */
+#define FLEXIO_SHIFTERR_SEF_MASK                 (0xFFU)
+#define FLEXIO_SHIFTERR_SEF_SHIFT                (0U)
+#define FLEXIO_SHIFTERR_SEF(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTERR_SEF_SHIFT)) & FLEXIO_SHIFTERR_SEF_MASK)
+/*! @} */
+
+/*! @name TIMSTAT - Timer Status Register */
+/*! @{ */
+#define FLEXIO_TIMSTAT_TSF_MASK                  (0xFFU)
+#define FLEXIO_TIMSTAT_TSF_SHIFT                 (0U)
+#define FLEXIO_TIMSTAT_TSF(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMSTAT_TSF_SHIFT)) & FLEXIO_TIMSTAT_TSF_MASK)
+/*! @} */
+
+/*! @name SHIFTSIEN - Shifter Status Interrupt Enable */
+/*! @{ */
+#define FLEXIO_SHIFTSIEN_SSIE_MASK               (0xFFU)
+#define FLEXIO_SHIFTSIEN_SSIE_SHIFT              (0U)
+#define FLEXIO_SHIFTSIEN_SSIE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSIEN_SSIE_SHIFT)) & FLEXIO_SHIFTSIEN_SSIE_MASK)
+/*! @} */
+
+/*! @name SHIFTEIEN - Shifter Error Interrupt Enable */
+/*! @{ */
+#define FLEXIO_SHIFTEIEN_SEIE_MASK               (0xFFU)
+#define FLEXIO_SHIFTEIEN_SEIE_SHIFT              (0U)
+#define FLEXIO_SHIFTEIEN_SEIE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTEIEN_SEIE_SHIFT)) & FLEXIO_SHIFTEIEN_SEIE_MASK)
+/*! @} */
+
+/*! @name TIMIEN - Timer Interrupt Enable Register */
+/*! @{ */
+#define FLEXIO_TIMIEN_TEIE_MASK                  (0xFFU)
+#define FLEXIO_TIMIEN_TEIE_SHIFT                 (0U)
+#define FLEXIO_TIMIEN_TEIE(x)                    (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMIEN_TEIE_SHIFT)) & FLEXIO_TIMIEN_TEIE_MASK)
+/*! @} */
+
+/*! @name SHIFTSDEN - Shifter Status DMA Enable */
+/*! @{ */
+#define FLEXIO_SHIFTSDEN_SSDE_MASK               (0xFFU)
+#define FLEXIO_SHIFTSDEN_SSDE_SHIFT              (0U)
+#define FLEXIO_SHIFTSDEN_SSDE(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSDEN_SSDE_SHIFT)) & FLEXIO_SHIFTSDEN_SSDE_MASK)
+/*! @} */
+
+/*! @name SHIFTSTATE - Shifter State Register */
+/*! @{ */
+#define FLEXIO_SHIFTSTATE_STATE_MASK             (0x7U)
+#define FLEXIO_SHIFTSTATE_STATE_SHIFT            (0U)
+#define FLEXIO_SHIFTSTATE_STATE(x)               (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTSTATE_STATE_SHIFT)) & FLEXIO_SHIFTSTATE_STATE_MASK)
+/*! @} */
+
+/*! @name SHIFTCTL - Shifter Control N Register */
+/*! @{ */
+#define FLEXIO_SHIFTCTL_SMOD_MASK                (0x7U)
+#define FLEXIO_SHIFTCTL_SMOD_SHIFT               (0U)
+/*! SMOD - Shifter Mode
+ *  0b000..Disabled.
+ *  0b001..Receive mode. Captures the current Shifter content into the SHIFTBUF on expiration of the Timer.
+ *  0b010..Transmit mode. Load SHIFTBUF contents into the Shifter on expiration of the Timer.
+ *  0b011..Reserved.
+ *  0b100..Match Store mode. Shifter data is compared to SHIFTBUF content on expiration of the Timer.
+ *  0b101..Match Continuous mode. Shifter data is continuously compared to SHIFTBUF contents.
+ *  0b110..State mode. SHIFTBUF contents are used for storing programmable state attributes.
+ *  0b111..Logic mode. SHIFTBUF contents are used for implementing programmable logic look up table.
+ */
+#define FLEXIO_SHIFTCTL_SMOD(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_SMOD_SHIFT)) & FLEXIO_SHIFTCTL_SMOD_MASK)
+#define FLEXIO_SHIFTCTL_PINPOL_MASK              (0x80U)
+#define FLEXIO_SHIFTCTL_PINPOL_SHIFT             (7U)
+/*! PINPOL - Shifter Pin Polarity
+ *  0b0..Pin is active high
+ *  0b1..Pin is active low
+ */
+#define FLEXIO_SHIFTCTL_PINPOL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINPOL_SHIFT)) & FLEXIO_SHIFTCTL_PINPOL_MASK)
+#define FLEXIO_SHIFTCTL_PINSEL_MASK              (0x1F00U)
+#define FLEXIO_SHIFTCTL_PINSEL_SHIFT             (8U)
+#define FLEXIO_SHIFTCTL_PINSEL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINSEL_SHIFT)) & FLEXIO_SHIFTCTL_PINSEL_MASK)
+#define FLEXIO_SHIFTCTL_PINCFG_MASK              (0x30000U)
+#define FLEXIO_SHIFTCTL_PINCFG_SHIFT             (16U)
+/*! PINCFG - Shifter Pin Configuration
+ *  0b00..Shifter pin output disabled
+ *  0b01..Shifter pin open drain or bidirectional output enable
+ *  0b10..Shifter pin bidirectional output data
+ *  0b11..Shifter pin output
+ */
+#define FLEXIO_SHIFTCTL_PINCFG(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_PINCFG_SHIFT)) & FLEXIO_SHIFTCTL_PINCFG_MASK)
+#define FLEXIO_SHIFTCTL_TIMPOL_MASK              (0x800000U)
+#define FLEXIO_SHIFTCTL_TIMPOL_SHIFT             (23U)
+/*! TIMPOL - Timer Polarity
+ *  0b0..Shift on posedge of Shift clock
+ *  0b1..Shift on negedge of Shift clock
+ */
+#define FLEXIO_SHIFTCTL_TIMPOL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_TIMPOL_SHIFT)) & FLEXIO_SHIFTCTL_TIMPOL_MASK)
+#define FLEXIO_SHIFTCTL_TIMSEL_MASK              (0x7000000U)
+#define FLEXIO_SHIFTCTL_TIMSEL_SHIFT             (24U)
+#define FLEXIO_SHIFTCTL_TIMSEL(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCTL_TIMSEL_SHIFT)) & FLEXIO_SHIFTCTL_TIMSEL_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTCTL */
+#define FLEXIO_SHIFTCTL_COUNT                    (8U)
+
+/*! @name SHIFTCFG - Shifter Configuration N Register */
+/*! @{ */
+#define FLEXIO_SHIFTCFG_SSTART_MASK              (0x3U)
+#define FLEXIO_SHIFTCFG_SSTART_SHIFT             (0U)
+/*! SSTART - Shifter Start bit
+ *  0b00..Start bit disabled for transmitter/receiver/match store, transmitter loads data on enable
+ *  0b01..Start bit disabled for transmitter/receiver/match store, transmitter loads data on first shift
+ *  0b10..Transmitter outputs start bit value 0 before loading data on first shift, receiver/match store sets error flag if start bit is not 0
+ *  0b11..Transmitter outputs start bit value 1 before loading data on first shift, receiver/match store sets error flag if start bit is not 1
+ */
+#define FLEXIO_SHIFTCFG_SSTART(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_SSTART_SHIFT)) & FLEXIO_SHIFTCFG_SSTART_MASK)
+#define FLEXIO_SHIFTCFG_SSTOP_MASK               (0x30U)
+#define FLEXIO_SHIFTCFG_SSTOP_SHIFT              (4U)
+/*! SSTOP - Shifter Stop bit
+ *  0b00..Stop bit disabled for transmitter/receiver/match store
+ *  0b01..Reserved for transmitter/receiver/match store
+ *  0b10..Transmitter outputs stop bit value 0 on store, receiver/match store sets error flag if stop bit is not 0
+ *  0b11..Transmitter outputs stop bit value 1 on store, receiver/match store sets error flag if stop bit is not 1
+ */
+#define FLEXIO_SHIFTCFG_SSTOP(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_SSTOP_SHIFT)) & FLEXIO_SHIFTCFG_SSTOP_MASK)
+#define FLEXIO_SHIFTCFG_INSRC_MASK               (0x100U)
+#define FLEXIO_SHIFTCFG_INSRC_SHIFT              (8U)
+/*! INSRC - Input Source
+ *  0b0..Pin
+ *  0b1..Shifter N+1 Output
+ */
+#define FLEXIO_SHIFTCFG_INSRC(x)                 (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_INSRC_SHIFT)) & FLEXIO_SHIFTCFG_INSRC_MASK)
+#define FLEXIO_SHIFTCFG_PWIDTH_MASK              (0x1F0000U)
+#define FLEXIO_SHIFTCFG_PWIDTH_SHIFT             (16U)
+#define FLEXIO_SHIFTCFG_PWIDTH(x)                (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTCFG_PWIDTH_SHIFT)) & FLEXIO_SHIFTCFG_PWIDTH_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTCFG */
+#define FLEXIO_SHIFTCFG_COUNT                    (8U)
+
+/*! @name SHIFTBUF - Shifter Buffer N Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUF_SHIFTBUF_MASK            (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUF_SHIFTBUF_SHIFT           (0U)
+#define FLEXIO_SHIFTBUF_SHIFTBUF(x)              (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUF_SHIFTBUF_SHIFT)) & FLEXIO_SHIFTBUF_SHIFTBUF_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUF */
+#define FLEXIO_SHIFTBUF_COUNT                    (8U)
+
+/*! @name SHIFTBUFBIS - Shifter Buffer N Bit Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_SHIFT)) & FLEXIO_SHIFTBUFBIS_SHIFTBUFBIS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBIS */
+#define FLEXIO_SHIFTBUFBIS_COUNT                 (8U)
+
+/*! @name SHIFTBUFBYS - Shifter Buffer N Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_SHIFT)) & FLEXIO_SHIFTBUFBYS_SHIFTBUFBYS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBYS */
+#define FLEXIO_SHIFTBUFBYS_COUNT                 (8U)
+
+/*! @name SHIFTBUFBBS - Shifter Buffer N Bit Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_SHIFT)) & FLEXIO_SHIFTBUFBBS_SHIFTBUFBBS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFBBS */
+#define FLEXIO_SHIFTBUFBBS_COUNT                 (8U)
+
+/*! @name TIMCTL - Timer Control N Register */
+/*! @{ */
+#define FLEXIO_TIMCTL_TIMOD_MASK                 (0x3U)
+#define FLEXIO_TIMCTL_TIMOD_SHIFT                (0U)
+/*! TIMOD - Timer Mode
+ *  0b00..Timer Disabled.
+ *  0b01..Dual 8-bit counters baud mode.
+ *  0b10..Dual 8-bit counters PWM high mode.
+ *  0b11..Single 16-bit counter mode.
+ */
+#define FLEXIO_TIMCTL_TIMOD(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TIMOD_SHIFT)) & FLEXIO_TIMCTL_TIMOD_MASK)
+#define FLEXIO_TIMCTL_PINPOL_MASK                (0x80U)
+#define FLEXIO_TIMCTL_PINPOL_SHIFT               (7U)
+/*! PINPOL - Timer Pin Polarity
+ *  0b0..Pin is active high
+ *  0b1..Pin is active low
+ */
+#define FLEXIO_TIMCTL_PINPOL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINPOL_SHIFT)) & FLEXIO_TIMCTL_PINPOL_MASK)
+#define FLEXIO_TIMCTL_PINSEL_MASK                (0x1F00U)
+#define FLEXIO_TIMCTL_PINSEL_SHIFT               (8U)
+#define FLEXIO_TIMCTL_PINSEL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINSEL_SHIFT)) & FLEXIO_TIMCTL_PINSEL_MASK)
+#define FLEXIO_TIMCTL_PINCFG_MASK                (0x30000U)
+#define FLEXIO_TIMCTL_PINCFG_SHIFT               (16U)
+/*! PINCFG - Timer Pin Configuration
+ *  0b00..Timer pin output disabled
+ *  0b01..Timer pin open drain or bidirectional output enable
+ *  0b10..Timer pin bidirectional output data
+ *  0b11..Timer pin output
+ */
+#define FLEXIO_TIMCTL_PINCFG(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_PINCFG_SHIFT)) & FLEXIO_TIMCTL_PINCFG_MASK)
+#define FLEXIO_TIMCTL_TRGSRC_MASK                (0x400000U)
+#define FLEXIO_TIMCTL_TRGSRC_SHIFT               (22U)
+/*! TRGSRC - Trigger Source
+ *  0b0..External trigger selected
+ *  0b1..Internal trigger selected
+ */
+#define FLEXIO_TIMCTL_TRGSRC(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGSRC_SHIFT)) & FLEXIO_TIMCTL_TRGSRC_MASK)
+#define FLEXIO_TIMCTL_TRGPOL_MASK                (0x800000U)
+#define FLEXIO_TIMCTL_TRGPOL_SHIFT               (23U)
+/*! TRGPOL - Trigger Polarity
+ *  0b0..Trigger active high
+ *  0b1..Trigger active low
+ */
+#define FLEXIO_TIMCTL_TRGPOL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGPOL_SHIFT)) & FLEXIO_TIMCTL_TRGPOL_MASK)
+#define FLEXIO_TIMCTL_TRGSEL_MASK                (0x3F000000U)
+#define FLEXIO_TIMCTL_TRGSEL_SHIFT               (24U)
+#define FLEXIO_TIMCTL_TRGSEL(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCTL_TRGSEL_SHIFT)) & FLEXIO_TIMCTL_TRGSEL_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCTL */
+#define FLEXIO_TIMCTL_COUNT                      (8U)
+
+/*! @name TIMCFG - Timer Configuration N Register */
+/*! @{ */
+#define FLEXIO_TIMCFG_TSTART_MASK                (0x2U)
+#define FLEXIO_TIMCFG_TSTART_SHIFT               (1U)
+/*! TSTART - Timer Start Bit
+ *  0b0..Start bit disabled
+ *  0b1..Start bit enabled
+ */
+#define FLEXIO_TIMCFG_TSTART(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TSTART_SHIFT)) & FLEXIO_TIMCFG_TSTART_MASK)
+#define FLEXIO_TIMCFG_TSTOP_MASK                 (0x30U)
+#define FLEXIO_TIMCFG_TSTOP_SHIFT                (4U)
+/*! TSTOP - Timer Stop Bit
+ *  0b00..Stop bit disabled
+ *  0b01..Stop bit is enabled on timer compare
+ *  0b10..Stop bit is enabled on timer disable
+ *  0b11..Stop bit is enabled on timer compare and timer disable
+ */
+#define FLEXIO_TIMCFG_TSTOP(x)                   (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TSTOP_SHIFT)) & FLEXIO_TIMCFG_TSTOP_MASK)
+#define FLEXIO_TIMCFG_TIMENA_MASK                (0x700U)
+#define FLEXIO_TIMCFG_TIMENA_SHIFT               (8U)
+/*! TIMENA - Timer Enable
+ *  0b000..Timer always enabled
+ *  0b001..Timer enabled on Timer N-1 enable
+ *  0b010..Timer enabled on Trigger high
+ *  0b011..Timer enabled on Trigger high and Pin high
+ *  0b100..Timer enabled on Pin rising edge
+ *  0b101..Timer enabled on Pin rising edge and Trigger high
+ *  0b110..Timer enabled on Trigger rising edge
+ *  0b111..Timer enabled on Trigger rising or falling edge
+ */
+#define FLEXIO_TIMCFG_TIMENA(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMENA_SHIFT)) & FLEXIO_TIMCFG_TIMENA_MASK)
+#define FLEXIO_TIMCFG_TIMDIS_MASK                (0x7000U)
+#define FLEXIO_TIMCFG_TIMDIS_SHIFT               (12U)
+/*! TIMDIS - Timer Disable
+ *  0b000..Timer never disabled
+ *  0b001..Timer disabled on Timer N-1 disable
+ *  0b010..Timer disabled on Timer compare (upper 8-bits match and decrement)
+ *  0b011..Timer disabled on Timer compare (upper 8-bits match and decrement) and Trigger Low
+ *  0b100..Timer disabled on Pin rising or falling edge
+ *  0b101..Timer disabled on Pin rising or falling edge provided Trigger is high
+ *  0b110..Timer disabled on Trigger falling edge
+ *  0b111..Reserved
+ */
+#define FLEXIO_TIMCFG_TIMDIS(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMDIS_SHIFT)) & FLEXIO_TIMCFG_TIMDIS_MASK)
+#define FLEXIO_TIMCFG_TIMRST_MASK                (0x70000U)
+#define FLEXIO_TIMCFG_TIMRST_SHIFT               (16U)
+/*! TIMRST - Timer Reset
+ *  0b000..Timer never reset
+ *  0b001..Reserved
+ *  0b010..Timer reset on Timer Pin equal to Timer Output
+ *  0b011..Timer reset on Timer Trigger equal to Timer Output
+ *  0b100..Timer reset on Timer Pin rising edge
+ *  0b101..Reserved
+ *  0b110..Timer reset on Trigger rising edge
+ *  0b111..Timer reset on Trigger rising or falling edge
+ */
+#define FLEXIO_TIMCFG_TIMRST(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMRST_SHIFT)) & FLEXIO_TIMCFG_TIMRST_MASK)
+#define FLEXIO_TIMCFG_TIMDEC_MASK                (0x300000U)
+#define FLEXIO_TIMCFG_TIMDEC_SHIFT               (20U)
+/*! TIMDEC - Timer Decrement
+ *  0b00..Decrement counter on FlexIO clock, Shift clock equals Timer output.
+ *  0b01..Decrement counter on Trigger input (both edges), Shift clock equals Timer output.
+ *  0b10..Decrement counter on Pin input (both edges), Shift clock equals Pin input.
+ *  0b11..Decrement counter on Trigger input (both edges), Shift clock equals Trigger input.
+ */
+#define FLEXIO_TIMCFG_TIMDEC(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMDEC_SHIFT)) & FLEXIO_TIMCFG_TIMDEC_MASK)
+#define FLEXIO_TIMCFG_TIMOUT_MASK                (0x3000000U)
+#define FLEXIO_TIMCFG_TIMOUT_SHIFT               (24U)
+/*! TIMOUT - Timer Output
+ *  0b00..Timer output is logic one when enabled and is not affected by timer reset
+ *  0b01..Timer output is logic zero when enabled and is not affected by timer reset
+ *  0b10..Timer output is logic one when enabled and on timer reset
+ *  0b11..Timer output is logic zero when enabled and on timer reset
+ */
+#define FLEXIO_TIMCFG_TIMOUT(x)                  (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCFG_TIMOUT_SHIFT)) & FLEXIO_TIMCFG_TIMOUT_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCFG */
+#define FLEXIO_TIMCFG_COUNT                      (8U)
+
+/*! @name TIMCMP - Timer Compare N Register */
+/*! @{ */
+#define FLEXIO_TIMCMP_CMP_MASK                   (0xFFFFU)
+#define FLEXIO_TIMCMP_CMP_SHIFT                  (0U)
+#define FLEXIO_TIMCMP_CMP(x)                     (((uint32_t)(((uint32_t)(x)) << FLEXIO_TIMCMP_CMP_SHIFT)) & FLEXIO_TIMCMP_CMP_MASK)
+/*! @} */
+
+/* The count of FLEXIO_TIMCMP */
+#define FLEXIO_TIMCMP_COUNT                      (8U)
+
+/*! @name SHIFTBUFNBS - Shifter Buffer N Nibble Byte Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_SHIFT)) & FLEXIO_SHIFTBUFNBS_SHIFTBUFNBS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFNBS */
+#define FLEXIO_SHIFTBUFNBS_COUNT                 (8U)
+
+/*! @name SHIFTBUFHWS - Shifter Buffer N Half Word Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_SHIFT)) & FLEXIO_SHIFTBUFHWS_SHIFTBUFHWS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFHWS */
+#define FLEXIO_SHIFTBUFHWS_COUNT                 (8U)
+
+/*! @name SHIFTBUFNIS - Shifter Buffer N Nibble Swapped Register */
+/*! @{ */
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_MASK      (0xFFFFFFFFU)
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_SHIFT     (0U)
+#define FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS(x)        (((uint32_t)(((uint32_t)(x)) << FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_SHIFT)) & FLEXIO_SHIFTBUFNIS_SHIFTBUFNIS_MASK)
+/*! @} */
+
+/* The count of FLEXIO_SHIFTBUFNIS */
+#define FLEXIO_SHIFTBUFNIS_COUNT                 (8U)
+
+
+/*!
+ * @}
+ */ /* end of group FLEXIO_Register_Masks */
+
+
+/* FLEXIO - Peripheral instance base addresses */
+/** Peripheral FLEXIO0 base address */
+#define FLEXIO0_BASE                             (0x40039000u)
+/** Peripheral FLEXIO0 base pointer */
+#define FLEXIO0                                  ((FLEXIO_Type *)FLEXIO0_BASE)
+/** Array initializer of FLEXIO peripheral base addresses */
+#define FLEXIO_BASE_ADDRS                        { FLEXIO0_BASE }
+/** Array initializer of FLEXIO peripheral base pointers */
+#define FLEXIO_BASE_PTRS                         { FLEXIO0 }
+/** Interrupt vectors for the FLEXIO peripheral type */
+#define FLEXIO_IRQS                              { FLEXIO0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group FLEXIO_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- FTFE Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FTFE_Peripheral_Access_Layer FTFE Peripheral Access Layer
+ * @{
+ */
+
+/** FTFE - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t FSTAT;                              /**< Flash Status Register, offset: 0x0 */
+  __IO uint8_t FCNFG;                              /**< Flash Configuration Register, offset: 0x1 */
+  __I  uint8_t FSEC;                               /**< Flash Security Register, offset: 0x2 */
+       uint8_t RESERVED_0[1];
+  __IO uint8_t FCCOB3;                             /**< Flash Common Command Object Registers, offset: 0x4 */
+  __IO uint8_t FCCOB2;                             /**< Flash Common Command Object Registers, offset: 0x5 */
+  __IO uint8_t FCCOB1;                             /**< Flash Common Command Object Registers, offset: 0x6 */
+  __IO uint8_t FCCOB0;                             /**< Flash Common Command Object Registers, offset: 0x7 */
+  __IO uint8_t FCCOB7;                             /**< Flash Common Command Object Registers, offset: 0x8 */
+  __IO uint8_t FCCOB6;                             /**< Flash Common Command Object Registers, offset: 0x9 */
+  __IO uint8_t FCCOB5;                             /**< Flash Common Command Object Registers, offset: 0xA */
+  __IO uint8_t FCCOB4;                             /**< Flash Common Command Object Registers, offset: 0xB */
+  __IO uint8_t FCCOBB;                             /**< Flash Common Command Object Registers, offset: 0xC */
+  __IO uint8_t FCCOBA;                             /**< Flash Common Command Object Registers, offset: 0xD */
+  __IO uint8_t FCCOB9;                             /**< Flash Common Command Object Registers, offset: 0xE */
+  __IO uint8_t FCCOB8;                             /**< Flash Common Command Object Registers, offset: 0xF */
+  __I  uint8_t FOPT3;                              /**< Flash Option Registers, offset: 0x10 */
+  __I  uint8_t FOPT2;                              /**< Flash Option Registers, offset: 0x11 */
+  __I  uint8_t FOPT1;                              /**< Flash Option Registers, offset: 0x12 */
+  __I  uint8_t FOPT0;                              /**< Flash Option Registers, offset: 0x13 */
+       uint8_t RESERVED_1[4];
+  __IO uint8_t FPROTH3;                            /**< Primary Program Flash Protection Registers, offset: 0x18 */
+  __IO uint8_t FPROTH2;                            /**< Primary Program Flash Protection Registers, offset: 0x19 */
+  __IO uint8_t FPROTH1;                            /**< Primary Program Flash Protection Registers, offset: 0x1A */
+  __IO uint8_t FPROTH0;                            /**< Primary Program Flash Protection Registers, offset: 0x1B */
+  __IO uint8_t FPROTL3;                            /**< Primary Program Flash Protection Registers, offset: 0x1C */
+  __IO uint8_t FPROTL2;                            /**< Primary Program Flash Protection Registers, offset: 0x1D */
+  __IO uint8_t FPROTL1;                            /**< Primary Program Flash Protection Registers, offset: 0x1E */
+  __IO uint8_t FPROTL0;                            /**< Primary Program Flash Protection Registers, offset: 0x1F */
+       uint8_t RESERVED_2[4];
+  __IO uint8_t FPROTSL;                            /**< Secondary Program Flash Protection Registers, offset: 0x24 */
+  __IO uint8_t FPROTSH;                            /**< Secondary Program Flash Protection Registers, offset: 0x25 */
+       uint8_t RESERVED_3[6];
+  __I  uint8_t FACSS;                              /**< Primary Flash Access Segment Size Register, offset: 0x2C */
+  __I  uint8_t FACSN;                              /**< Primary Flash Access Segment Number Register, offset: 0x2D */
+  __I  uint8_t FACSSS;                             /**< Secondary Flash Access Segment Size Register, offset: 0x2E */
+  __I  uint8_t FACSNS;                             /**< Secondary Flash Access Segment Number Register, offset: 0x2F */
+  __I  uint8_t XACCH3;                             /**< Primary Execute-only Access Registers, offset: 0x30 */
+  __I  uint8_t XACCH2;                             /**< Primary Execute-only Access Registers, offset: 0x31 */
+  __I  uint8_t XACCH1;                             /**< Primary Execute-only Access Registers, offset: 0x32 */
+  __I  uint8_t XACCH0;                             /**< Primary Execute-only Access Registers, offset: 0x33 */
+  __I  uint8_t XACCL3;                             /**< Primary Execute-only Access Registers, offset: 0x34 */
+  __I  uint8_t XACCL2;                             /**< Primary Execute-only Access Registers, offset: 0x35 */
+  __I  uint8_t XACCL1;                             /**< Primary Execute-only Access Registers, offset: 0x36 */
+  __I  uint8_t XACCL0;                             /**< Primary Execute-only Access Registers, offset: 0x37 */
+  __I  uint8_t SACCH3;                             /**< Primary Supervisor-only Access Registers, offset: 0x38 */
+  __I  uint8_t SACCH2;                             /**< Primary Supervisor-only Access Registers, offset: 0x39 */
+  __I  uint8_t SACCH1;                             /**< Primary Supervisor-only Access Registers, offset: 0x3A */
+  __I  uint8_t SACCH0;                             /**< Primary Supervisor-only Access Registers, offset: 0x3B */
+  __I  uint8_t SACCL3;                             /**< Primary Supervisor-only Access Registers, offset: 0x3C */
+  __I  uint8_t SACCL2;                             /**< Primary Supervisor-only Access Registers, offset: 0x3D */
+  __I  uint8_t SACCL1;                             /**< Primary Supervisor-only Access Registers, offset: 0x3E */
+  __I  uint8_t SACCL0;                             /**< Primary Supervisor-only Access Registers, offset: 0x3F */
+       uint8_t RESERVED_4[4];
+  __I  uint8_t XACCSL;                             /**< Secondary Execute-only Access Registers, offset: 0x44 */
+  __I  uint8_t XACCSH;                             /**< Secondary Execute-only Access Registers, offset: 0x45 */
+       uint8_t RESERVED_5[6];
+  __I  uint8_t SACCSL;                             /**< Secondary Supervisor-only Access Registers, offset: 0x4C */
+  __I  uint8_t SACCSH;                             /**< Secondary Supervisor-only Access Registers, offset: 0x4D */
+       uint8_t RESERVED_6[4];
+  __I  uint8_t FSTDBYCTL;                          /**< Flash Standby Control Register, offset: 0x52 */
+  __IO uint8_t FSTDBY;                             /**< Flash Standby Register, offset: 0x53 */
+} FTFE_Type;
+
+/* ----------------------------------------------------------------------------
+   -- FTFE Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup FTFE_Register_Masks FTFE Register Masks
+ * @{
+ */
+
+/*! @name FSTAT - Flash Status Register */
+/*! @{ */
+#define FTFE_FSTAT_MGSTAT0_MASK                  (0x1U)
+#define FTFE_FSTAT_MGSTAT0_SHIFT                 (0U)
+#define FTFE_FSTAT_MGSTAT0(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_MGSTAT0_SHIFT)) & FTFE_FSTAT_MGSTAT0_MASK)
+#define FTFE_FSTAT_FPVIOL_MASK                   (0x10U)
+#define FTFE_FSTAT_FPVIOL_SHIFT                  (4U)
+/*! FPVIOL - Flash Protection Violation Flag
+ *  0b0..No protection violation detected
+ *  0b1..Protection violation detected
+ */
+#define FTFE_FSTAT_FPVIOL(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_FPVIOL_SHIFT)) & FTFE_FSTAT_FPVIOL_MASK)
+#define FTFE_FSTAT_ACCERR_MASK                   (0x20U)
+#define FTFE_FSTAT_ACCERR_SHIFT                  (5U)
+/*! ACCERR - Flash Access Error Flag
+ *  0b0..No access error detected
+ *  0b1..Access error detected
+ */
+#define FTFE_FSTAT_ACCERR(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_ACCERR_SHIFT)) & FTFE_FSTAT_ACCERR_MASK)
+#define FTFE_FSTAT_RDCOLERR_MASK                 (0x40U)
+#define FTFE_FSTAT_RDCOLERR_SHIFT                (6U)
+/*! RDCOLERR - Flash Read Collision Error Flag
+ *  0b0..No collision error detected
+ *  0b1..Collision error detected
+ */
+#define FTFE_FSTAT_RDCOLERR(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_RDCOLERR_SHIFT)) & FTFE_FSTAT_RDCOLERR_MASK)
+#define FTFE_FSTAT_CCIF_MASK                     (0x80U)
+#define FTFE_FSTAT_CCIF_SHIFT                    (7U)
+/*! CCIF - Command Complete Interrupt Flag
+ *  0b0..Flash command in progress
+ *  0b1..Flash command has completed
+ */
+#define FTFE_FSTAT_CCIF(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FSTAT_CCIF_SHIFT)) & FTFE_FSTAT_CCIF_MASK)
+/*! @} */
+
+/*! @name FCNFG - Flash Configuration Register */
+/*! @{ */
+#define FTFE_FCNFG_RAMRDY_MASK                   (0x2U)
+#define FTFE_FCNFG_RAMRDY_SHIFT                  (1U)
+/*! RAMRDY - RAM Ready
+ *  0b0..Programming acceleration RAM is not available
+ *  0b1..Programming acceleration RAM is available
+ */
+#define FTFE_FCNFG_RAMRDY(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RAMRDY_SHIFT)) & FTFE_FCNFG_RAMRDY_MASK)
+#define FTFE_FCNFG_CRCRDY_MASK                   (0x4U)
+#define FTFE_FCNFG_CRCRDY_SHIFT                  (2U)
+/*! CRCRDY - CRC Ready
+ *  0b0..Programming acceleration RAM is not available for CRC operations
+ *  0b1..Programming acceleration RAM is available for CRC operations
+ */
+#define FTFE_FCNFG_CRCRDY(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_CRCRDY_SHIFT)) & FTFE_FCNFG_CRCRDY_MASK)
+#define FTFE_FCNFG_SWAP_MASK                     (0x8U)
+#define FTFE_FCNFG_SWAP_SHIFT                    (3U)
+/*! SWAP - Swap
+ *  0b0..Program flash 0 block is located at relative address 0x0000
+ *  0b1..Program flash 1 block is located at relative address 0x0000
+ */
+#define FTFE_FCNFG_SWAP(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_SWAP_SHIFT)) & FTFE_FCNFG_SWAP_MASK)
+#define FTFE_FCNFG_ERSSUSP_MASK                  (0x10U)
+#define FTFE_FCNFG_ERSSUSP_SHIFT                 (4U)
+/*! ERSSUSP - Erase Suspend
+ *  0b0..No suspend requested
+ *  0b1..Suspend the current Erase Flash Sector command execution
+ */
+#define FTFE_FCNFG_ERSSUSP(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSSUSP_SHIFT)) & FTFE_FCNFG_ERSSUSP_MASK)
+#define FTFE_FCNFG_ERSAREQ_MASK                  (0x20U)
+#define FTFE_FCNFG_ERSAREQ_SHIFT                 (5U)
+/*! ERSAREQ - Erase All Request
+ *  0b0..No request or request complete
+ *  0b1..Request to: (1) run the Erase All Blocks command, (2) verify the erased state, (3) program the security byte in the Flash Configuration Field to the unsecure state, and (4) release MCU security by setting the FSEC[SEC] field to the unsecure state.
+ */
+#define FTFE_FCNFG_ERSAREQ(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_ERSAREQ_SHIFT)) & FTFE_FCNFG_ERSAREQ_MASK)
+#define FTFE_FCNFG_RDCOLLIE_MASK                 (0x40U)
+#define FTFE_FCNFG_RDCOLLIE_SHIFT                (6U)
+/*! RDCOLLIE - Read Collision Error Interrupt Enable
+ *  0b0..Read collision error interrupt disabled
+ *  0b1..Read collision error interrupt enabled. An interrupt request is generated whenever a flash read collision error is detected (see the description of FSTAT[RDCOLERR]).
+ */
+#define FTFE_FCNFG_RDCOLLIE(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_RDCOLLIE_SHIFT)) & FTFE_FCNFG_RDCOLLIE_MASK)
+#define FTFE_FCNFG_CCIE_MASK                     (0x80U)
+#define FTFE_FCNFG_CCIE_SHIFT                    (7U)
+/*! CCIE - Command Complete Interrupt Enable
+ *  0b0..Command complete interrupt disabled
+ *  0b1..Command complete interrupt enabled. An interrupt request is generated whenever the FSTAT[CCIF] flag is set.
+ */
+#define FTFE_FCNFG_CCIE(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FCNFG_CCIE_SHIFT)) & FTFE_FCNFG_CCIE_MASK)
+/*! @} */
+
+/*! @name FSEC - Flash Security Register */
+/*! @{ */
+#define FTFE_FSEC_SEC_MASK                       (0x3U)
+#define FTFE_FSEC_SEC_SHIFT                      (0U)
+/*! SEC - Flash Security
+ *  0b00..MCU security status is secure
+ *  0b01..MCU security status is secure
+ *  0b10..MCU security status is unsecure (The standard shipping condition of the flash module is unsecure.)
+ *  0b11..MCU security status is secure
+ */
+#define FTFE_FSEC_SEC(x)                         (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_SEC_SHIFT)) & FTFE_FSEC_SEC_MASK)
+#define FTFE_FSEC_FSLACC_MASK                    (0xCU)
+#define FTFE_FSEC_FSLACC_SHIFT                   (2U)
+/*! FSLACC - Factory Security Level Access Code
+ *  0b00..Factory access granted
+ *  0b01..Factory access denied
+ *  0b10..Factory access denied
+ *  0b11..Factory access granted
+ */
+#define FTFE_FSEC_FSLACC(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_FSLACC_SHIFT)) & FTFE_FSEC_FSLACC_MASK)
+#define FTFE_FSEC_MEEN_MASK                      (0x30U)
+#define FTFE_FSEC_MEEN_SHIFT                     (4U)
+/*! MEEN - Mass Erase Enable Bits
+ *  0b00..Mass erase is enabled
+ *  0b01..Mass erase is enabled
+ *  0b10..Mass erase is disabled
+ *  0b11..Mass erase is enabled
+ */
+#define FTFE_FSEC_MEEN(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_MEEN_SHIFT)) & FTFE_FSEC_MEEN_MASK)
+#define FTFE_FSEC_KEYEN_MASK                     (0xC0U)
+#define FTFE_FSEC_KEYEN_SHIFT                    (6U)
+/*! KEYEN - Backdoor Key Security Enable
+ *  0b00..Backdoor key access disabled
+ *  0b01..Backdoor key access disabled (preferred KEYEN state to disable backdoor key access)
+ *  0b10..Backdoor key access enabled
+ *  0b11..Backdoor key access disabled
+ */
+#define FTFE_FSEC_KEYEN(x)                       (((uint8_t)(((uint8_t)(x)) << FTFE_FSEC_KEYEN_SHIFT)) & FTFE_FSEC_KEYEN_MASK)
+/*! @} */
+
+/*! @name FCCOB3 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB3_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB3_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB3_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB3_CCOBn_SHIFT)) & FTFE_FCCOB3_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB2 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB2_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB2_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB2_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB2_CCOBn_SHIFT)) & FTFE_FCCOB2_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB1 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB1_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB1_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB1_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB1_CCOBn_SHIFT)) & FTFE_FCCOB1_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB0 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB0_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB0_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB0_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB0_CCOBn_SHIFT)) & FTFE_FCCOB0_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB7 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB7_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB7_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB7_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB7_CCOBn_SHIFT)) & FTFE_FCCOB7_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB6 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB6_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB6_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB6_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB6_CCOBn_SHIFT)) & FTFE_FCCOB6_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB5 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB5_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB5_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB5_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB5_CCOBn_SHIFT)) & FTFE_FCCOB5_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB4 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB4_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB4_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB4_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB4_CCOBn_SHIFT)) & FTFE_FCCOB4_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOBB - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOBB_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOBB_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOBB_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBB_CCOBn_SHIFT)) & FTFE_FCCOBB_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOBA - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOBA_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOBA_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOBA_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOBA_CCOBn_SHIFT)) & FTFE_FCCOBA_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB9 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB9_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB9_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB9_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB9_CCOBn_SHIFT)) & FTFE_FCCOB9_CCOBn_MASK)
+/*! @} */
+
+/*! @name FCCOB8 - Flash Common Command Object Registers */
+/*! @{ */
+#define FTFE_FCCOB8_CCOBn_MASK                   (0xFFU)
+#define FTFE_FCCOB8_CCOBn_SHIFT                  (0U)
+#define FTFE_FCCOB8_CCOBn(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FCCOB8_CCOBn_SHIFT)) & FTFE_FCCOB8_CCOBn_MASK)
+/*! @} */
+
+/*! @name FOPT3 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT3_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT3_OPT_SHIFT                     (0U)
+#define FTFE_FOPT3_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT3_OPT_SHIFT)) & FTFE_FOPT3_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT2 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT2_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT2_OPT_SHIFT                     (0U)
+#define FTFE_FOPT2_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT2_OPT_SHIFT)) & FTFE_FOPT2_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT1 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT1_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT1_OPT_SHIFT                     (0U)
+#define FTFE_FOPT1_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT1_OPT_SHIFT)) & FTFE_FOPT1_OPT_MASK)
+/*! @} */
+
+/*! @name FOPT0 - Flash Option Registers */
+/*! @{ */
+#define FTFE_FOPT0_OPT_MASK                      (0xFFU)
+#define FTFE_FOPT0_OPT_SHIFT                     (0U)
+#define FTFE_FOPT0_OPT(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_FOPT0_OPT_SHIFT)) & FTFE_FOPT0_OPT_MASK)
+/*! @} */
+
+/*! @name FPROTH3 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH3_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH3_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH3_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH3_PROT_SHIFT)) & FTFE_FPROTH3_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH2 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH2_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH2_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH2_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH2_PROT_SHIFT)) & FTFE_FPROTH2_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH1 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH1_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH1_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH1_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH1_PROT_SHIFT)) & FTFE_FPROTH1_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTH0 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTH0_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTH0_PROT_SHIFT                  (0U)
+#define FTFE_FPROTH0_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTH0_PROT_SHIFT)) & FTFE_FPROTH0_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL3 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL3_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL3_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL3_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL3_PROT_SHIFT)) & FTFE_FPROTL3_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL2 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL2_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL2_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL2_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL2_PROT_SHIFT)) & FTFE_FPROTL2_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL1 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL1_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL1_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL1_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL1_PROT_SHIFT)) & FTFE_FPROTL1_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTL0 - Primary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTL0_PROT_MASK                   (0xFFU)
+#define FTFE_FPROTL0_PROT_SHIFT                  (0U)
+#define FTFE_FPROTL0_PROT(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTL0_PROT_SHIFT)) & FTFE_FPROTL0_PROT_MASK)
+/*! @} */
+
+/*! @name FPROTSL - Secondary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTSL_PROTS_MASK                  (0xFFU)
+#define FTFE_FPROTSL_PROTS_SHIFT                 (0U)
+#define FTFE_FPROTSL_PROTS(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTSL_PROTS_SHIFT)) & FTFE_FPROTSL_PROTS_MASK)
+/*! @} */
+
+/*! @name FPROTSH - Secondary Program Flash Protection Registers */
+/*! @{ */
+#define FTFE_FPROTSH_PROTS_MASK                  (0xFFU)
+#define FTFE_FPROTSH_PROTS_SHIFT                 (0U)
+#define FTFE_FPROTSH_PROTS(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FPROTSH_PROTS_SHIFT)) & FTFE_FPROTSH_PROTS_MASK)
+/*! @} */
+
+/*! @name FACSS - Primary Flash Access Segment Size Register */
+/*! @{ */
+#define FTFE_FACSS_SGSIZE_MASK                   (0xFFU)
+#define FTFE_FACSS_SGSIZE_SHIFT                  (0U)
+#define FTFE_FACSS_SGSIZE(x)                     (((uint8_t)(((uint8_t)(x)) << FTFE_FACSS_SGSIZE_SHIFT)) & FTFE_FACSS_SGSIZE_MASK)
+/*! @} */
+
+/*! @name FACSN - Primary Flash Access Segment Number Register */
+/*! @{ */
+#define FTFE_FACSN_NUMSG_MASK                    (0xFFU)
+#define FTFE_FACSN_NUMSG_SHIFT                   (0U)
+/*! NUMSG - Number of Segments Indicator
+ *  0b00110000..Primary Program flash memory is divided into 48 segments (768 Kbytes, 1.5 Mbytes)
+ *  0b01000000..Primary Program flash memory is divided into 64 segments (512 Kbytes, 1 Mbyte, 2 Mbytes)
+ */
+#define FTFE_FACSN_NUMSG(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_FACSN_NUMSG_SHIFT)) & FTFE_FACSN_NUMSG_MASK)
+/*! @} */
+
+/*! @name FACSSS - Secondary Flash Access Segment Size Register */
+/*! @{ */
+#define FTFE_FACSSS_SGSIZE_S_MASK                (0xFFU)
+#define FTFE_FACSSS_SGSIZE_S_SHIFT               (0U)
+#define FTFE_FACSSS_SGSIZE_S(x)                  (((uint8_t)(((uint8_t)(x)) << FTFE_FACSSS_SGSIZE_S_SHIFT)) & FTFE_FACSSS_SGSIZE_S_MASK)
+/*! @} */
+
+/*! @name FACSNS - Secondary Flash Access Segment Number Register */
+/*! @{ */
+#define FTFE_FACSNS_NUMSG_S_MASK                 (0xFFU)
+#define FTFE_FACSNS_NUMSG_S_SHIFT                (0U)
+/*! NUMSG_S - Number of Segments Indicator
+ *  0b00010000..Secondary Program flash memory is divided into 16 segments
+ */
+#define FTFE_FACSNS_NUMSG_S(x)                   (((uint8_t)(((uint8_t)(x)) << FTFE_FACSNS_NUMSG_S_SHIFT)) & FTFE_FACSNS_NUMSG_S_MASK)
+/*! @} */
+
+/*! @name XACCH3 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH3_XA_MASK                      (0xFFU)
+#define FTFE_XACCH3_XA_SHIFT                     (0U)
+#define FTFE_XACCH3_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH3_XA_SHIFT)) & FTFE_XACCH3_XA_MASK)
+/*! @} */
+
+/*! @name XACCH2 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH2_XA_MASK                      (0xFFU)
+#define FTFE_XACCH2_XA_SHIFT                     (0U)
+#define FTFE_XACCH2_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH2_XA_SHIFT)) & FTFE_XACCH2_XA_MASK)
+/*! @} */
+
+/*! @name XACCH1 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH1_XA_MASK                      (0xFFU)
+#define FTFE_XACCH1_XA_SHIFT                     (0U)
+#define FTFE_XACCH1_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH1_XA_SHIFT)) & FTFE_XACCH1_XA_MASK)
+/*! @} */
+
+/*! @name XACCH0 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCH0_XA_MASK                      (0xFFU)
+#define FTFE_XACCH0_XA_SHIFT                     (0U)
+#define FTFE_XACCH0_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCH0_XA_SHIFT)) & FTFE_XACCH0_XA_MASK)
+/*! @} */
+
+/*! @name XACCL3 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL3_XA_MASK                      (0xFFU)
+#define FTFE_XACCL3_XA_SHIFT                     (0U)
+#define FTFE_XACCL3_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL3_XA_SHIFT)) & FTFE_XACCL3_XA_MASK)
+/*! @} */
+
+/*! @name XACCL2 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL2_XA_MASK                      (0xFFU)
+#define FTFE_XACCL2_XA_SHIFT                     (0U)
+#define FTFE_XACCL2_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL2_XA_SHIFT)) & FTFE_XACCL2_XA_MASK)
+/*! @} */
+
+/*! @name XACCL1 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL1_XA_MASK                      (0xFFU)
+#define FTFE_XACCL1_XA_SHIFT                     (0U)
+#define FTFE_XACCL1_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL1_XA_SHIFT)) & FTFE_XACCL1_XA_MASK)
+/*! @} */
+
+/*! @name XACCL0 - Primary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCL0_XA_MASK                      (0xFFU)
+#define FTFE_XACCL0_XA_SHIFT                     (0U)
+#define FTFE_XACCL0_XA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_XACCL0_XA_SHIFT)) & FTFE_XACCL0_XA_MASK)
+/*! @} */
+
+/*! @name SACCH3 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH3_SA_MASK                      (0xFFU)
+#define FTFE_SACCH3_SA_SHIFT                     (0U)
+#define FTFE_SACCH3_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH3_SA_SHIFT)) & FTFE_SACCH3_SA_MASK)
+/*! @} */
+
+/*! @name SACCH2 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH2_SA_MASK                      (0xFFU)
+#define FTFE_SACCH2_SA_SHIFT                     (0U)
+#define FTFE_SACCH2_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH2_SA_SHIFT)) & FTFE_SACCH2_SA_MASK)
+/*! @} */
+
+/*! @name SACCH1 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH1_SA_MASK                      (0xFFU)
+#define FTFE_SACCH1_SA_SHIFT                     (0U)
+#define FTFE_SACCH1_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH1_SA_SHIFT)) & FTFE_SACCH1_SA_MASK)
+/*! @} */
+
+/*! @name SACCH0 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCH0_SA_MASK                      (0xFFU)
+#define FTFE_SACCH0_SA_SHIFT                     (0U)
+#define FTFE_SACCH0_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCH0_SA_SHIFT)) & FTFE_SACCH0_SA_MASK)
+/*! @} */
+
+/*! @name SACCL3 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL3_SA_MASK                      (0xFFU)
+#define FTFE_SACCL3_SA_SHIFT                     (0U)
+#define FTFE_SACCL3_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL3_SA_SHIFT)) & FTFE_SACCL3_SA_MASK)
+/*! @} */
+
+/*! @name SACCL2 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL2_SA_MASK                      (0xFFU)
+#define FTFE_SACCL2_SA_SHIFT                     (0U)
+#define FTFE_SACCL2_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL2_SA_SHIFT)) & FTFE_SACCL2_SA_MASK)
+/*! @} */
+
+/*! @name SACCL1 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL1_SA_MASK                      (0xFFU)
+#define FTFE_SACCL1_SA_SHIFT                     (0U)
+#define FTFE_SACCL1_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL1_SA_SHIFT)) & FTFE_SACCL1_SA_MASK)
+/*! @} */
+
+/*! @name SACCL0 - Primary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCL0_SA_MASK                      (0xFFU)
+#define FTFE_SACCL0_SA_SHIFT                     (0U)
+#define FTFE_SACCL0_SA(x)                        (((uint8_t)(((uint8_t)(x)) << FTFE_SACCL0_SA_SHIFT)) & FTFE_SACCL0_SA_MASK)
+/*! @} */
+
+/*! @name XACCSL - Secondary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCSL_XA_S_MASK                    (0xFFU)
+#define FTFE_XACCSL_XA_S_SHIFT                   (0U)
+#define FTFE_XACCSL_XA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_XACCSL_XA_S_SHIFT)) & FTFE_XACCSL_XA_S_MASK)
+/*! @} */
+
+/*! @name XACCSH - Secondary Execute-only Access Registers */
+/*! @{ */
+#define FTFE_XACCSH_XA_S_MASK                    (0xFFU)
+#define FTFE_XACCSH_XA_S_SHIFT                   (0U)
+#define FTFE_XACCSH_XA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_XACCSH_XA_S_SHIFT)) & FTFE_XACCSH_XA_S_MASK)
+/*! @} */
+
+/*! @name SACCSL - Secondary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCSL_SA_S_MASK                    (0xFFU)
+#define FTFE_SACCSL_SA_S_SHIFT                   (0U)
+#define FTFE_SACCSL_SA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_SACCSL_SA_S_SHIFT)) & FTFE_SACCSL_SA_S_MASK)
+/*! @} */
+
+/*! @name SACCSH - Secondary Supervisor-only Access Registers */
+/*! @{ */
+#define FTFE_SACCSH_SA_S_MASK                    (0xFFU)
+#define FTFE_SACCSH_SA_S_SHIFT                   (0U)
+#define FTFE_SACCSH_SA_S(x)                      (((uint8_t)(((uint8_t)(x)) << FTFE_SACCSH_SA_S_SHIFT)) & FTFE_SACCSH_SA_S_MASK)
+/*! @} */
+
+/*! @name FSTDBYCTL - Flash Standby Control Register */
+/*! @{ */
+#define FTFE_FSTDBYCTL_STDBYDIS_MASK             (0x1U)
+#define FTFE_FSTDBYCTL_STDBYDIS_SHIFT            (0U)
+/*! STDBYDIS - Standy Mode Disable
+ *  0b0..Standby mode enabled for flash blocks selected by STDBYx
+ *  0b1..Standby mode disabled (STDBYx ignored)
+ */
+#define FTFE_FSTDBYCTL_STDBYDIS(x)               (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBYCTL_STDBYDIS_SHIFT)) & FTFE_FSTDBYCTL_STDBYDIS_MASK)
+/*! @} */
+
+/*! @name FSTDBY - Flash Standby Register */
+/*! @{ */
+#define FTFE_FSTDBY_STDBY0_MASK                  (0x1U)
+#define FTFE_FSTDBY_STDBY0_SHIFT                 (0U)
+/*! STDBY0 - Standy Mode for Flash Block 0
+ *  0b0..Standby mode not enabled for flash block 0
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 0 (when SWAP=0/1, flash block 1/0 is the inactive block)
+ */
+#define FTFE_FSTDBY_STDBY0(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY0_SHIFT)) & FTFE_FSTDBY_STDBY0_MASK)
+#define FTFE_FSTDBY_STDBY1_MASK                  (0x2U)
+#define FTFE_FSTDBY_STDBY1_SHIFT                 (1U)
+/*! STDBY1 - Standy Mode for Flash Block 1
+ *  0b0..Standby mode not enabled for flash block 1
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 1 (when SWAP=0/1, flash block 1/0 is the inactive block)
+ */
+#define FTFE_FSTDBY_STDBY1(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY1_SHIFT)) & FTFE_FSTDBY_STDBY1_MASK)
+#define FTFE_FSTDBY_STDBY2_MASK                  (0x4U)
+#define FTFE_FSTDBY_STDBY2_SHIFT                 (2U)
+/*! STDBY2 - Standy Mode for Flash Block 2
+ *  0b0..Standby mode not enabled for flash block 2
+ *  0b1..If STDBYDIS is clear, standby mode is enabled for flash block 2
+ */
+#define FTFE_FSTDBY_STDBY2(x)                    (((uint8_t)(((uint8_t)(x)) << FTFE_FSTDBY_STDBY2_SHIFT)) & FTFE_FSTDBY_STDBY2_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group FTFE_Register_Masks */
+
+
+/* FTFE - Peripheral instance base addresses */
+/** Peripheral FTFE base address */
+#define FTFE_BASE                                (0x40023000u)
+/** Peripheral FTFE base pointer */
+#define FTFE                                     ((FTFE_Type *)FTFE_BASE)
+/** Array initializer of FTFE peripheral base addresses */
+#define FTFE_BASE_ADDRS                          { FTFE_BASE }
+/** Array initializer of FTFE peripheral base pointers */
+#define FTFE_BASE_PTRS                           { FTFE }
+/** Interrupt vectors for the FTFE peripheral type */
+#define FTFE_COMMAND_COMPLETE_IRQS               { FTFE_Command_Complete_IRQn }
+#define FTFE_READ_COLLISION_IRQS                 { FTFE_Read_Collision_IRQn }
+
+/*!
+ * @}
+ */ /* end of group FTFE_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- GENFSK Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GENFSK_Peripheral_Access_Layer GENFSK Peripheral Access Layer
+ * @{
+ */
+
+/** GENFSK - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t IRQ_CTRL;                          /**< IRQ CONTROL, offset: 0x0 */
+  __IO uint32_t EVENT_TMR;                         /**< EVENT TIMER, offset: 0x4 */
+  __IO uint32_t T1_CMP;                            /**< T1 COMPARE, offset: 0x8 */
+  __IO uint32_t T2_CMP;                            /**< T2 COMPARE, offset: 0xC */
+  __I  uint32_t TIMESTAMP;                         /**< TIMESTAMP, offset: 0x10 */
+  __IO uint32_t XCVR_CTRL;                         /**< TRANSCEIVER CONTROL, offset: 0x14 */
+  __I  uint32_t XCVR_STS;                          /**< TRANSCEIVER STATUS, offset: 0x18 */
+  __IO uint32_t XCVR_CFG;                          /**< TRANSCEIVER CONFIGURATION, offset: 0x1C */
+  __IO uint32_t CHANNEL_NUM;                       /**< CHANNEL NUMBER, offset: 0x20 */
+  __IO uint32_t TX_POWER;                          /**< TRANSMIT POWER, offset: 0x24 */
+  __IO uint32_t NTW_ADR_CTRL;                      /**< NETWORK ADDRESS CONTROL, offset: 0x28 */
+  __IO uint32_t NTW_ADR_0;                         /**< NETWORK ADDRESS 0, offset: 0x2C */
+  __IO uint32_t NTW_ADR_1;                         /**< NETWORK ADDRESS 1, offset: 0x30 */
+  __IO uint32_t NTW_ADR_2;                         /**< NETWORK ADDRESS 2, offset: 0x34 */
+  __IO uint32_t NTW_ADR_3;                         /**< NETWORK ADDRESS 3, offset: 0x38 */
+  __IO uint32_t RX_WATERMARK;                      /**< RECEIVE WATERMARK, offset: 0x3C */
+  __IO uint32_t DSM_CTRL;                          /**< DSM CONTROL, offset: 0x40 */
+  __I  uint32_t PART_ID;                           /**< PART ID, offset: 0x44 */
+       uint8_t RESERVED_0[24];
+  __IO uint32_t PACKET_CFG;                        /**< PACKET CONFIGURATION, offset: 0x60 */
+  __IO uint32_t H0_CFG;                            /**< H0 CONFIGURATION, offset: 0x64 */
+  __IO uint32_t H1_CFG;                            /**< H1 CONFIGURATION, offset: 0x68 */
+  __IO uint32_t CRC_CFG;                           /**< CRC CONFIGURATION, offset: 0x6C */
+  __IO uint32_t CRC_INIT;                          /**< CRC INITIALIZATION, offset: 0x70 */
+  __IO uint32_t CRC_POLY;                          /**< CRC POLYNOMIAL, offset: 0x74 */
+  __IO uint32_t CRC_XOR_OUT;                       /**< CRC XOR OUT, offset: 0x78 */
+  __IO uint32_t WHITEN_CFG;                        /**< WHITENER CONFIGURATION, offset: 0x7C */
+  __IO uint32_t WHITEN_POLY;                       /**< WHITENER POLYNOMIAL, offset: 0x80 */
+  __IO uint32_t WHITEN_SZ_THR;                     /**< WHITENER SIZE THRESHOLD, offset: 0x84 */
+  __IO uint32_t BITRATE;                           /**< BIT RATE, offset: 0x88 */
+  __IO uint32_t PB_PARTITION;                      /**< PACKET BUFFER PARTITION POINT, offset: 0x8C */
+       uint8_t RESERVED_1[1648];
+  __IO uint16_t PACKET_BUFFER[1088];               /**< PACKET BUFFER, array offset: 0x700, array step: 0x2 */
+} GENFSK_Type;
+
+/* ----------------------------------------------------------------------------
+   -- GENFSK Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GENFSK_Register_Masks GENFSK Register Masks
+ * @{
+ */
+
+/*! @name IRQ_CTRL - IRQ CONTROL */
+/*! @{ */
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ_MASK         (0x1U)
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ_SHIFT        (0U)
+/*! SEQ_END_IRQ - Sequence End Interrupt
+ *  0b0..Sequence End Interrupt is not asserted.
+ *  0b1..Sequence End Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_SEQ_END_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_SEQ_END_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_TX_IRQ_MASK              (0x2U)
+#define GENFSK_IRQ_CTRL_TX_IRQ_SHIFT             (1U)
+/*! TX_IRQ - TX Interrupt
+ *  0b0..TX Interrupt is not asserted.
+ *  0b1..TX Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_TX_IRQ(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_TX_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_TX_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_RX_IRQ_MASK              (0x4U)
+#define GENFSK_IRQ_CTRL_RX_IRQ_SHIFT             (2U)
+/*! RX_IRQ - RX Interrupt
+ *  0b0..RX Interrupt is not asserted.
+ *  0b1..RX Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_RX_IRQ(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_RX_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_RX_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ_MASK         (0x8U)
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ_SHIFT        (3U)
+/*! NTW_ADR_IRQ - Network Address Match Interrupt
+ *  0b0..Network Address Match Interrupt is not asserted.
+ *  0b1..Network Address Match Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_NTW_ADR_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_NTW_ADR_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_T1_IRQ_MASK              (0x10U)
+#define GENFSK_IRQ_CTRL_T1_IRQ_SHIFT             (4U)
+/*! T1_IRQ - Timer1 (T1) Compare Interrupt
+ *  0b0..Timer1 (T1) Compare Interrupt is not asserted.
+ *  0b1..Timer1 (T1) Compare Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_T1_IRQ(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_T1_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_T1_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_T2_IRQ_MASK              (0x20U)
+#define GENFSK_IRQ_CTRL_T2_IRQ_SHIFT             (5U)
+/*! T2_IRQ - Timer2 (T2) Compare Interrupt
+ *  0b0..Timer2 (T2) Compare Interrupt is not asserted.
+ *  0b1..Timer2 (T2) Compare Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_T2_IRQ(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_T2_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_T2_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_MASK      (0x40U)
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_SHIFT     (6U)
+/*! PLL_UNLOCK_IRQ - PLL Unlock Interrupt
+ *  0b0..PLL Unlock Interrupt is not asserted.
+ *  0b1..PLL Unlock Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_WAKE_IRQ_MASK            (0x80U)
+#define GENFSK_IRQ_CTRL_WAKE_IRQ_SHIFT           (7U)
+/*! WAKE_IRQ - Wake Interrrupt
+ *  0b0..Wake Interrupt is not asserted.
+ *  0b1..Wake Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_WAKE_IRQ(x)              (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_WAKE_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_WAKE_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_MASK    (0x100U)
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_SHIFT   (8U)
+/*! RX_WATERMARK_IRQ - RX Watermark Interrupt
+ *  0b0..RX Watermark Interrupt is not asserted.
+ *  0b1..RX Watermark Interrupt is asserted.
+ */
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_TSM_IRQ_MASK             (0x200U)
+#define GENFSK_IRQ_CTRL_TSM_IRQ_SHIFT            (9U)
+/*! TSM_IRQ - TSM Interrupt
+ *  0b0..TSM0_IRQ and TSM1_IRQ are both clear.
+ *  0b1..Indicates TSM0_IRQ or TSM1_IRQ is set in XCVR_STATUS.
+ */
+#define GENFSK_IRQ_CTRL_TSM_IRQ(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_TSM_IRQ_SHIFT)) & GENFSK_IRQ_CTRL_TSM_IRQ_MASK)
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ_EN_MASK      (0x10000U)
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ_EN_SHIFT     (16U)
+/*! SEQ_END_IRQ_EN - SEQ_END_IRQ Enable
+ *  0b0..Sequence End Interrupt is not enabled.
+ *  0b1..Sequence End Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_SEQ_END_IRQ_EN(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_SEQ_END_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_SEQ_END_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_TX_IRQ_EN_MASK           (0x20000U)
+#define GENFSK_IRQ_CTRL_TX_IRQ_EN_SHIFT          (17U)
+/*! TX_IRQ_EN - TX_IRQ Enable
+ *  0b0..TX Interrupt is not enabled.
+ *  0b1..TX Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_TX_IRQ_EN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_TX_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_TX_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_RX_IRQ_EN_MASK           (0x40000U)
+#define GENFSK_IRQ_CTRL_RX_IRQ_EN_SHIFT          (18U)
+/*! RX_IRQ_EN - RX_IRQ Enable
+ *  0b0..RX Interrupt is not enabled.
+ *  0b1..RX Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_RX_IRQ_EN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_RX_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_RX_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ_EN_MASK      (0x80000U)
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ_EN_SHIFT     (19U)
+/*! NTW_ADR_IRQ_EN - NTW_ADR_IRQ Enable
+ *  0b0..Network Address Match Interrupt is not enabled.
+ *  0b1..Network Address Match Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_NTW_ADR_IRQ_EN(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_NTW_ADR_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_NTW_ADR_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_T1_IRQ_EN_MASK           (0x100000U)
+#define GENFSK_IRQ_CTRL_T1_IRQ_EN_SHIFT          (20U)
+/*! T1_IRQ_EN - T1_IRQ Enable
+ *  0b0..Timer1 (T1) Compare Interrupt is not enabled.
+ *  0b1..Timer1 (T1) Compare Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_T1_IRQ_EN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_T1_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_T1_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_T2_IRQ_EN_MASK           (0x200000U)
+#define GENFSK_IRQ_CTRL_T2_IRQ_EN_SHIFT          (21U)
+/*! T2_IRQ_EN - T2_IRQ Enable
+ *  0b0..Timer1 (T2) Compare Interrupt is not enabled.
+ *  0b1..Timer1 (T2) Compare Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_T2_IRQ_EN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_T2_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_T2_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_EN_MASK   (0x400000U)
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_EN_SHIFT  (22U)
+/*! PLL_UNLOCK_IRQ_EN - PLL_UNLOCK_IRQ Enable
+ *  0b0..PLL Unlock Interrupt is not enabled.
+ *  0b1..PLL Unlock Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_EN(x)     (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_PLL_UNLOCK_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_WAKE_IRQ_EN_MASK         (0x800000U)
+#define GENFSK_IRQ_CTRL_WAKE_IRQ_EN_SHIFT        (23U)
+/*! WAKE_IRQ_EN - WAKE_IRQ Enable
+ *  0b0..Wake Interrupt is not enabled.
+ *  0b1..Wake Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_WAKE_IRQ_EN(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_WAKE_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_WAKE_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_EN_MASK (0x1000000U)
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_EN_SHIFT (24U)
+/*! RX_WATERMARK_IRQ_EN - RX_WATERMARK_IRQ Enable
+ *  0b0..RX Watermark Interrupt is not enabled.
+ *  0b1..RX Watermark Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_EN(x)   (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_RX_WATERMARK_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_TSM_IRQ_EN_MASK          (0x2000000U)
+#define GENFSK_IRQ_CTRL_TSM_IRQ_EN_SHIFT         (25U)
+/*! TSM_IRQ_EN - TSM_IRQ Enable
+ *  0b0..TSM Interrupt is not enabled.
+ *  0b1..TSM Interrupt is enabled.
+ */
+#define GENFSK_IRQ_CTRL_TSM_IRQ_EN(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_TSM_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_TSM_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_GENERIC_FSK_IRQ_EN_MASK  (0x4000000U)
+#define GENFSK_IRQ_CTRL_GENERIC_FSK_IRQ_EN_SHIFT (26U)
+/*! GENERIC_FSK_IRQ_EN - GENERIC_FSK_IRQ Master Enable
+ *  0b0..All GENERIC_FSK Interrupts are disabled.
+ *  0b1..All GENERIC_FSK Interrupts can be enabled.
+ */
+#define GENFSK_IRQ_CTRL_GENERIC_FSK_IRQ_EN(x)    (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_GENERIC_FSK_IRQ_EN_SHIFT)) & GENFSK_IRQ_CTRL_GENERIC_FSK_IRQ_EN_MASK)
+#define GENFSK_IRQ_CTRL_CRC_IGNORE_MASK          (0x8000000U)
+#define GENFSK_IRQ_CTRL_CRC_IGNORE_SHIFT         (27U)
+/*! CRC_IGNORE - CRC Ignore
+ *  0b0..RX_IRQ will not be asserted for a received packet which fails CRC verification.
+ *  0b1..RX_IRQ will be asserted even for a received packet which fails CRC verification.
+ */
+#define GENFSK_IRQ_CTRL_CRC_IGNORE(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_CRC_IGNORE_SHIFT)) & GENFSK_IRQ_CTRL_CRC_IGNORE_MASK)
+#define GENFSK_IRQ_CTRL_CRC_VALID_MASK           (0x80000000U)
+#define GENFSK_IRQ_CTRL_CRC_VALID_SHIFT          (31U)
+/*! CRC_VALID - CRC Valid
+ *  0b0..CRC of RX packet is not valid.
+ *  0b1..CRC of RX packet is valid.
+ */
+#define GENFSK_IRQ_CTRL_CRC_VALID(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_IRQ_CTRL_CRC_VALID_SHIFT)) & GENFSK_IRQ_CTRL_CRC_VALID_MASK)
+/*! @} */
+
+/*! @name EVENT_TMR - EVENT TIMER */
+/*! @{ */
+#define GENFSK_EVENT_TMR_EVENT_TMR_MASK          (0xFFFFFFU)
+#define GENFSK_EVENT_TMR_EVENT_TMR_SHIFT         (0U)
+#define GENFSK_EVENT_TMR_EVENT_TMR(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_EVENT_TMR_EVENT_TMR_SHIFT)) & GENFSK_EVENT_TMR_EVENT_TMR_MASK)
+#define GENFSK_EVENT_TMR_EVENT_TMR_LD_MASK       (0x1000000U)
+#define GENFSK_EVENT_TMR_EVENT_TMR_LD_SHIFT      (24U)
+#define GENFSK_EVENT_TMR_EVENT_TMR_LD(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_EVENT_TMR_EVENT_TMR_LD_SHIFT)) & GENFSK_EVENT_TMR_EVENT_TMR_LD_MASK)
+#define GENFSK_EVENT_TMR_EVENT_TMR_ADD_MASK      (0x2000000U)
+#define GENFSK_EVENT_TMR_EVENT_TMR_ADD_SHIFT     (25U)
+#define GENFSK_EVENT_TMR_EVENT_TMR_ADD(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_EVENT_TMR_EVENT_TMR_ADD_SHIFT)) & GENFSK_EVENT_TMR_EVENT_TMR_ADD_MASK)
+/*! @} */
+
+/*! @name T1_CMP - T1 COMPARE */
+/*! @{ */
+#define GENFSK_T1_CMP_T1_CMP_MASK                (0xFFFFFFU)
+#define GENFSK_T1_CMP_T1_CMP_SHIFT               (0U)
+#define GENFSK_T1_CMP_T1_CMP(x)                  (((uint32_t)(((uint32_t)(x)) << GENFSK_T1_CMP_T1_CMP_SHIFT)) & GENFSK_T1_CMP_T1_CMP_MASK)
+#define GENFSK_T1_CMP_T1_CMP_EN_MASK             (0x1000000U)
+#define GENFSK_T1_CMP_T1_CMP_EN_SHIFT            (24U)
+#define GENFSK_T1_CMP_T1_CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_T1_CMP_T1_CMP_EN_SHIFT)) & GENFSK_T1_CMP_T1_CMP_EN_MASK)
+/*! @} */
+
+/*! @name T2_CMP - T2 COMPARE */
+/*! @{ */
+#define GENFSK_T2_CMP_T2_CMP_MASK                (0xFFFFFFU)
+#define GENFSK_T2_CMP_T2_CMP_SHIFT               (0U)
+#define GENFSK_T2_CMP_T2_CMP(x)                  (((uint32_t)(((uint32_t)(x)) << GENFSK_T2_CMP_T2_CMP_SHIFT)) & GENFSK_T2_CMP_T2_CMP_MASK)
+#define GENFSK_T2_CMP_T2_CMP_EN_MASK             (0x1000000U)
+#define GENFSK_T2_CMP_T2_CMP_EN_SHIFT            (24U)
+#define GENFSK_T2_CMP_T2_CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_T2_CMP_T2_CMP_EN_SHIFT)) & GENFSK_T2_CMP_T2_CMP_EN_MASK)
+/*! @} */
+
+/*! @name TIMESTAMP - TIMESTAMP */
+/*! @{ */
+#define GENFSK_TIMESTAMP_TIMESTAMP_MASK          (0xFFFFFFU)
+#define GENFSK_TIMESTAMP_TIMESTAMP_SHIFT         (0U)
+#define GENFSK_TIMESTAMP_TIMESTAMP(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_TIMESTAMP_TIMESTAMP_SHIFT)) & GENFSK_TIMESTAMP_TIMESTAMP_MASK)
+/*! @} */
+
+/*! @name XCVR_CTRL - TRANSCEIVER CONTROL */
+/*! @{ */
+#define GENFSK_XCVR_CTRL_SEQCMD_MASK             (0xFU)
+#define GENFSK_XCVR_CTRL_SEQCMD_SHIFT            (0U)
+/*! SEQCMD - Sequence Commands
+ *  0b0000..No Action
+ *  0b0001..TX Start Now
+ *  0b0010..TX Start @ T1 Timer Compare Match (EVENT_TMR = T1_CMP)
+ *  0b0011..TX Start @ T2 Timer Compare Match (EVENT_TMR = T2_CMP)
+ *  0b0100..TX Cancel -- Cancels pending TX events but do not abort a TX-in-progress
+ *  0b0101..RX Start Now
+ *  0b0110..RX Start @ T1 Timer Compare Match (EVENT_TMR = T1_CMP)
+ *  0b0111..RX Start @ T2 Timer Compare Match (EVENT_TMR = T2_CMP)
+ *  0b1000..RX Stop @ T1 Timer Compare Match (EVENT_TMR = T1_CMP)
+ *  0b1001..RX Stop @ T2 Timer Compare Match (EVENT_TMR = T2_CMP)
+ *  0b1010..RX Cancel -- Cancels pending RX events but do not abort a RX-in-progress
+ *  0b1011..Abort All - Cancels all pending events and abort any sequence-in-progress
+ *  0b1100..Reserved
+ *  0b1101..Reserved
+ *  0b1110..Reserved
+ *  0b1111..Reserved
+ */
+#define GENFSK_XCVR_CTRL_SEQCMD(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CTRL_SEQCMD_SHIFT)) & GENFSK_XCVR_CTRL_SEQCMD_MASK)
+#define GENFSK_XCVR_CTRL_LENGTH_EXT_MASK         (0x7FF00U)
+#define GENFSK_XCVR_CTRL_LENGTH_EXT_SHIFT        (8U)
+#define GENFSK_XCVR_CTRL_LENGTH_EXT(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CTRL_LENGTH_EXT_SHIFT)) & GENFSK_XCVR_CTRL_LENGTH_EXT_MASK)
+#define GENFSK_XCVR_CTRL_CMDDEC_CS_MASK          (0x7000000U)
+#define GENFSK_XCVR_CTRL_CMDDEC_CS_SHIFT         (24U)
+#define GENFSK_XCVR_CTRL_CMDDEC_CS(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CTRL_CMDDEC_CS_SHIFT)) & GENFSK_XCVR_CTRL_CMDDEC_CS_MASK)
+#define GENFSK_XCVR_CTRL_XCVR_BUSY_MASK          (0x80000000U)
+#define GENFSK_XCVR_CTRL_XCVR_BUSY_SHIFT         (31U)
+/*! XCVR_BUSY - Transceiver Busy
+ *  0b0..IDLE
+ *  0b1..BUSY
+ */
+#define GENFSK_XCVR_CTRL_XCVR_BUSY(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CTRL_XCVR_BUSY_SHIFT)) & GENFSK_XCVR_CTRL_XCVR_BUSY_MASK)
+/*! @} */
+
+/*! @name XCVR_STS - TRANSCEIVER STATUS */
+/*! @{ */
+#define GENFSK_XCVR_STS_TX_START_T1_PEND_MASK    (0x1U)
+#define GENFSK_XCVR_STS_TX_START_T1_PEND_SHIFT   (0U)
+#define GENFSK_XCVR_STS_TX_START_T1_PEND(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_TX_START_T1_PEND_SHIFT)) & GENFSK_XCVR_STS_TX_START_T1_PEND_MASK)
+#define GENFSK_XCVR_STS_TX_START_T2_PEND_MASK    (0x2U)
+#define GENFSK_XCVR_STS_TX_START_T2_PEND_SHIFT   (1U)
+#define GENFSK_XCVR_STS_TX_START_T2_PEND(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_TX_START_T2_PEND_SHIFT)) & GENFSK_XCVR_STS_TX_START_T2_PEND_MASK)
+#define GENFSK_XCVR_STS_TX_IN_WARMUP_MASK        (0x4U)
+#define GENFSK_XCVR_STS_TX_IN_WARMUP_SHIFT       (2U)
+#define GENFSK_XCVR_STS_TX_IN_WARMUP(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_TX_IN_WARMUP_SHIFT)) & GENFSK_XCVR_STS_TX_IN_WARMUP_MASK)
+#define GENFSK_XCVR_STS_TX_IN_PROGRESS_MASK      (0x8U)
+#define GENFSK_XCVR_STS_TX_IN_PROGRESS_SHIFT     (3U)
+#define GENFSK_XCVR_STS_TX_IN_PROGRESS(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_TX_IN_PROGRESS_SHIFT)) & GENFSK_XCVR_STS_TX_IN_PROGRESS_MASK)
+#define GENFSK_XCVR_STS_TX_IN_WARMDN_MASK        (0x10U)
+#define GENFSK_XCVR_STS_TX_IN_WARMDN_SHIFT       (4U)
+#define GENFSK_XCVR_STS_TX_IN_WARMDN(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_TX_IN_WARMDN_SHIFT)) & GENFSK_XCVR_STS_TX_IN_WARMDN_MASK)
+#define GENFSK_XCVR_STS_RX_START_T1_PEND_MASK    (0x20U)
+#define GENFSK_XCVR_STS_RX_START_T1_PEND_SHIFT   (5U)
+#define GENFSK_XCVR_STS_RX_START_T1_PEND(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_START_T1_PEND_SHIFT)) & GENFSK_XCVR_STS_RX_START_T1_PEND_MASK)
+#define GENFSK_XCVR_STS_RX_START_T2_PEND_MASK    (0x40U)
+#define GENFSK_XCVR_STS_RX_START_T2_PEND_SHIFT   (6U)
+#define GENFSK_XCVR_STS_RX_START_T2_PEND(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_START_T2_PEND_SHIFT)) & GENFSK_XCVR_STS_RX_START_T2_PEND_MASK)
+#define GENFSK_XCVR_STS_RX_STOP_T1_PEND_MASK     (0x80U)
+#define GENFSK_XCVR_STS_RX_STOP_T1_PEND_SHIFT    (7U)
+#define GENFSK_XCVR_STS_RX_STOP_T1_PEND(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_STOP_T1_PEND_SHIFT)) & GENFSK_XCVR_STS_RX_STOP_T1_PEND_MASK)
+#define GENFSK_XCVR_STS_RX_STOP_T2_PEND_MASK     (0x100U)
+#define GENFSK_XCVR_STS_RX_STOP_T2_PEND_SHIFT    (8U)
+#define GENFSK_XCVR_STS_RX_STOP_T2_PEND(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_STOP_T2_PEND_SHIFT)) & GENFSK_XCVR_STS_RX_STOP_T2_PEND_MASK)
+#define GENFSK_XCVR_STS_RX_IN_WARMUP_MASK        (0x200U)
+#define GENFSK_XCVR_STS_RX_IN_WARMUP_SHIFT       (9U)
+#define GENFSK_XCVR_STS_RX_IN_WARMUP(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_IN_WARMUP_SHIFT)) & GENFSK_XCVR_STS_RX_IN_WARMUP_MASK)
+#define GENFSK_XCVR_STS_RX_IN_SEARCH_MASK        (0x400U)
+#define GENFSK_XCVR_STS_RX_IN_SEARCH_SHIFT       (10U)
+#define GENFSK_XCVR_STS_RX_IN_SEARCH(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_IN_SEARCH_SHIFT)) & GENFSK_XCVR_STS_RX_IN_SEARCH_MASK)
+#define GENFSK_XCVR_STS_RX_IN_PROGRESS_MASK      (0x800U)
+#define GENFSK_XCVR_STS_RX_IN_PROGRESS_SHIFT     (11U)
+#define GENFSK_XCVR_STS_RX_IN_PROGRESS(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_IN_PROGRESS_SHIFT)) & GENFSK_XCVR_STS_RX_IN_PROGRESS_MASK)
+#define GENFSK_XCVR_STS_RX_IN_WARMDN_MASK        (0x1000U)
+#define GENFSK_XCVR_STS_RX_IN_WARMDN_SHIFT       (12U)
+#define GENFSK_XCVR_STS_RX_IN_WARMDN(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RX_IN_WARMDN_SHIFT)) & GENFSK_XCVR_STS_RX_IN_WARMDN_MASK)
+#define GENFSK_XCVR_STS_LQI_VALID_MASK           (0x4000U)
+#define GENFSK_XCVR_STS_LQI_VALID_SHIFT          (14U)
+/*! LQI_VALID - LQI Valid Indicator
+ *  0b0..LQI is not yet valid for RX packet.
+ *  0b1..LQI is valid for RX packet.
+ */
+#define GENFSK_XCVR_STS_LQI_VALID(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_LQI_VALID_SHIFT)) & GENFSK_XCVR_STS_LQI_VALID_MASK)
+#define GENFSK_XCVR_STS_CRC_VALID_MASK           (0x8000U)
+#define GENFSK_XCVR_STS_CRC_VALID_SHIFT          (15U)
+/*! CRC_VALID - CRC Valid Indicator
+ *  0b0..CRC is not valid for RX packet.
+ *  0b1..CRC is valid for RX packet.
+ */
+#define GENFSK_XCVR_STS_CRC_VALID(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_CRC_VALID_SHIFT)) & GENFSK_XCVR_STS_CRC_VALID_MASK)
+#define GENFSK_XCVR_STS_RSSI_MASK                (0xFF0000U)
+#define GENFSK_XCVR_STS_RSSI_SHIFT               (16U)
+#define GENFSK_XCVR_STS_RSSI(x)                  (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_RSSI_SHIFT)) & GENFSK_XCVR_STS_RSSI_MASK)
+#define GENFSK_XCVR_STS_LQI_MASK                 (0xFF000000U)
+#define GENFSK_XCVR_STS_LQI_SHIFT                (24U)
+#define GENFSK_XCVR_STS_LQI(x)                   (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_STS_LQI_SHIFT)) & GENFSK_XCVR_STS_LQI_MASK)
+/*! @} */
+
+/*! @name XCVR_CFG - TRANSCEIVER CONFIGURATION */
+/*! @{ */
+#define GENFSK_XCVR_CFG_TX_WHITEN_DIS_MASK       (0x1U)
+#define GENFSK_XCVR_CFG_TX_WHITEN_DIS_SHIFT      (0U)
+#define GENFSK_XCVR_CFG_TX_WHITEN_DIS(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_TX_WHITEN_DIS_SHIFT)) & GENFSK_XCVR_CFG_TX_WHITEN_DIS_MASK)
+#define GENFSK_XCVR_CFG_RX_DEWHITEN_DIS_MASK     (0x2U)
+#define GENFSK_XCVR_CFG_RX_DEWHITEN_DIS_SHIFT    (1U)
+#define GENFSK_XCVR_CFG_RX_DEWHITEN_DIS(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_RX_DEWHITEN_DIS_SHIFT)) & GENFSK_XCVR_CFG_RX_DEWHITEN_DIS_MASK)
+#define GENFSK_XCVR_CFG_SW_CRC_EN_MASK           (0x4U)
+#define GENFSK_XCVR_CFG_SW_CRC_EN_SHIFT          (2U)
+#define GENFSK_XCVR_CFG_SW_CRC_EN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_SW_CRC_EN_SHIFT)) & GENFSK_XCVR_CFG_SW_CRC_EN_MASK)
+#define GENFSK_XCVR_CFG_STOP_POSTPONE_ON_AA_MASK (0x8U)
+#define GENFSK_XCVR_CFG_STOP_POSTPONE_ON_AA_SHIFT (3U)
+/*! STOP_POSTPONE_ON_AA - Postpone Stop Command Timeout On Access Address Match Enable
+ *  0b0..STOP Abort will occur on RX_STOP_T1 or RX_STOP_T1 Event Timer match, regardless of ntw_adr_matched
+ *  0b1..STOP Abort will be deferred on RX_STOP_T1 or RX_STOP_T1 Event Timer match, if ntw_adr_matched is asserted; otherwise the RX_STOP Abort will occur immediately
+ */
+#define GENFSK_XCVR_CFG_STOP_POSTPONE_ON_AA(x)   (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_STOP_POSTPONE_ON_AA_SHIFT)) & GENFSK_XCVR_CFG_STOP_POSTPONE_ON_AA_MASK)
+#define GENFSK_XCVR_CFG_PREAMBLE_SZ_MASK         (0x70U)
+#define GENFSK_XCVR_CFG_PREAMBLE_SZ_SHIFT        (4U)
+#define GENFSK_XCVR_CFG_PREAMBLE_SZ(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_PREAMBLE_SZ_SHIFT)) & GENFSK_XCVR_CFG_PREAMBLE_SZ_MASK)
+#define GENFSK_XCVR_CFG_TX_WARMUP_MASK           (0xFF00U)
+#define GENFSK_XCVR_CFG_TX_WARMUP_SHIFT          (8U)
+#define GENFSK_XCVR_CFG_TX_WARMUP(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_TX_WARMUP_SHIFT)) & GENFSK_XCVR_CFG_TX_WARMUP_MASK)
+#define GENFSK_XCVR_CFG_RX_WARMUP_MASK           (0xFF0000U)
+#define GENFSK_XCVR_CFG_RX_WARMUP_SHIFT          (16U)
+#define GENFSK_XCVR_CFG_RX_WARMUP(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_XCVR_CFG_RX_WARMUP_SHIFT)) & GENFSK_XCVR_CFG_RX_WARMUP_MASK)
+/*! @} */
+
+/*! @name CHANNEL_NUM - CHANNEL NUMBER */
+/*! @{ */
+#define GENFSK_CHANNEL_NUM_CHANNEL_NUM_MASK      (0x7FU)
+#define GENFSK_CHANNEL_NUM_CHANNEL_NUM_SHIFT     (0U)
+#define GENFSK_CHANNEL_NUM_CHANNEL_NUM(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_CHANNEL_NUM_CHANNEL_NUM_SHIFT)) & GENFSK_CHANNEL_NUM_CHANNEL_NUM_MASK)
+/*! @} */
+
+/*! @name TX_POWER - TRANSMIT POWER */
+/*! @{ */
+#define GENFSK_TX_POWER_TX_POWER_MASK            (0x3FU)
+#define GENFSK_TX_POWER_TX_POWER_SHIFT           (0U)
+#define GENFSK_TX_POWER_TX_POWER(x)              (((uint32_t)(((uint32_t)(x)) << GENFSK_TX_POWER_TX_POWER_SHIFT)) & GENFSK_TX_POWER_TX_POWER_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_CTRL - NETWORK ADDRESS CONTROL */
+/*! @{ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_EN_MASK      (0xFU)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_EN_SHIFT     (0U)
+/*! NTW_ADR_EN - Network Address Enable
+ *  0b0001..Enable Network Address 0 for correlation
+ *  0b0010..Enable Network Address 1 for correlation
+ *  0b0100..Enable Network Address 2 for correlation
+ *  0b1000..Enable Network Address 3 for correlation
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_EN(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_EN_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_EN_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_MCH_MASK     (0xF0U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_MCH_SHIFT    (4U)
+/*! NTW_ADR_MCH - Network Address Match
+ *  0b0001..Network Address 0 has matched
+ *  0b0010..Network Address 1 has matched
+ *  0b0100..Network Address 2 has matched
+ *  0b1000..Network Address 3 has matched
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_MCH(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_MCH_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_MCH_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR0_SZ_MASK     (0x300U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR0_SZ_SHIFT    (8U)
+/*! NTW_ADR0_SZ - Network Address 0 Size
+ *  0b00..Network Address 0 requires a 8-bit correlation
+ *  0b01..Network Address 0 requires a 16-bit correlation
+ *  0b10..Network Address 0 requires a 24-bit correlation
+ *  0b11..Network Address 0 requires a 32-bit correlation
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR0_SZ(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR0_SZ_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR0_SZ_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR1_SZ_MASK     (0xC00U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR1_SZ_SHIFT    (10U)
+/*! NTW_ADR1_SZ - Network Address 1 Size
+ *  0b00..Network Address 1 requires a 8-bit correlation
+ *  0b01..Network Address 1 requires a 16-bit correlation
+ *  0b10..Network Address 1 requires a 24-bit correlation
+ *  0b11..Network Address 1 requires a 32-bit correlation
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR1_SZ(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR1_SZ_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR1_SZ_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR2_SZ_MASK     (0x3000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR2_SZ_SHIFT    (12U)
+/*! NTW_ADR2_SZ - Network Address 2 Size
+ *  0b00..Network Address 2 requires a 8-bit correlation
+ *  0b01..Network Address 2 requires a 16-bit correlation
+ *  0b10..Network Address 2 requires a 24-bit correlation
+ *  0b11..Network Address 2 requires a 32-bit correlation
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR2_SZ(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR2_SZ_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR2_SZ_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR3_SZ_MASK     (0xC000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR3_SZ_SHIFT    (14U)
+/*! NTW_ADR3_SZ - Network Address 3 Size
+ *  0b00..Network Address 3 requires a 8-bit correlation
+ *  0b01..Network Address 3 requires a 16-bit correlation
+ *  0b10..Network Address 3 requires a 24-bit correlation
+ *  0b11..Network Address 3 requires a 32-bit correlation
+ */
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR3_SZ(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR3_SZ_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR3_SZ_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR0_MASK    (0x70000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR0_SHIFT   (16U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR0(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_THR0_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_THR0_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR1_MASK    (0x700000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR1_SHIFT   (20U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR1(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_THR1_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_THR1_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR2_MASK    (0x7000000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR2_SHIFT   (24U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR2(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_THR2_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_THR2_MASK)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR3_MASK    (0x70000000U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR3_SHIFT   (28U)
+#define GENFSK_NTW_ADR_CTRL_NTW_ADR_THR3(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_CTRL_NTW_ADR_THR3_SHIFT)) & GENFSK_NTW_ADR_CTRL_NTW_ADR_THR3_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_0 - NETWORK ADDRESS 0 */
+/*! @{ */
+#define GENFSK_NTW_ADR_0_NTW_ADR_0_MASK          (0xFFFFFFFFU)
+#define GENFSK_NTW_ADR_0_NTW_ADR_0_SHIFT         (0U)
+#define GENFSK_NTW_ADR_0_NTW_ADR_0(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_0_NTW_ADR_0_SHIFT)) & GENFSK_NTW_ADR_0_NTW_ADR_0_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_1 - NETWORK ADDRESS 1 */
+/*! @{ */
+#define GENFSK_NTW_ADR_1_NTW_ADR_1_MASK          (0xFFFFFFFFU)
+#define GENFSK_NTW_ADR_1_NTW_ADR_1_SHIFT         (0U)
+#define GENFSK_NTW_ADR_1_NTW_ADR_1(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_1_NTW_ADR_1_SHIFT)) & GENFSK_NTW_ADR_1_NTW_ADR_1_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_2 - NETWORK ADDRESS 2 */
+/*! @{ */
+#define GENFSK_NTW_ADR_2_NTW_ADR_2_MASK          (0xFFFFFFFFU)
+#define GENFSK_NTW_ADR_2_NTW_ADR_2_SHIFT         (0U)
+#define GENFSK_NTW_ADR_2_NTW_ADR_2(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_2_NTW_ADR_2_SHIFT)) & GENFSK_NTW_ADR_2_NTW_ADR_2_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_3 - NETWORK ADDRESS 3 */
+/*! @{ */
+#define GENFSK_NTW_ADR_3_NTW_ADR_3_MASK          (0xFFFFFFFFU)
+#define GENFSK_NTW_ADR_3_NTW_ADR_3_SHIFT         (0U)
+#define GENFSK_NTW_ADR_3_NTW_ADR_3(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_NTW_ADR_3_NTW_ADR_3_SHIFT)) & GENFSK_NTW_ADR_3_NTW_ADR_3_MASK)
+/*! @} */
+
+/*! @name RX_WATERMARK - RECEIVE WATERMARK */
+/*! @{ */
+#define GENFSK_RX_WATERMARK_RX_WATERMARK_MASK    (0x1FFFU)
+#define GENFSK_RX_WATERMARK_RX_WATERMARK_SHIFT   (0U)
+#define GENFSK_RX_WATERMARK_RX_WATERMARK(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_RX_WATERMARK_RX_WATERMARK_SHIFT)) & GENFSK_RX_WATERMARK_RX_WATERMARK_MASK)
+#define GENFSK_RX_WATERMARK_BYTE_COUNTER_MASK    (0x1FFF0000U)
+#define GENFSK_RX_WATERMARK_BYTE_COUNTER_SHIFT   (16U)
+#define GENFSK_RX_WATERMARK_BYTE_COUNTER(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_RX_WATERMARK_BYTE_COUNTER_SHIFT)) & GENFSK_RX_WATERMARK_BYTE_COUNTER_MASK)
+/*! @} */
+
+/*! @name DSM_CTRL - DSM CONTROL */
+/*! @{ */
+#define GENFSK_DSM_CTRL_GEN_SLEEP_REQUEST_MASK   (0x1U)
+#define GENFSK_DSM_CTRL_GEN_SLEEP_REQUEST_SHIFT  (0U)
+#define GENFSK_DSM_CTRL_GEN_SLEEP_REQUEST(x)     (((uint32_t)(((uint32_t)(x)) << GENFSK_DSM_CTRL_GEN_SLEEP_REQUEST_SHIFT)) & GENFSK_DSM_CTRL_GEN_SLEEP_REQUEST_MASK)
+/*! @} */
+
+/*! @name PART_ID - PART ID */
+/*! @{ */
+#define GENFSK_PART_ID_PART_ID_MASK              (0xFFU)
+#define GENFSK_PART_ID_PART_ID_SHIFT             (0U)
+#define GENFSK_PART_ID_PART_ID(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_PART_ID_PART_ID_SHIFT)) & GENFSK_PART_ID_PART_ID_MASK)
+/*! @} */
+
+/*! @name PACKET_CFG - PACKET CONFIGURATION */
+/*! @{ */
+#define GENFSK_PACKET_CFG_LENGTH_SZ_MASK         (0x1FU)
+#define GENFSK_PACKET_CFG_LENGTH_SZ_SHIFT        (0U)
+#define GENFSK_PACKET_CFG_LENGTH_SZ(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_LENGTH_SZ_SHIFT)) & GENFSK_PACKET_CFG_LENGTH_SZ_MASK)
+#define GENFSK_PACKET_CFG_LENGTH_BIT_ORD_MASK    (0x20U)
+#define GENFSK_PACKET_CFG_LENGTH_BIT_ORD_SHIFT   (5U)
+/*! LENGTH_BIT_ORD - LENGTH Bit Order
+ *  0b0..LS Bit First
+ *  0b1..MS Bit First
+ */
+#define GENFSK_PACKET_CFG_LENGTH_BIT_ORD(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_LENGTH_BIT_ORD_SHIFT)) & GENFSK_PACKET_CFG_LENGTH_BIT_ORD_MASK)
+#define GENFSK_PACKET_CFG_SYNC_ADDR_SZ_MASK      (0xC0U)
+#define GENFSK_PACKET_CFG_SYNC_ADDR_SZ_SHIFT     (6U)
+#define GENFSK_PACKET_CFG_SYNC_ADDR_SZ(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_SYNC_ADDR_SZ_SHIFT)) & GENFSK_PACKET_CFG_SYNC_ADDR_SZ_MASK)
+#define GENFSK_PACKET_CFG_LENGTH_ADJ_MASK        (0xFF00U)
+#define GENFSK_PACKET_CFG_LENGTH_ADJ_SHIFT       (8U)
+#define GENFSK_PACKET_CFG_LENGTH_ADJ(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_LENGTH_ADJ_SHIFT)) & GENFSK_PACKET_CFG_LENGTH_ADJ_MASK)
+#define GENFSK_PACKET_CFG_H0_SZ_MASK             (0x1F0000U)
+#define GENFSK_PACKET_CFG_H0_SZ_SHIFT            (16U)
+#define GENFSK_PACKET_CFG_H0_SZ(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_H0_SZ_SHIFT)) & GENFSK_PACKET_CFG_H0_SZ_MASK)
+#define GENFSK_PACKET_CFG_LENGTH_ADJ_UNSIGNED_MASK (0x200000U)
+#define GENFSK_PACKET_CFG_LENGTH_ADJ_UNSIGNED_SHIFT (21U)
+/*! LENGTH_ADJ_UNSIGNED - Length Adjustment Unsigned Enabled
+ *  0b0..Hardware interprets LENGTH_ADJ as a signed integer (default)
+ *  0b1..Hardware interprets LENGTH_ADJ as a unsigned integer
+ */
+#define GENFSK_PACKET_CFG_LENGTH_ADJ_UNSIGNED(x) (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_LENGTH_ADJ_UNSIGNED_SHIFT)) & GENFSK_PACKET_CFG_LENGTH_ADJ_UNSIGNED_MASK)
+#define GENFSK_PACKET_CFG_H1_SZ_MASK             (0x1F000000U)
+#define GENFSK_PACKET_CFG_H1_SZ_SHIFT            (24U)
+#define GENFSK_PACKET_CFG_H1_SZ(x)               (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_H1_SZ_SHIFT)) & GENFSK_PACKET_CFG_H1_SZ_MASK)
+#define GENFSK_PACKET_CFG_H1_FAIL_MASK           (0x20000000U)
+#define GENFSK_PACKET_CFG_H1_FAIL_SHIFT          (29U)
+#define GENFSK_PACKET_CFG_H1_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_H1_FAIL_SHIFT)) & GENFSK_PACKET_CFG_H1_FAIL_MASK)
+#define GENFSK_PACKET_CFG_H0_FAIL_MASK           (0x40000000U)
+#define GENFSK_PACKET_CFG_H0_FAIL_SHIFT          (30U)
+#define GENFSK_PACKET_CFG_H0_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_H0_FAIL_SHIFT)) & GENFSK_PACKET_CFG_H0_FAIL_MASK)
+#define GENFSK_PACKET_CFG_LENGTH_FAIL_MASK       (0x80000000U)
+#define GENFSK_PACKET_CFG_LENGTH_FAIL_SHIFT      (31U)
+#define GENFSK_PACKET_CFG_LENGTH_FAIL(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_PACKET_CFG_LENGTH_FAIL_SHIFT)) & GENFSK_PACKET_CFG_LENGTH_FAIL_MASK)
+/*! @} */
+
+/*! @name H0_CFG - H0 CONFIGURATION */
+/*! @{ */
+#define GENFSK_H0_CFG_H0_MATCH_MASK              (0xFFFFU)
+#define GENFSK_H0_CFG_H0_MATCH_SHIFT             (0U)
+#define GENFSK_H0_CFG_H0_MATCH(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_H0_CFG_H0_MATCH_SHIFT)) & GENFSK_H0_CFG_H0_MATCH_MASK)
+#define GENFSK_H0_CFG_H0_MASK_MASK               (0xFFFF0000U)
+#define GENFSK_H0_CFG_H0_MASK_SHIFT              (16U)
+#define GENFSK_H0_CFG_H0_MASK(x)                 (((uint32_t)(((uint32_t)(x)) << GENFSK_H0_CFG_H0_MASK_SHIFT)) & GENFSK_H0_CFG_H0_MASK_MASK)
+/*! @} */
+
+/*! @name H1_CFG - H1 CONFIGURATION */
+/*! @{ */
+#define GENFSK_H1_CFG_H1_MATCH_MASK              (0xFFFFU)
+#define GENFSK_H1_CFG_H1_MATCH_SHIFT             (0U)
+#define GENFSK_H1_CFG_H1_MATCH(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_H1_CFG_H1_MATCH_SHIFT)) & GENFSK_H1_CFG_H1_MATCH_MASK)
+#define GENFSK_H1_CFG_H1_MASK_MASK               (0xFFFF0000U)
+#define GENFSK_H1_CFG_H1_MASK_SHIFT              (16U)
+#define GENFSK_H1_CFG_H1_MASK(x)                 (((uint32_t)(((uint32_t)(x)) << GENFSK_H1_CFG_H1_MASK_SHIFT)) & GENFSK_H1_CFG_H1_MASK_MASK)
+/*! @} */
+
+/*! @name CRC_CFG - CRC CONFIGURATION */
+/*! @{ */
+#define GENFSK_CRC_CFG_CRC_SZ_MASK               (0x7U)
+#define GENFSK_CRC_CFG_CRC_SZ_SHIFT              (0U)
+#define GENFSK_CRC_CFG_CRC_SZ(x)                 (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_CFG_CRC_SZ_SHIFT)) & GENFSK_CRC_CFG_CRC_SZ_MASK)
+#define GENFSK_CRC_CFG_CRC_START_BYTE_MASK       (0xF00U)
+#define GENFSK_CRC_CFG_CRC_START_BYTE_SHIFT      (8U)
+#define GENFSK_CRC_CFG_CRC_START_BYTE(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_CFG_CRC_START_BYTE_SHIFT)) & GENFSK_CRC_CFG_CRC_START_BYTE_MASK)
+#define GENFSK_CRC_CFG_CRC_REF_IN_MASK           (0x10000U)
+#define GENFSK_CRC_CFG_CRC_REF_IN_SHIFT          (16U)
+/*! CRC_REF_IN - CRC Reflect In
+ *  0b0..do not manipulate input data stream
+ *  0b1..reflect each byte in the input stream bitwise
+ */
+#define GENFSK_CRC_CFG_CRC_REF_IN(x)             (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_CFG_CRC_REF_IN_SHIFT)) & GENFSK_CRC_CFG_CRC_REF_IN_MASK)
+#define GENFSK_CRC_CFG_CRC_REF_OUT_MASK          (0x20000U)
+#define GENFSK_CRC_CFG_CRC_REF_OUT_SHIFT         (17U)
+/*! CRC_REF_OUT - CRC Reflect Out
+ *  0b0..do not manipulate CRC result
+ *  0b1..CRC result is to be reflected bitwise (operated on entire word)
+ */
+#define GENFSK_CRC_CFG_CRC_REF_OUT(x)            (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_CFG_CRC_REF_OUT_SHIFT)) & GENFSK_CRC_CFG_CRC_REF_OUT_MASK)
+#define GENFSK_CRC_CFG_CRC_BYTE_ORD_MASK         (0x40000U)
+#define GENFSK_CRC_CFG_CRC_BYTE_ORD_SHIFT        (18U)
+/*! CRC_BYTE_ORD - CRC Byte Order
+ *  0b0..LS Byte First
+ *  0b1..MS Byte First
+ */
+#define GENFSK_CRC_CFG_CRC_BYTE_ORD(x)           (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_CFG_CRC_BYTE_ORD_SHIFT)) & GENFSK_CRC_CFG_CRC_BYTE_ORD_MASK)
+/*! @} */
+
+/*! @name CRC_INIT - CRC INITIALIZATION */
+/*! @{ */
+#define GENFSK_CRC_INIT_CRC_SEED_MASK            (0xFFFFFFFFU)
+#define GENFSK_CRC_INIT_CRC_SEED_SHIFT           (0U)
+#define GENFSK_CRC_INIT_CRC_SEED(x)              (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_INIT_CRC_SEED_SHIFT)) & GENFSK_CRC_INIT_CRC_SEED_MASK)
+/*! @} */
+
+/*! @name CRC_POLY - CRC POLYNOMIAL */
+/*! @{ */
+#define GENFSK_CRC_POLY_CRC_POLY_MASK            (0xFFFFFFFFU)
+#define GENFSK_CRC_POLY_CRC_POLY_SHIFT           (0U)
+#define GENFSK_CRC_POLY_CRC_POLY(x)              (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_POLY_CRC_POLY_SHIFT)) & GENFSK_CRC_POLY_CRC_POLY_MASK)
+/*! @} */
+
+/*! @name CRC_XOR_OUT - CRC XOR OUT */
+/*! @{ */
+#define GENFSK_CRC_XOR_OUT_CRC_XOR_OUT_MASK      (0xFFFFFFFFU)
+#define GENFSK_CRC_XOR_OUT_CRC_XOR_OUT_SHIFT     (0U)
+#define GENFSK_CRC_XOR_OUT_CRC_XOR_OUT(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_CRC_XOR_OUT_CRC_XOR_OUT_SHIFT)) & GENFSK_CRC_XOR_OUT_CRC_XOR_OUT_MASK)
+/*! @} */
+
+/*! @name WHITEN_CFG - WHITENER CONFIGURATION */
+/*! @{ */
+#define GENFSK_WHITEN_CFG_WHITEN_START_MASK      (0x3U)
+#define GENFSK_WHITEN_CFG_WHITEN_START_SHIFT     (0U)
+/*! WHITEN_START - Configure Whitener Start Point
+ *  0b00..no whitening
+ *  0b01..start whitening at start-of-H0
+ *  0b10..start whitening at start-of-H1 but only if LENGTH > WHITEN_SZ_THR
+ *  0b11..start whitening at start-of-payload but only if LENGTH > WHITEN_SZ_THR
+ */
+#define GENFSK_WHITEN_CFG_WHITEN_START(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_START_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_START_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_END_MASK        (0x4U)
+#define GENFSK_WHITEN_CFG_WHITEN_END_SHIFT       (2U)
+/*! WHITEN_END - Configure end-of-whitening
+ *  0b0..end whiten at end-of-payload
+ *  0b1..end whiten at end-of-crc
+ */
+#define GENFSK_WHITEN_CFG_WHITEN_END(x)          (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_END_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_END_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_B4_CRC_MASK     (0x8U)
+#define GENFSK_WHITEN_CFG_WHITEN_B4_CRC_SHIFT    (3U)
+/*! WHITEN_B4_CRC - Congifure for Whitening-before-CRC
+ *  0b0..CRC before whiten/de-whiten
+ *  0b1..Whiten/de-whiten before CRC
+ */
+#define GENFSK_WHITEN_CFG_WHITEN_B4_CRC(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_B4_CRC_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_B4_CRC_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_POLY_TYPE_MASK  (0x10U)
+#define GENFSK_WHITEN_CFG_WHITEN_POLY_TYPE_SHIFT (4U)
+#define GENFSK_WHITEN_CFG_WHITEN_POLY_TYPE(x)    (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_POLY_TYPE_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_POLY_TYPE_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_REF_IN_MASK     (0x20U)
+#define GENFSK_WHITEN_CFG_WHITEN_REF_IN_SHIFT    (5U)
+#define GENFSK_WHITEN_CFG_WHITEN_REF_IN(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_REF_IN_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_REF_IN_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_PAYLOAD_REINIT_MASK (0x40U)
+#define GENFSK_WHITEN_CFG_WHITEN_PAYLOAD_REINIT_SHIFT (6U)
+/*! WHITEN_PAYLOAD_REINIT - Configure for Whitener re-initialization
+ *  0b0..Don't re-initialize Whitener LFSR at start-of-payload
+ *  0b1..Re-initialize Whitener LFSR at start-of-payload
+ */
+#define GENFSK_WHITEN_CFG_WHITEN_PAYLOAD_REINIT(x) (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_PAYLOAD_REINIT_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_PAYLOAD_REINIT_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_SIZE_MASK       (0xF00U)
+#define GENFSK_WHITEN_CFG_WHITEN_SIZE_SHIFT      (8U)
+#define GENFSK_WHITEN_CFG_WHITEN_SIZE(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_SIZE_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_SIZE_MASK)
+#define GENFSK_WHITEN_CFG_MANCHESTER_EN_MASK     (0x1000U)
+#define GENFSK_WHITEN_CFG_MANCHESTER_EN_SHIFT    (12U)
+/*! MANCHESTER_EN - Configure for Manchester Encoding/Decoding
+ *  0b0..Disable Manchester encoding (TX) and decoding (RX)
+ *  0b1..Enable Manchester encoding (TX) and decoding (RX)
+ */
+#define GENFSK_WHITEN_CFG_MANCHESTER_EN(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_MANCHESTER_EN_SHIFT)) & GENFSK_WHITEN_CFG_MANCHESTER_EN_MASK)
+#define GENFSK_WHITEN_CFG_MANCHESTER_INV_MASK    (0x2000U)
+#define GENFSK_WHITEN_CFG_MANCHESTER_INV_SHIFT   (13U)
+/*! MANCHESTER_INV - Configure for Inverted Manchester Encoding
+ *  0b0..Manchester coding as per 802.3
+ *  0b1..Manchester coding as per 802.3 but with the encoding signal inverted
+ */
+#define GENFSK_WHITEN_CFG_MANCHESTER_INV(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_MANCHESTER_INV_SHIFT)) & GENFSK_WHITEN_CFG_MANCHESTER_INV_MASK)
+#define GENFSK_WHITEN_CFG_MANCHESTER_START_MASK  (0x4000U)
+#define GENFSK_WHITEN_CFG_MANCHESTER_START_SHIFT (14U)
+/*! MANCHESTER_START - Configure Manchester Encoding Start Point
+ *  0b0..Start Manchester coding at start-of-payload
+ *  0b1..Start Manchester coding at start-of-header
+ */
+#define GENFSK_WHITEN_CFG_MANCHESTER_START(x)    (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_MANCHESTER_START_SHIFT)) & GENFSK_WHITEN_CFG_MANCHESTER_START_MASK)
+#define GENFSK_WHITEN_CFG_WHITEN_INIT_MASK       (0x1FF0000U)
+#define GENFSK_WHITEN_CFG_WHITEN_INIT_SHIFT      (16U)
+#define GENFSK_WHITEN_CFG_WHITEN_INIT(x)         (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_CFG_WHITEN_INIT_SHIFT)) & GENFSK_WHITEN_CFG_WHITEN_INIT_MASK)
+/*! @} */
+
+/*! @name WHITEN_POLY - WHITENER POLYNOMIAL */
+/*! @{ */
+#define GENFSK_WHITEN_POLY_WHITEN_POLY_MASK      (0x1FFU)
+#define GENFSK_WHITEN_POLY_WHITEN_POLY_SHIFT     (0U)
+#define GENFSK_WHITEN_POLY_WHITEN_POLY(x)        (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_POLY_WHITEN_POLY_SHIFT)) & GENFSK_WHITEN_POLY_WHITEN_POLY_MASK)
+/*! @} */
+
+/*! @name WHITEN_SZ_THR - WHITENER SIZE THRESHOLD */
+/*! @{ */
+#define GENFSK_WHITEN_SZ_THR_WHITEN_SZ_THR_MASK  (0xFFFU)
+#define GENFSK_WHITEN_SZ_THR_WHITEN_SZ_THR_SHIFT (0U)
+#define GENFSK_WHITEN_SZ_THR_WHITEN_SZ_THR(x)    (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_SZ_THR_WHITEN_SZ_THR_SHIFT)) & GENFSK_WHITEN_SZ_THR_WHITEN_SZ_THR_MASK)
+#define GENFSK_WHITEN_SZ_THR_LENGTH_MAX_MASK     (0x7F0000U)
+#define GENFSK_WHITEN_SZ_THR_LENGTH_MAX_SHIFT    (16U)
+#define GENFSK_WHITEN_SZ_THR_LENGTH_MAX(x)       (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_SZ_THR_LENGTH_MAX_SHIFT)) & GENFSK_WHITEN_SZ_THR_LENGTH_MAX_MASK)
+#define GENFSK_WHITEN_SZ_THR_REC_BAD_PKT_MASK    (0x800000U)
+#define GENFSK_WHITEN_SZ_THR_REC_BAD_PKT_SHIFT   (23U)
+/*! REC_BAD_PKT - Receive Bad Packets
+ *  0b0..packets which fail H0, H1, or LENGTH_MAX result in an automatic recycle after the header is received and parsed
+ *  0b1..packets which fail H0, H1, or LENGTH_MAX are received in their entirety
+ */
+#define GENFSK_WHITEN_SZ_THR_REC_BAD_PKT(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_WHITEN_SZ_THR_REC_BAD_PKT_SHIFT)) & GENFSK_WHITEN_SZ_THR_REC_BAD_PKT_MASK)
+/*! @} */
+
+/*! @name BITRATE - BIT RATE */
+/*! @{ */
+#define GENFSK_BITRATE_BITRATE_MASK              (0x3U)
+#define GENFSK_BITRATE_BITRATE_SHIFT             (0U)
+/*! BITRATE - Bit Rate
+ *  0b00..1Mbit/sec
+ *  0b01..500Kbit/sec
+ *  0b10..250Kbit/sec (not supported if WHITEN_CFG[MANCHESTER_EN]=1)
+ *  0b11..2Mbit/sec (not supported if WHITEN_CFG[MANCHESTER_EN]=1)
+ */
+#define GENFSK_BITRATE_BITRATE(x)                (((uint32_t)(((uint32_t)(x)) << GENFSK_BITRATE_BITRATE_SHIFT)) & GENFSK_BITRATE_BITRATE_MASK)
+/*! @} */
+
+/*! @name PB_PARTITION - PACKET BUFFER PARTITION POINT */
+/*! @{ */
+#define GENFSK_PB_PARTITION_PB_PARTITION_MASK    (0x7FFU)
+#define GENFSK_PB_PARTITION_PB_PARTITION_SHIFT   (0U)
+#define GENFSK_PB_PARTITION_PB_PARTITION(x)      (((uint32_t)(((uint32_t)(x)) << GENFSK_PB_PARTITION_PB_PARTITION_SHIFT)) & GENFSK_PB_PARTITION_PB_PARTITION_MASK)
+/*! @} */
+
+/*! @name PACKET_BUFFER - PACKET BUFFER */
+/*! @{ */
+#define GENFSK_PACKET_BUFFER_PACKET_BUFFER_MASK  (0xFFFFU)
+#define GENFSK_PACKET_BUFFER_PACKET_BUFFER_SHIFT (0U)
+#define GENFSK_PACKET_BUFFER_PACKET_BUFFER(x)    (((uint16_t)(((uint16_t)(x)) << GENFSK_PACKET_BUFFER_PACKET_BUFFER_SHIFT)) & GENFSK_PACKET_BUFFER_PACKET_BUFFER_MASK)
+/*! @} */
+
+/* The count of GENFSK_PACKET_BUFFER */
+#define GENFSK_PACKET_BUFFER_COUNT               (1088U)
+
+
+/*!
+ * @}
+ */ /* end of group GENFSK_Register_Masks */
+
+
+/* GENFSK - Peripheral instance base addresses */
+/** Peripheral GENFSK base address */
+#define GENFSK_BASE                              (0x41033000u)
+/** Peripheral GENFSK base pointer */
+#define GENFSK                                   ((GENFSK_Type *)GENFSK_BASE)
+/** Array initializer of GENFSK peripheral base addresses */
+#define GENFSK_BASE_ADDRS                        { GENFSK_BASE }
+/** Array initializer of GENFSK peripheral base pointers */
+#define GENFSK_BASE_PTRS                         { GENFSK }
+
+/*!
+ * @}
+ */ /* end of group GENFSK_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- GPIO Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GPIO_Peripheral_Access_Layer GPIO Peripheral Access Layer
+ * @{
+ */
+
+/** GPIO - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PDOR;                              /**< Port Data Output Register, offset: 0x0 */
+  __O  uint32_t PSOR;                              /**< Port Set Output Register, offset: 0x4 */
+  __O  uint32_t PCOR;                              /**< Port Clear Output Register, offset: 0x8 */
+  __O  uint32_t PTOR;                              /**< Port Toggle Output Register, offset: 0xC */
+  __I  uint32_t PDIR;                              /**< Port Data Input Register, offset: 0x10 */
+  __IO uint32_t PDDR;                              /**< Port Data Direction Register, offset: 0x14 */
+} GPIO_Type;
+
+/* ----------------------------------------------------------------------------
+   -- GPIO Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup GPIO_Register_Masks GPIO Register Masks
+ * @{
+ */
+
+/*! @name PDOR - Port Data Output Register */
+/*! @{ */
+#define GPIO_PDOR_PDO_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDOR_PDO_SHIFT                      (0U)
+#define GPIO_PDOR_PDO(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDOR_PDO_SHIFT)) & GPIO_PDOR_PDO_MASK)
+/*! @} */
+
+/*! @name PSOR - Port Set Output Register */
+/*! @{ */
+#define GPIO_PSOR_PTSO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PSOR_PTSO_SHIFT                     (0U)
+#define GPIO_PSOR_PTSO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PSOR_PTSO_SHIFT)) & GPIO_PSOR_PTSO_MASK)
+/*! @} */
+
+/*! @name PCOR - Port Clear Output Register */
+/*! @{ */
+#define GPIO_PCOR_PTCO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PCOR_PTCO_SHIFT                     (0U)
+#define GPIO_PCOR_PTCO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PCOR_PTCO_SHIFT)) & GPIO_PCOR_PTCO_MASK)
+/*! @} */
+
+/*! @name PTOR - Port Toggle Output Register */
+/*! @{ */
+#define GPIO_PTOR_PTTO_MASK                      (0xFFFFFFFFU)
+#define GPIO_PTOR_PTTO_SHIFT                     (0U)
+#define GPIO_PTOR_PTTO(x)                        (((uint32_t)(((uint32_t)(x)) << GPIO_PTOR_PTTO_SHIFT)) & GPIO_PTOR_PTTO_MASK)
+/*! @} */
+
+/*! @name PDIR - Port Data Input Register */
+/*! @{ */
+#define GPIO_PDIR_PDI_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDIR_PDI_SHIFT                      (0U)
+#define GPIO_PDIR_PDI(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDIR_PDI_SHIFT)) & GPIO_PDIR_PDI_MASK)
+/*! @} */
+
+/*! @name PDDR - Port Data Direction Register */
+/*! @{ */
+#define GPIO_PDDR_PDD_MASK                       (0xFFFFFFFFU)
+#define GPIO_PDDR_PDD_SHIFT                      (0U)
+#define GPIO_PDDR_PDD(x)                         (((uint32_t)(((uint32_t)(x)) << GPIO_PDDR_PDD_SHIFT)) & GPIO_PDDR_PDD_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group GPIO_Register_Masks */
+
+
+/* GPIO - Peripheral instance base addresses */
+/** Peripheral GPIOA base address */
+#define GPIOA_BASE                               (0x48020000u)
+/** Peripheral GPIOA base pointer */
+#define GPIOA                                    ((GPIO_Type *)GPIOA_BASE)
+/** Peripheral GPIOB base address */
+#define GPIOB_BASE                               (0x48020040u)
+/** Peripheral GPIOB base pointer */
+#define GPIOB                                    ((GPIO_Type *)GPIOB_BASE)
+/** Peripheral GPIOC base address */
+#define GPIOC_BASE                               (0x48020080u)
+/** Peripheral GPIOC base pointer */
+#define GPIOC                                    ((GPIO_Type *)GPIOC_BASE)
+/** Peripheral GPIOD base address */
+#define GPIOD_BASE                               (0x480200C0u)
+/** Peripheral GPIOD base pointer */
+#define GPIOD                                    ((GPIO_Type *)GPIOD_BASE)
+/** Peripheral GPIOE base address */
+#define GPIOE_BASE                               (0x4100F000u)
+/** Peripheral GPIOE base pointer */
+#define GPIOE                                    ((GPIO_Type *)GPIOE_BASE)
+/** Array initializer of GPIO peripheral base addresses */
+#define GPIO_BASE_ADDRS                          { GPIOA_BASE, GPIOB_BASE, GPIOC_BASE, GPIOD_BASE, GPIOE_BASE }
+/** Array initializer of GPIO peripheral base pointers */
+#define GPIO_BASE_PTRS                           { GPIOA, GPIOB, GPIOC, GPIOD, GPIOE }
+
+/*!
+ * @}
+ */ /* end of group GPIO_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- I2S Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup I2S_Peripheral_Access_Layer I2S Peripheral Access Layer
+ * @{
+ */
+
+/** I2S - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t TCSR;                              /**< SAI Transmit Control Register, offset: 0x8 */
+  __IO uint32_t TCR1;                              /**< SAI Transmit Configuration 1 Register, offset: 0xC */
+  __IO uint32_t TCR2;                              /**< SAI Transmit Configuration 2 Register, offset: 0x10 */
+  __IO uint32_t TCR3;                              /**< SAI Transmit Configuration 3 Register, offset: 0x14 */
+  __IO uint32_t TCR4;                              /**< SAI Transmit Configuration 4 Register, offset: 0x18 */
+  __IO uint32_t TCR5;                              /**< SAI Transmit Configuration 5 Register, offset: 0x1C */
+  __O  uint32_t TDR[2];                            /**< SAI Transmit Data Register, array offset: 0x20, array step: 0x4 */
+       uint8_t RESERVED_0[24];
+  __I  uint32_t TFR[2];                            /**< SAI Transmit FIFO Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_1[24];
+  __IO uint32_t TMR;                               /**< SAI Transmit Mask Register, offset: 0x60 */
+       uint8_t RESERVED_2[36];
+  __IO uint32_t RCSR;                              /**< SAI Receive Control Register, offset: 0x88 */
+  __IO uint32_t RCR1;                              /**< SAI Receive Configuration 1 Register, offset: 0x8C */
+  __IO uint32_t RCR2;                              /**< SAI Receive Configuration 2 Register, offset: 0x90 */
+  __IO uint32_t RCR3;                              /**< SAI Receive Configuration 3 Register, offset: 0x94 */
+  __IO uint32_t RCR4;                              /**< SAI Receive Configuration 4 Register, offset: 0x98 */
+  __IO uint32_t RCR5;                              /**< SAI Receive Configuration 5 Register, offset: 0x9C */
+  __I  uint32_t RDR[2];                            /**< SAI Receive Data Register, array offset: 0xA0, array step: 0x4 */
+       uint8_t RESERVED_3[24];
+  __I  uint32_t RFR[2];                            /**< SAI Receive FIFO Register, array offset: 0xC0, array step: 0x4 */
+       uint8_t RESERVED_4[24];
+  __IO uint32_t RMR;                               /**< SAI Receive Mask Register, offset: 0xE0 */
+} I2S_Type;
+
+/* ----------------------------------------------------------------------------
+   -- I2S Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup I2S_Register_Masks I2S Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define I2S_VERID_FEATURE_MASK                   (0xFFFFU)
+#define I2S_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard feature set.
+ */
+#define I2S_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << I2S_VERID_FEATURE_SHIFT)) & I2S_VERID_FEATURE_MASK)
+#define I2S_VERID_MINOR_MASK                     (0xFF0000U)
+#define I2S_VERID_MINOR_SHIFT                    (16U)
+#define I2S_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_VERID_MINOR_SHIFT)) & I2S_VERID_MINOR_MASK)
+#define I2S_VERID_MAJOR_MASK                     (0xFF000000U)
+#define I2S_VERID_MAJOR_SHIFT                    (24U)
+#define I2S_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_VERID_MAJOR_SHIFT)) & I2S_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define I2S_PARAM_DATALINE_MASK                  (0xFU)
+#define I2S_PARAM_DATALINE_SHIFT                 (0U)
+#define I2S_PARAM_DATALINE(x)                    (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_DATALINE_SHIFT)) & I2S_PARAM_DATALINE_MASK)
+#define I2S_PARAM_FIFO_MASK                      (0xF00U)
+#define I2S_PARAM_FIFO_SHIFT                     (8U)
+#define I2S_PARAM_FIFO(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_FIFO_SHIFT)) & I2S_PARAM_FIFO_MASK)
+#define I2S_PARAM_FRAME_MASK                     (0xF0000U)
+#define I2S_PARAM_FRAME_SHIFT                    (16U)
+#define I2S_PARAM_FRAME(x)                       (((uint32_t)(((uint32_t)(x)) << I2S_PARAM_FRAME_SHIFT)) & I2S_PARAM_FRAME_MASK)
+/*! @} */
+
+/*! @name TCSR - SAI Transmit Control Register */
+/*! @{ */
+#define I2S_TCSR_FRDE_MASK                       (0x1U)
+#define I2S_TCSR_FRDE_SHIFT                      (0U)
+/*! FRDE - FIFO Request DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_TCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRDE_SHIFT)) & I2S_TCSR_FRDE_MASK)
+#define I2S_TCSR_FWDE_MASK                       (0x2U)
+#define I2S_TCSR_FWDE_SHIFT                      (1U)
+/*! FWDE - FIFO Warning DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_TCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWDE_SHIFT)) & I2S_TCSR_FWDE_MASK)
+#define I2S_TCSR_FRIE_MASK                       (0x100U)
+#define I2S_TCSR_FRIE_SHIFT                      (8U)
+/*! FRIE - FIFO Request Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRIE_SHIFT)) & I2S_TCSR_FRIE_MASK)
+#define I2S_TCSR_FWIE_MASK                       (0x200U)
+#define I2S_TCSR_FWIE_SHIFT                      (9U)
+/*! FWIE - FIFO Warning Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWIE_SHIFT)) & I2S_TCSR_FWIE_MASK)
+#define I2S_TCSR_FEIE_MASK                       (0x400U)
+#define I2S_TCSR_FEIE_SHIFT                      (10U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_TCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEIE_SHIFT)) & I2S_TCSR_FEIE_MASK)
+#define I2S_TCSR_SEIE_MASK                       (0x800U)
+#define I2S_TCSR_SEIE_SHIFT                      (11U)
+/*! SEIE - Sync Error Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_TCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEIE_SHIFT)) & I2S_TCSR_SEIE_MASK)
+#define I2S_TCSR_WSIE_MASK                       (0x1000U)
+#define I2S_TCSR_WSIE_SHIFT                      (12U)
+/*! WSIE - Word Start Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_TCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSIE_SHIFT)) & I2S_TCSR_WSIE_MASK)
+#define I2S_TCSR_FRF_MASK                        (0x10000U)
+#define I2S_TCSR_FRF_SHIFT                       (16U)
+/*! FRF - FIFO Request Flag
+ *  0b0..Transmit FIFO watermark has not been reached.
+ *  0b1..Transmit FIFO watermark has been reached.
+ */
+#define I2S_TCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FRF_SHIFT)) & I2S_TCSR_FRF_MASK)
+#define I2S_TCSR_FWF_MASK                        (0x20000U)
+#define I2S_TCSR_FWF_SHIFT                       (17U)
+/*! FWF - FIFO Warning Flag
+ *  0b0..No enabled transmit FIFO is empty.
+ *  0b1..Enabled transmit FIFO is empty.
+ */
+#define I2S_TCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FWF_SHIFT)) & I2S_TCSR_FWF_MASK)
+#define I2S_TCSR_FEF_MASK                        (0x40000U)
+#define I2S_TCSR_FEF_SHIFT                       (18U)
+/*! FEF - FIFO Error Flag
+ *  0b0..Transmit underrun not detected.
+ *  0b1..Transmit underrun detected.
+ */
+#define I2S_TCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FEF_SHIFT)) & I2S_TCSR_FEF_MASK)
+#define I2S_TCSR_SEF_MASK                        (0x80000U)
+#define I2S_TCSR_SEF_SHIFT                       (19U)
+/*! SEF - Sync Error Flag
+ *  0b0..Sync error not detected.
+ *  0b1..Frame sync error detected.
+ */
+#define I2S_TCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SEF_SHIFT)) & I2S_TCSR_SEF_MASK)
+#define I2S_TCSR_WSF_MASK                        (0x100000U)
+#define I2S_TCSR_WSF_SHIFT                       (20U)
+/*! WSF - Word Start Flag
+ *  0b0..Start of word not detected.
+ *  0b1..Start of word detected.
+ */
+#define I2S_TCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_WSF_SHIFT)) & I2S_TCSR_WSF_MASK)
+#define I2S_TCSR_SR_MASK                         (0x1000000U)
+#define I2S_TCSR_SR_SHIFT                        (24U)
+/*! SR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Software reset.
+ */
+#define I2S_TCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_SR_SHIFT)) & I2S_TCSR_SR_MASK)
+#define I2S_TCSR_FR_MASK                         (0x2000000U)
+#define I2S_TCSR_FR_SHIFT                        (25U)
+/*! FR - FIFO Reset
+ *  0b0..No effect.
+ *  0b1..FIFO reset.
+ */
+#define I2S_TCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_FR_SHIFT)) & I2S_TCSR_FR_MASK)
+#define I2S_TCSR_BCE_MASK                        (0x10000000U)
+#define I2S_TCSR_BCE_SHIFT                       (28U)
+/*! BCE - Bit Clock Enable
+ *  0b0..Transmit bit clock is disabled.
+ *  0b1..Transmit bit clock is enabled.
+ */
+#define I2S_TCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_BCE_SHIFT)) & I2S_TCSR_BCE_MASK)
+#define I2S_TCSR_DBGE_MASK                       (0x20000000U)
+#define I2S_TCSR_DBGE_SHIFT                      (29U)
+/*! DBGE - Debug Enable
+ *  0b0..Transmitter is disabled in Debug mode, after completing the current frame.
+ *  0b1..Transmitter is enabled in Debug mode.
+ */
+#define I2S_TCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_DBGE_SHIFT)) & I2S_TCSR_DBGE_MASK)
+#define I2S_TCSR_STOPE_MASK                      (0x40000000U)
+#define I2S_TCSR_STOPE_SHIFT                     (30U)
+/*! STOPE - Stop Enable
+ *  0b0..Transmitter disabled in Stop mode.
+ *  0b1..Transmitter enabled in Stop mode.
+ */
+#define I2S_TCSR_STOPE(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_STOPE_SHIFT)) & I2S_TCSR_STOPE_MASK)
+#define I2S_TCSR_TE_MASK                         (0x80000000U)
+#define I2S_TCSR_TE_SHIFT                        (31U)
+/*! TE - Transmitter Enable
+ *  0b0..Transmitter is disabled.
+ *  0b1..Transmitter is enabled, or transmitter has been disabled and has not yet reached end of frame.
+ */
+#define I2S_TCSR_TE(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCSR_TE_SHIFT)) & I2S_TCSR_TE_MASK)
+/*! @} */
+
+/*! @name TCR1 - SAI Transmit Configuration 1 Register */
+/*! @{ */
+#define I2S_TCR1_TFW_MASK                        (0x7U)
+#define I2S_TCR1_TFW_SHIFT                       (0U)
+#define I2S_TCR1_TFW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR1_TFW_SHIFT)) & I2S_TCR1_TFW_MASK)
+/*! @} */
+
+/*! @name TCR2 - SAI Transmit Configuration 2 Register */
+/*! @{ */
+#define I2S_TCR2_DIV_MASK                        (0xFFU)
+#define I2S_TCR2_DIV_SHIFT                       (0U)
+#define I2S_TCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_DIV_SHIFT)) & I2S_TCR2_DIV_MASK)
+#define I2S_TCR2_BCD_MASK                        (0x1000000U)
+#define I2S_TCR2_BCD_SHIFT                       (24U)
+/*! BCD - Bit Clock Direction
+ *  0b0..Bit clock is generated externally in Slave mode.
+ *  0b1..Bit clock is generated internally in Master mode.
+ */
+#define I2S_TCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCD_SHIFT)) & I2S_TCR2_BCD_MASK)
+#define I2S_TCR2_BCP_MASK                        (0x2000000U)
+#define I2S_TCR2_BCP_SHIFT                       (25U)
+/*! BCP - Bit Clock Polarity
+ *  0b0..Bit clock is active high with drive outputs on rising edge and sample inputs on falling edge.
+ *  0b1..Bit clock is active low with drive outputs on falling edge and sample inputs on rising edge.
+ */
+#define I2S_TCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCP_SHIFT)) & I2S_TCR2_BCP_MASK)
+#define I2S_TCR2_MSEL_MASK                       (0xC000000U)
+#define I2S_TCR2_MSEL_SHIFT                      (26U)
+/*! MSEL - MCLK Select
+ *  0b00..Bus Clock selected.
+ *  0b01..Master Clock (MCLK) 1 option selected.
+ *  0b10..Master Clock (MCLK) 2 option selected.
+ *  0b11..Master Clock (MCLK) 3 option selected.
+ */
+#define I2S_TCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_MSEL_SHIFT)) & I2S_TCR2_MSEL_MASK)
+#define I2S_TCR2_BCI_MASK                        (0x10000000U)
+#define I2S_TCR2_BCI_SHIFT                       (28U)
+/*! BCI - Bit Clock Input
+ *  0b0..No effect.
+ *  0b1..Internal logic is clocked as if bit clock was externally generated.
+ */
+#define I2S_TCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCI_SHIFT)) & I2S_TCR2_BCI_MASK)
+#define I2S_TCR2_BCS_MASK                        (0x20000000U)
+#define I2S_TCR2_BCS_SHIFT                       (29U)
+/*! BCS - Bit Clock Swap
+ *  0b0..Use the normal bit clock source.
+ *  0b1..Swap the bit clock source.
+ */
+#define I2S_TCR2_BCS(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_BCS_SHIFT)) & I2S_TCR2_BCS_MASK)
+#define I2S_TCR2_SYNC_MASK                       (0xC0000000U)
+#define I2S_TCR2_SYNC_SHIFT                      (30U)
+/*! SYNC - Synchronous Mode
+ *  0b00..Asynchronous mode.
+ *  0b01..Synchronous with receiver.
+ *  0b10..Synchronous with another SAI transmitter.
+ *  0b11..Synchronous with another SAI receiver.
+ */
+#define I2S_TCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR2_SYNC_SHIFT)) & I2S_TCR2_SYNC_MASK)
+/*! @} */
+
+/*! @name TCR3 - SAI Transmit Configuration 3 Register */
+/*! @{ */
+#define I2S_TCR3_WDFL_MASK                       (0x1FU)
+#define I2S_TCR3_WDFL_SHIFT                      (0U)
+#define I2S_TCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_WDFL_SHIFT)) & I2S_TCR3_WDFL_MASK)
+#define I2S_TCR3_TCE_MASK                        (0x30000U)
+#define I2S_TCR3_TCE_SHIFT                       (16U)
+#define I2S_TCR3_TCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_TCE_SHIFT)) & I2S_TCR3_TCE_MASK)
+#define I2S_TCR3_CFR_MASK                        (0x3000000U)
+#define I2S_TCR3_CFR_SHIFT                       (24U)
+#define I2S_TCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR3_CFR_SHIFT)) & I2S_TCR3_CFR_MASK)
+/*! @} */
+
+/*! @name TCR4 - SAI Transmit Configuration 4 Register */
+/*! @{ */
+#define I2S_TCR4_FSD_MASK                        (0x1U)
+#define I2S_TCR4_FSD_SHIFT                       (0U)
+/*! FSD - Frame Sync Direction
+ *  0b0..Frame sync is generated externally in Slave mode.
+ *  0b1..Frame sync is generated internally in Master mode.
+ */
+#define I2S_TCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSD_SHIFT)) & I2S_TCR4_FSD_MASK)
+#define I2S_TCR4_FSP_MASK                        (0x2U)
+#define I2S_TCR4_FSP_SHIFT                       (1U)
+/*! FSP - Frame Sync Polarity
+ *  0b0..Frame sync is active high.
+ *  0b1..Frame sync is active low.
+ */
+#define I2S_TCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSP_SHIFT)) & I2S_TCR4_FSP_MASK)
+#define I2S_TCR4_ONDEM_MASK                      (0x4U)
+#define I2S_TCR4_ONDEM_SHIFT                     (2U)
+/*! ONDEM - On Demand Mode
+ *  0b0..Internal frame sync is generated continuously.
+ *  0b1..Internal frame sync is generated when the FIFO warning flag is clear.
+ */
+#define I2S_TCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_ONDEM_SHIFT)) & I2S_TCR4_ONDEM_MASK)
+#define I2S_TCR4_FSE_MASK                        (0x8U)
+#define I2S_TCR4_FSE_SHIFT                       (3U)
+/*! FSE - Frame Sync Early
+ *  0b0..Frame sync asserts with the first bit of the frame.
+ *  0b1..Frame sync asserts one bit before the first bit of the frame.
+ */
+#define I2S_TCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FSE_SHIFT)) & I2S_TCR4_FSE_MASK)
+#define I2S_TCR4_MF_MASK                         (0x10U)
+#define I2S_TCR4_MF_SHIFT                        (4U)
+/*! MF - MSB First
+ *  0b0..LSB is transmitted first.
+ *  0b1..MSB is transmitted first.
+ */
+#define I2S_TCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_MF_SHIFT)) & I2S_TCR4_MF_MASK)
+#define I2S_TCR4_CHMOD_MASK                      (0x20U)
+#define I2S_TCR4_CHMOD_SHIFT                     (5U)
+/*! CHMOD - Channel Mode
+ *  0b0..TDM mode, transmit data pins are tri-stated when slots are masked or channels are disabled.
+ *  0b1..Output mode, transmit data pins are never tri-stated and will output zero when slots are masked or channels are disabled.
+ */
+#define I2S_TCR4_CHMOD(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_CHMOD_SHIFT)) & I2S_TCR4_CHMOD_MASK)
+#define I2S_TCR4_SYWD_MASK                       (0x1F00U)
+#define I2S_TCR4_SYWD_SHIFT                      (8U)
+#define I2S_TCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_SYWD_SHIFT)) & I2S_TCR4_SYWD_MASK)
+#define I2S_TCR4_FRSZ_MASK                       (0x1F0000U)
+#define I2S_TCR4_FRSZ_SHIFT                      (16U)
+#define I2S_TCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FRSZ_SHIFT)) & I2S_TCR4_FRSZ_MASK)
+#define I2S_TCR4_FPACK_MASK                      (0x3000000U)
+#define I2S_TCR4_FPACK_SHIFT                     (24U)
+/*! FPACK - FIFO Packing Mode
+ *  0b00..FIFO packing is disabled
+ *  0b01..Reserved
+ *  0b10..8-bit FIFO packing is enabled
+ *  0b11..16-bit FIFO packing is enabled
+ */
+#define I2S_TCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FPACK_SHIFT)) & I2S_TCR4_FPACK_MASK)
+#define I2S_TCR4_FCOMB_MASK                      (0xC000000U)
+#define I2S_TCR4_FCOMB_SHIFT                     (26U)
+/*! FCOMB - FIFO Combine Mode
+ *  0b00..FIFO combine mode disabled.
+ *  0b01..FIFO combine mode enabled on FIFO reads (from transmit shift registers).
+ *  0b10..FIFO combine mode enabled on FIFO writes (by software).
+ *  0b11..FIFO combine mode enabled on FIFO reads (from transmit shift registers) and writes (by software).
+ */
+#define I2S_TCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FCOMB_SHIFT)) & I2S_TCR4_FCOMB_MASK)
+#define I2S_TCR4_FCONT_MASK                      (0x10000000U)
+#define I2S_TCR4_FCONT_SHIFT                     (28U)
+/*! FCONT - FIFO Continue on Error
+ *  0b0..On FIFO error, the SAI will continue from the start of the next frame after the FIFO error flag has been cleared.
+ *  0b1..On FIFO error, the SAI will continue from the same word that caused the FIFO error to set after the FIFO warning flag has been cleared.
+ */
+#define I2S_TCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_TCR4_FCONT_SHIFT)) & I2S_TCR4_FCONT_MASK)
+/*! @} */
+
+/*! @name TCR5 - SAI Transmit Configuration 5 Register */
+/*! @{ */
+#define I2S_TCR5_FBT_MASK                        (0x1F00U)
+#define I2S_TCR5_FBT_SHIFT                       (8U)
+#define I2S_TCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_FBT_SHIFT)) & I2S_TCR5_FBT_MASK)
+#define I2S_TCR5_W0W_MASK                        (0x1F0000U)
+#define I2S_TCR5_W0W_SHIFT                       (16U)
+#define I2S_TCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_W0W_SHIFT)) & I2S_TCR5_W0W_MASK)
+#define I2S_TCR5_WNW_MASK                        (0x1F000000U)
+#define I2S_TCR5_WNW_SHIFT                       (24U)
+#define I2S_TCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_TCR5_WNW_SHIFT)) & I2S_TCR5_WNW_MASK)
+/*! @} */
+
+/*! @name TDR - SAI Transmit Data Register */
+/*! @{ */
+#define I2S_TDR_TDR_MASK                         (0xFFFFFFFFU)
+#define I2S_TDR_TDR_SHIFT                        (0U)
+#define I2S_TDR_TDR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TDR_TDR_SHIFT)) & I2S_TDR_TDR_MASK)
+/*! @} */
+
+/* The count of I2S_TDR */
+#define I2S_TDR_COUNT                            (2U)
+
+/*! @name TFR - SAI Transmit FIFO Register */
+/*! @{ */
+#define I2S_TFR_RFP_MASK                         (0xFU)
+#define I2S_TFR_RFP_SHIFT                        (0U)
+#define I2S_TFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_RFP_SHIFT)) & I2S_TFR_RFP_MASK)
+#define I2S_TFR_WFP_MASK                         (0xF0000U)
+#define I2S_TFR_WFP_SHIFT                        (16U)
+#define I2S_TFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_WFP_SHIFT)) & I2S_TFR_WFP_MASK)
+#define I2S_TFR_WCP_MASK                         (0x80000000U)
+#define I2S_TFR_WCP_SHIFT                        (31U)
+/*! WCP - Write Channel Pointer
+ *  0b0..No effect.
+ *  0b1..FIFO combine is enabled for FIFO writes and this FIFO will be written on the next FIFO write.
+ */
+#define I2S_TFR_WCP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TFR_WCP_SHIFT)) & I2S_TFR_WCP_MASK)
+/*! @} */
+
+/* The count of I2S_TFR */
+#define I2S_TFR_COUNT                            (2U)
+
+/*! @name TMR - SAI Transmit Mask Register */
+/*! @{ */
+#define I2S_TMR_TWM_MASK                         (0xFFFFFFFFU)
+#define I2S_TMR_TWM_SHIFT                        (0U)
+/*! TWM - Transmit Word Mask
+ *  0b00000000000000000000000000000000..Word N is enabled.
+ *  0b00000000000000000000000000000001..Word N is masked. The transmit data pins are tri-stated or drive zero when masked.
+ */
+#define I2S_TMR_TWM(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_TMR_TWM_SHIFT)) & I2S_TMR_TWM_MASK)
+/*! @} */
+
+/*! @name RCSR - SAI Receive Control Register */
+/*! @{ */
+#define I2S_RCSR_FRDE_MASK                       (0x1U)
+#define I2S_RCSR_FRDE_SHIFT                      (0U)
+/*! FRDE - FIFO Request DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_RCSR_FRDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRDE_SHIFT)) & I2S_RCSR_FRDE_MASK)
+#define I2S_RCSR_FWDE_MASK                       (0x2U)
+#define I2S_RCSR_FWDE_SHIFT                      (1U)
+/*! FWDE - FIFO Warning DMA Enable
+ *  0b0..Disables the DMA request.
+ *  0b1..Enables the DMA request.
+ */
+#define I2S_RCSR_FWDE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWDE_SHIFT)) & I2S_RCSR_FWDE_MASK)
+#define I2S_RCSR_FRIE_MASK                       (0x100U)
+#define I2S_RCSR_FRIE_SHIFT                      (8U)
+/*! FRIE - FIFO Request Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FRIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRIE_SHIFT)) & I2S_RCSR_FRIE_MASK)
+#define I2S_RCSR_FWIE_MASK                       (0x200U)
+#define I2S_RCSR_FWIE_SHIFT                      (9U)
+/*! FWIE - FIFO Warning Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FWIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWIE_SHIFT)) & I2S_RCSR_FWIE_MASK)
+#define I2S_RCSR_FEIE_MASK                       (0x400U)
+#define I2S_RCSR_FEIE_SHIFT                      (10U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disables the interrupt.
+ *  0b1..Enables the interrupt.
+ */
+#define I2S_RCSR_FEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEIE_SHIFT)) & I2S_RCSR_FEIE_MASK)
+#define I2S_RCSR_SEIE_MASK                       (0x800U)
+#define I2S_RCSR_SEIE_SHIFT                      (11U)
+/*! SEIE - Sync Error Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_RCSR_SEIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEIE_SHIFT)) & I2S_RCSR_SEIE_MASK)
+#define I2S_RCSR_WSIE_MASK                       (0x1000U)
+#define I2S_RCSR_WSIE_SHIFT                      (12U)
+/*! WSIE - Word Start Interrupt Enable
+ *  0b0..Disables interrupt.
+ *  0b1..Enables interrupt.
+ */
+#define I2S_RCSR_WSIE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSIE_SHIFT)) & I2S_RCSR_WSIE_MASK)
+#define I2S_RCSR_FRF_MASK                        (0x10000U)
+#define I2S_RCSR_FRF_SHIFT                       (16U)
+/*! FRF - FIFO Request Flag
+ *  0b0..Receive FIFO watermark not reached.
+ *  0b1..Receive FIFO watermark has been reached.
+ */
+#define I2S_RCSR_FRF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FRF_SHIFT)) & I2S_RCSR_FRF_MASK)
+#define I2S_RCSR_FWF_MASK                        (0x20000U)
+#define I2S_RCSR_FWF_SHIFT                       (17U)
+/*! FWF - FIFO Warning Flag
+ *  0b0..No enabled receive FIFO is full.
+ *  0b1..Enabled receive FIFO is full.
+ */
+#define I2S_RCSR_FWF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FWF_SHIFT)) & I2S_RCSR_FWF_MASK)
+#define I2S_RCSR_FEF_MASK                        (0x40000U)
+#define I2S_RCSR_FEF_SHIFT                       (18U)
+/*! FEF - FIFO Error Flag
+ *  0b0..Receive overflow not detected.
+ *  0b1..Receive overflow detected.
+ */
+#define I2S_RCSR_FEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FEF_SHIFT)) & I2S_RCSR_FEF_MASK)
+#define I2S_RCSR_SEF_MASK                        (0x80000U)
+#define I2S_RCSR_SEF_SHIFT                       (19U)
+/*! SEF - Sync Error Flag
+ *  0b0..Sync error not detected.
+ *  0b1..Frame sync error detected.
+ */
+#define I2S_RCSR_SEF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SEF_SHIFT)) & I2S_RCSR_SEF_MASK)
+#define I2S_RCSR_WSF_MASK                        (0x100000U)
+#define I2S_RCSR_WSF_SHIFT                       (20U)
+/*! WSF - Word Start Flag
+ *  0b0..Start of word not detected.
+ *  0b1..Start of word detected.
+ */
+#define I2S_RCSR_WSF(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_WSF_SHIFT)) & I2S_RCSR_WSF_MASK)
+#define I2S_RCSR_SR_MASK                         (0x1000000U)
+#define I2S_RCSR_SR_SHIFT                        (24U)
+/*! SR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Software reset.
+ */
+#define I2S_RCSR_SR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_SR_SHIFT)) & I2S_RCSR_SR_MASK)
+#define I2S_RCSR_FR_MASK                         (0x2000000U)
+#define I2S_RCSR_FR_SHIFT                        (25U)
+/*! FR - FIFO Reset
+ *  0b0..No effect.
+ *  0b1..FIFO reset.
+ */
+#define I2S_RCSR_FR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_FR_SHIFT)) & I2S_RCSR_FR_MASK)
+#define I2S_RCSR_BCE_MASK                        (0x10000000U)
+#define I2S_RCSR_BCE_SHIFT                       (28U)
+/*! BCE - Bit Clock Enable
+ *  0b0..Receive bit clock is disabled.
+ *  0b1..Receive bit clock is enabled.
+ */
+#define I2S_RCSR_BCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_BCE_SHIFT)) & I2S_RCSR_BCE_MASK)
+#define I2S_RCSR_DBGE_MASK                       (0x20000000U)
+#define I2S_RCSR_DBGE_SHIFT                      (29U)
+/*! DBGE - Debug Enable
+ *  0b0..Receiver is disabled in Debug mode, after completing the current frame.
+ *  0b1..Receiver is enabled in Debug mode.
+ */
+#define I2S_RCSR_DBGE(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_DBGE_SHIFT)) & I2S_RCSR_DBGE_MASK)
+#define I2S_RCSR_STOPE_MASK                      (0x40000000U)
+#define I2S_RCSR_STOPE_SHIFT                     (30U)
+/*! STOPE - Stop Enable
+ *  0b0..Receiver disabled in Stop mode.
+ *  0b1..Receiver enabled in Stop mode.
+ */
+#define I2S_RCSR_STOPE(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_STOPE_SHIFT)) & I2S_RCSR_STOPE_MASK)
+#define I2S_RCSR_RE_MASK                         (0x80000000U)
+#define I2S_RCSR_RE_SHIFT                        (31U)
+/*! RE - Receiver Enable
+ *  0b0..Receiver is disabled.
+ *  0b1..Receiver is enabled, or receiver has been disabled and has not yet reached end of frame.
+ */
+#define I2S_RCSR_RE(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCSR_RE_SHIFT)) & I2S_RCSR_RE_MASK)
+/*! @} */
+
+/*! @name RCR1 - SAI Receive Configuration 1 Register */
+/*! @{ */
+#define I2S_RCR1_RFW_MASK                        (0x7U)
+#define I2S_RCR1_RFW_SHIFT                       (0U)
+#define I2S_RCR1_RFW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR1_RFW_SHIFT)) & I2S_RCR1_RFW_MASK)
+/*! @} */
+
+/*! @name RCR2 - SAI Receive Configuration 2 Register */
+/*! @{ */
+#define I2S_RCR2_DIV_MASK                        (0xFFU)
+#define I2S_RCR2_DIV_SHIFT                       (0U)
+#define I2S_RCR2_DIV(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_DIV_SHIFT)) & I2S_RCR2_DIV_MASK)
+#define I2S_RCR2_BCD_MASK                        (0x1000000U)
+#define I2S_RCR2_BCD_SHIFT                       (24U)
+/*! BCD - Bit Clock Direction
+ *  0b0..Bit clock is generated externally in Slave mode.
+ *  0b1..Bit clock is generated internally in Master mode.
+ */
+#define I2S_RCR2_BCD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCD_SHIFT)) & I2S_RCR2_BCD_MASK)
+#define I2S_RCR2_BCP_MASK                        (0x2000000U)
+#define I2S_RCR2_BCP_SHIFT                       (25U)
+/*! BCP - Bit Clock Polarity
+ *  0b0..Bit Clock is active high with drive outputs on rising edge and sample inputs on falling edge.
+ *  0b1..Bit Clock is active low with drive outputs on falling edge and sample inputs on rising edge.
+ */
+#define I2S_RCR2_BCP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCP_SHIFT)) & I2S_RCR2_BCP_MASK)
+#define I2S_RCR2_MSEL_MASK                       (0xC000000U)
+#define I2S_RCR2_MSEL_SHIFT                      (26U)
+/*! MSEL - MCLK Select
+ *  0b00..Bus Clock selected.
+ *  0b01..Master Clock (MCLK) 1 option selected.
+ *  0b10..Master Clock (MCLK) 2 option selected.
+ *  0b11..Master Clock (MCLK) 3 option selected.
+ */
+#define I2S_RCR2_MSEL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_MSEL_SHIFT)) & I2S_RCR2_MSEL_MASK)
+#define I2S_RCR2_BCI_MASK                        (0x10000000U)
+#define I2S_RCR2_BCI_SHIFT                       (28U)
+/*! BCI - Bit Clock Input
+ *  0b0..No effect.
+ *  0b1..Internal logic is clocked as if bit clock was externally generated.
+ */
+#define I2S_RCR2_BCI(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCI_SHIFT)) & I2S_RCR2_BCI_MASK)
+#define I2S_RCR2_BCS_MASK                        (0x20000000U)
+#define I2S_RCR2_BCS_SHIFT                       (29U)
+/*! BCS - Bit Clock Swap
+ *  0b0..Use the normal bit clock source.
+ *  0b1..Swap the bit clock source.
+ */
+#define I2S_RCR2_BCS(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_BCS_SHIFT)) & I2S_RCR2_BCS_MASK)
+#define I2S_RCR2_SYNC_MASK                       (0xC0000000U)
+#define I2S_RCR2_SYNC_SHIFT                      (30U)
+/*! SYNC - Synchronous Mode
+ *  0b00..Asynchronous mode.
+ *  0b01..Synchronous with transmitter.
+ *  0b10..Synchronous with another SAI receiver.
+ *  0b11..Synchronous with another SAI transmitter.
+ */
+#define I2S_RCR2_SYNC(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR2_SYNC_SHIFT)) & I2S_RCR2_SYNC_MASK)
+/*! @} */
+
+/*! @name RCR3 - SAI Receive Configuration 3 Register */
+/*! @{ */
+#define I2S_RCR3_WDFL_MASK                       (0x1FU)
+#define I2S_RCR3_WDFL_SHIFT                      (0U)
+#define I2S_RCR3_WDFL(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_WDFL_SHIFT)) & I2S_RCR3_WDFL_MASK)
+#define I2S_RCR3_RCE_MASK                        (0x30000U)
+#define I2S_RCR3_RCE_SHIFT                       (16U)
+#define I2S_RCR3_RCE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_RCE_SHIFT)) & I2S_RCR3_RCE_MASK)
+#define I2S_RCR3_CFR_MASK                        (0x3000000U)
+#define I2S_RCR3_CFR_SHIFT                       (24U)
+#define I2S_RCR3_CFR(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR3_CFR_SHIFT)) & I2S_RCR3_CFR_MASK)
+/*! @} */
+
+/*! @name RCR4 - SAI Receive Configuration 4 Register */
+/*! @{ */
+#define I2S_RCR4_FSD_MASK                        (0x1U)
+#define I2S_RCR4_FSD_SHIFT                       (0U)
+/*! FSD - Frame Sync Direction
+ *  0b0..Frame Sync is generated externally in Slave mode.
+ *  0b1..Frame Sync is generated internally in Master mode.
+ */
+#define I2S_RCR4_FSD(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSD_SHIFT)) & I2S_RCR4_FSD_MASK)
+#define I2S_RCR4_FSP_MASK                        (0x2U)
+#define I2S_RCR4_FSP_SHIFT                       (1U)
+/*! FSP - Frame Sync Polarity
+ *  0b0..Frame sync is active high.
+ *  0b1..Frame sync is active low.
+ */
+#define I2S_RCR4_FSP(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSP_SHIFT)) & I2S_RCR4_FSP_MASK)
+#define I2S_RCR4_ONDEM_MASK                      (0x4U)
+#define I2S_RCR4_ONDEM_SHIFT                     (2U)
+/*! ONDEM - On Demand Mode
+ *  0b0..Internal frame sync is generated continuously.
+ *  0b1..Internal frame sync is generated when the FIFO warning flag is clear.
+ */
+#define I2S_RCR4_ONDEM(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_ONDEM_SHIFT)) & I2S_RCR4_ONDEM_MASK)
+#define I2S_RCR4_FSE_MASK                        (0x8U)
+#define I2S_RCR4_FSE_SHIFT                       (3U)
+/*! FSE - Frame Sync Early
+ *  0b0..Frame sync asserts with the first bit of the frame.
+ *  0b1..Frame sync asserts one bit before the first bit of the frame.
+ */
+#define I2S_RCR4_FSE(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FSE_SHIFT)) & I2S_RCR4_FSE_MASK)
+#define I2S_RCR4_MF_MASK                         (0x10U)
+#define I2S_RCR4_MF_SHIFT                        (4U)
+/*! MF - MSB First
+ *  0b0..LSB is received first.
+ *  0b1..MSB is received first.
+ */
+#define I2S_RCR4_MF(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_MF_SHIFT)) & I2S_RCR4_MF_MASK)
+#define I2S_RCR4_SYWD_MASK                       (0x1F00U)
+#define I2S_RCR4_SYWD_SHIFT                      (8U)
+#define I2S_RCR4_SYWD(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_SYWD_SHIFT)) & I2S_RCR4_SYWD_MASK)
+#define I2S_RCR4_FRSZ_MASK                       (0x1F0000U)
+#define I2S_RCR4_FRSZ_SHIFT                      (16U)
+#define I2S_RCR4_FRSZ(x)                         (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FRSZ_SHIFT)) & I2S_RCR4_FRSZ_MASK)
+#define I2S_RCR4_FPACK_MASK                      (0x3000000U)
+#define I2S_RCR4_FPACK_SHIFT                     (24U)
+/*! FPACK - FIFO Packing Mode
+ *  0b00..FIFO packing is disabled
+ *  0b01..Reserved.
+ *  0b10..8-bit FIFO packing is enabled
+ *  0b11..16-bit FIFO packing is enabled
+ */
+#define I2S_RCR4_FPACK(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FPACK_SHIFT)) & I2S_RCR4_FPACK_MASK)
+#define I2S_RCR4_FCOMB_MASK                      (0xC000000U)
+#define I2S_RCR4_FCOMB_SHIFT                     (26U)
+/*! FCOMB - FIFO Combine Mode
+ *  0b00..FIFO combine mode disabled.
+ *  0b01..FIFO combine mode enabled on FIFO writes (from receive shift registers).
+ *  0b10..FIFO combine mode enabled on FIFO reads (by software).
+ *  0b11..FIFO combine mode enabled on FIFO writes (from receive shift registers) and reads (by software).
+ */
+#define I2S_RCR4_FCOMB(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FCOMB_SHIFT)) & I2S_RCR4_FCOMB_MASK)
+#define I2S_RCR4_FCONT_MASK                      (0x10000000U)
+#define I2S_RCR4_FCONT_SHIFT                     (28U)
+/*! FCONT - FIFO Continue on Error
+ *  0b0..On FIFO error, the SAI will continue from the start of the next frame after the FIFO error flag has been cleared.
+ *  0b1..On FIFO error, the SAI will continue from the same word that caused the FIFO error to set after the FIFO warning flag has been cleared.
+ */
+#define I2S_RCR4_FCONT(x)                        (((uint32_t)(((uint32_t)(x)) << I2S_RCR4_FCONT_SHIFT)) & I2S_RCR4_FCONT_MASK)
+/*! @} */
+
+/*! @name RCR5 - SAI Receive Configuration 5 Register */
+/*! @{ */
+#define I2S_RCR5_FBT_MASK                        (0x1F00U)
+#define I2S_RCR5_FBT_SHIFT                       (8U)
+#define I2S_RCR5_FBT(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_FBT_SHIFT)) & I2S_RCR5_FBT_MASK)
+#define I2S_RCR5_W0W_MASK                        (0x1F0000U)
+#define I2S_RCR5_W0W_SHIFT                       (16U)
+#define I2S_RCR5_W0W(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_W0W_SHIFT)) & I2S_RCR5_W0W_MASK)
+#define I2S_RCR5_WNW_MASK                        (0x1F000000U)
+#define I2S_RCR5_WNW_SHIFT                       (24U)
+#define I2S_RCR5_WNW(x)                          (((uint32_t)(((uint32_t)(x)) << I2S_RCR5_WNW_SHIFT)) & I2S_RCR5_WNW_MASK)
+/*! @} */
+
+/*! @name RDR - SAI Receive Data Register */
+/*! @{ */
+#define I2S_RDR_RDR_MASK                         (0xFFFFFFFFU)
+#define I2S_RDR_RDR_SHIFT                        (0U)
+#define I2S_RDR_RDR(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RDR_RDR_SHIFT)) & I2S_RDR_RDR_MASK)
+/*! @} */
+
+/* The count of I2S_RDR */
+#define I2S_RDR_COUNT                            (2U)
+
+/*! @name RFR - SAI Receive FIFO Register */
+/*! @{ */
+#define I2S_RFR_RFP_MASK                         (0xFU)
+#define I2S_RFR_RFP_SHIFT                        (0U)
+#define I2S_RFR_RFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_RFP_SHIFT)) & I2S_RFR_RFP_MASK)
+#define I2S_RFR_RCP_MASK                         (0x8000U)
+#define I2S_RFR_RCP_SHIFT                        (15U)
+/*! RCP - Receive Channel Pointer
+ *  0b0..No effect.
+ *  0b1..FIFO combine is enabled for FIFO reads and this FIFO will be read on the next FIFO read.
+ */
+#define I2S_RFR_RCP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_RCP_SHIFT)) & I2S_RFR_RCP_MASK)
+#define I2S_RFR_WFP_MASK                         (0xF0000U)
+#define I2S_RFR_WFP_SHIFT                        (16U)
+#define I2S_RFR_WFP(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RFR_WFP_SHIFT)) & I2S_RFR_WFP_MASK)
+/*! @} */
+
+/* The count of I2S_RFR */
+#define I2S_RFR_COUNT                            (2U)
+
+/*! @name RMR - SAI Receive Mask Register */
+/*! @{ */
+#define I2S_RMR_RWM_MASK                         (0xFFFFFFFFU)
+#define I2S_RMR_RWM_SHIFT                        (0U)
+/*! RWM - Receive Word Mask
+ *  0b00000000000000000000000000000000..Word N is enabled.
+ *  0b00000000000000000000000000000001..Word N is masked.
+ */
+#define I2S_RMR_RWM(x)                           (((uint32_t)(((uint32_t)(x)) << I2S_RMR_RWM_SHIFT)) & I2S_RMR_RWM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group I2S_Register_Masks */
+
+
+/* I2S - Peripheral instance base addresses */
+/** Peripheral I2S0 base address */
+#define I2S0_BASE                                (0x4003D000u)
+/** Peripheral I2S0 base pointer */
+#define I2S0                                     ((I2S_Type *)I2S0_BASE)
+/** Array initializer of I2S peripheral base addresses */
+#define I2S_BASE_ADDRS                           { I2S0_BASE }
+/** Array initializer of I2S peripheral base pointers */
+#define I2S_BASE_PTRS                            { I2S0 }
+/** Interrupt vectors for the I2S peripheral type */
+#define I2S_RX_IRQS                              { I2S0_IRQn }
+#define I2S_TX_IRQS                              { I2S0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group I2S_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- INTMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup INTMUX_Peripheral_Access_Layer INTMUX Peripheral Access Layer
+ * @{
+ */
+
+/** INTMUX - Register Layout Typedef */
+typedef struct {
+  struct {                                         /* offset: 0x0, array step: 0x40 */
+    __IO uint32_t CHn_CSR;                           /**< Channel n Control Status Register, array offset: 0x0, array step: 0x40 */
+    __I  uint32_t CHn_VEC;                           /**< Channel n Vector Number Register, array offset: 0x4, array step: 0x40 */
+         uint8_t RESERVED_0[8];
+    __IO uint32_t CHn_IER_31_0;                      /**< Channel n Interrupt Enable Register, array offset: 0x10, array step: 0x40 */
+         uint8_t RESERVED_1[12];
+    __I  uint32_t CHn_IPR_31_0;                      /**< Channel n Interrupt Pending Register, array offset: 0x20, array step: 0x40 */
+         uint8_t RESERVED_2[28];
+  } CHANNEL[8];
+} INTMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- INTMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup INTMUX_Register_Masks INTMUX Register Masks
+ * @{
+ */
+
+/*! @name CHn_CSR - Channel n Control Status Register */
+/*! @{ */
+#define INTMUX_CHn_CSR_RST_MASK                  (0x1U)
+#define INTMUX_CHn_CSR_RST_SHIFT                 (0U)
+/*! RST - Software Reset
+ *  0b0..No operation.
+ *  0b1..Perform a software reset on this channel.
+ */
+#define INTMUX_CHn_CSR_RST(x)                    (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_RST_SHIFT)) & INTMUX_CHn_CSR_RST_MASK)
+#define INTMUX_CHn_CSR_AND_MASK                  (0x2U)
+#define INTMUX_CHn_CSR_AND_SHIFT                 (1U)
+/*! AND - Logic AND
+ *  0b0..Logic OR all enabled interrupt inputs.
+ *  0b1..Logic AND all enabled interrupt inputs.
+ */
+#define INTMUX_CHn_CSR_AND(x)                    (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_AND_SHIFT)) & INTMUX_CHn_CSR_AND_MASK)
+#define INTMUX_CHn_CSR_IRQN_MASK                 (0x30U)
+#define INTMUX_CHn_CSR_IRQN_SHIFT                (4U)
+/*! IRQN - Channel Input Number
+ *  0b00..32 interrupt inputs
+ *  0b01..Reserved
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define INTMUX_CHn_CSR_IRQN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_IRQN_SHIFT)) & INTMUX_CHn_CSR_IRQN_MASK)
+#define INTMUX_CHn_CSR_CHIN_MASK                 (0xF00U)
+#define INTMUX_CHn_CSR_CHIN_SHIFT                (8U)
+#define INTMUX_CHn_CSR_CHIN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_CHIN_SHIFT)) & INTMUX_CHn_CSR_CHIN_MASK)
+#define INTMUX_CHn_CSR_IRQP_MASK                 (0x80000000U)
+#define INTMUX_CHn_CSR_IRQP_SHIFT                (31U)
+/*! IRQP - Channel Interrupt Request Pending
+ *  0b0..No interrupt is pending.
+ *  0b1..The interrupt output of this channel is pending.
+ */
+#define INTMUX_CHn_CSR_IRQP(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_CSR_IRQP_SHIFT)) & INTMUX_CHn_CSR_IRQP_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_CSR */
+#define INTMUX_CHn_CSR_COUNT                     (8U)
+
+/*! @name CHn_VEC - Channel n Vector Number Register */
+/*! @{ */
+#define INTMUX_CHn_VEC_VECN_MASK                 (0x3FFCU)
+#define INTMUX_CHn_VEC_VECN_SHIFT                (2U)
+#define INTMUX_CHn_VEC_VECN(x)                   (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_VEC_VECN_SHIFT)) & INTMUX_CHn_VEC_VECN_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_VEC */
+#define INTMUX_CHn_VEC_COUNT                     (8U)
+
+/*! @name CHn_IER_31_0 - Channel n Interrupt Enable Register */
+/*! @{ */
+#define INTMUX_CHn_IER_31_0_INTE_MASK            (0xFFFFFFFFU)
+#define INTMUX_CHn_IER_31_0_INTE_SHIFT           (0U)
+#define INTMUX_CHn_IER_31_0_INTE(x)              (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_IER_31_0_INTE_SHIFT)) & INTMUX_CHn_IER_31_0_INTE_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_IER_31_0 */
+#define INTMUX_CHn_IER_31_0_COUNT                (8U)
+
+/*! @name CHn_IPR_31_0 - Channel n Interrupt Pending Register */
+/*! @{ */
+#define INTMUX_CHn_IPR_31_0_INTP_MASK            (0xFFFFFFFFU)
+#define INTMUX_CHn_IPR_31_0_INTP_SHIFT           (0U)
+#define INTMUX_CHn_IPR_31_0_INTP(x)              (((uint32_t)(((uint32_t)(x)) << INTMUX_CHn_IPR_31_0_INTP_SHIFT)) & INTMUX_CHn_IPR_31_0_INTP_MASK)
+/*! @} */
+
+/* The count of INTMUX_CHn_IPR_31_0 */
+#define INTMUX_CHn_IPR_31_0_COUNT                (8U)
+
+
+/*!
+ * @}
+ */ /* end of group INTMUX_Register_Masks */
+
+
+/* INTMUX - Peripheral instance base addresses */
+/** Peripheral INTMUX1 base address */
+#define INTMUX1_BASE                             (0x41022000u)
+/** Peripheral INTMUX1 base pointer */
+#define INTMUX1                                  ((INTMUX_Type *)INTMUX1_BASE)
+/** Array initializer of INTMUX peripheral base addresses */
+#define INTMUX_BASE_ADDRS                        { 0u, INTMUX1_BASE }
+/** Array initializer of INTMUX peripheral base pointers */
+#define INTMUX_BASE_PTRS                         { (INTMUX_Type *)0u, INTMUX1 }
+/** Interrupt vectors for the INTMUX peripheral type */
+#define INTMUX_IRQS                              { { NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn, NotAvail_IRQn }, { INTMUX1_0_IRQn, INTMUX1_1_IRQn, INTMUX1_2_IRQn, INTMUX1_3_IRQn, INTMUX1_4_IRQn, INTMUX1_5_IRQn, INTMUX1_6_IRQn, INTMUX1_7_IRQn } }
+
+/*!
+ * @}
+ */ /* end of group INTMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LLWU Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LLWU_Peripheral_Access_Layer LLWU Peripheral Access Layer
+ * @{
+ */
+
+/** LLWU - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t PE1;                               /**< Pin Enable 1 register, offset: 0x8 */
+  __IO uint32_t PE2;                               /**< Pin Enable 2 register, offset: 0xC */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t ME;                                /**< Module Interrupt Enable register, offset: 0x18 */
+  __IO uint32_t DE;                                /**< Module DMA/Trigger Enable register, offset: 0x1C */
+  __IO uint32_t PF;                                /**< Pin Flag register, offset: 0x20 */
+       uint8_t RESERVED_1[12];
+  __IO uint32_t FILT;                              /**< Pin Filter register, offset: 0x30 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t PDC1;                              /**< Pin DMA/Trigger Configuration 1 register, offset: 0x38 */
+  __IO uint32_t PDC2;                              /**< Pin DMA/Trigger Configuration 2 register, offset: 0x3C */
+       uint8_t RESERVED_3[8];
+  __IO uint32_t FDC;                               /**< Pin Filter DMA/Trigger Configuration register, offset: 0x48 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t PMC;                               /**< Pin Mode Configuration register, offset: 0x50 */
+       uint8_t RESERVED_5[4];
+  __IO uint32_t FMC;                               /**< Pin Filter Mode Configuration register, offset: 0x58 */
+} LLWU_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LLWU Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LLWU_Register_Masks LLWU Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LLWU_VERID_FEATURE_MASK                  (0xFFFFU)
+#define LLWU_VERID_FEATURE_SHIFT                 (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented
+ *  0b0000000000000001..Support for DMA/Trigger generation from wakeup pins and filters enabled. Support for external pin/filter detection during all power modes enabled.
+ */
+#define LLWU_VERID_FEATURE(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_FEATURE_SHIFT)) & LLWU_VERID_FEATURE_MASK)
+#define LLWU_VERID_MINOR_MASK                    (0xFF0000U)
+#define LLWU_VERID_MINOR_SHIFT                   (16U)
+#define LLWU_VERID_MINOR(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_MINOR_SHIFT)) & LLWU_VERID_MINOR_MASK)
+#define LLWU_VERID_MAJOR_MASK                    (0xFF000000U)
+#define LLWU_VERID_MAJOR_SHIFT                   (24U)
+#define LLWU_VERID_MAJOR(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_VERID_MAJOR_SHIFT)) & LLWU_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LLWU_PARAM_FILTERS_MASK                  (0xFFU)
+#define LLWU_PARAM_FILTERS_SHIFT                 (0U)
+#define LLWU_PARAM_FILTERS(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_FILTERS_SHIFT)) & LLWU_PARAM_FILTERS_MASK)
+#define LLWU_PARAM_DMAS_MASK                     (0xFF00U)
+#define LLWU_PARAM_DMAS_SHIFT                    (8U)
+#define LLWU_PARAM_DMAS(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_DMAS_SHIFT)) & LLWU_PARAM_DMAS_MASK)
+#define LLWU_PARAM_MODULES_MASK                  (0xFF0000U)
+#define LLWU_PARAM_MODULES_SHIFT                 (16U)
+#define LLWU_PARAM_MODULES(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_MODULES_SHIFT)) & LLWU_PARAM_MODULES_MASK)
+#define LLWU_PARAM_PINS_MASK                     (0xFF000000U)
+#define LLWU_PARAM_PINS_SHIFT                    (24U)
+#define LLWU_PARAM_PINS(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PARAM_PINS_SHIFT)) & LLWU_PARAM_PINS_MASK)
+/*! @} */
+
+/*! @name PE1 - Pin Enable 1 register */
+/*! @{ */
+#define LLWU_PE1_WUPE0_MASK                      (0x3U)
+#define LLWU_PE1_WUPE0_SHIFT                     (0U)
+/*! WUPE0 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE0(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE0_SHIFT)) & LLWU_PE1_WUPE0_MASK)
+#define LLWU_PE1_WUPE1_MASK                      (0xCU)
+#define LLWU_PE1_WUPE1_SHIFT                     (2U)
+/*! WUPE1 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE1(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE1_SHIFT)) & LLWU_PE1_WUPE1_MASK)
+#define LLWU_PE1_WUPE2_MASK                      (0x30U)
+#define LLWU_PE1_WUPE2_SHIFT                     (4U)
+/*! WUPE2 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE2(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE2_SHIFT)) & LLWU_PE1_WUPE2_MASK)
+#define LLWU_PE1_WUPE3_MASK                      (0xC0U)
+#define LLWU_PE1_WUPE3_SHIFT                     (6U)
+/*! WUPE3 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE3(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE3_SHIFT)) & LLWU_PE1_WUPE3_MASK)
+#define LLWU_PE1_WUPE4_MASK                      (0x300U)
+#define LLWU_PE1_WUPE4_SHIFT                     (8U)
+/*! WUPE4 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE4(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE4_SHIFT)) & LLWU_PE1_WUPE4_MASK)
+#define LLWU_PE1_WUPE5_MASK                      (0xC00U)
+#define LLWU_PE1_WUPE5_SHIFT                     (10U)
+/*! WUPE5 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE5(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE5_SHIFT)) & LLWU_PE1_WUPE5_MASK)
+#define LLWU_PE1_WUPE6_MASK                      (0x3000U)
+#define LLWU_PE1_WUPE6_SHIFT                     (12U)
+/*! WUPE6 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE6(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE6_SHIFT)) & LLWU_PE1_WUPE6_MASK)
+#define LLWU_PE1_WUPE7_MASK                      (0xC000U)
+#define LLWU_PE1_WUPE7_SHIFT                     (14U)
+/*! WUPE7 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE7(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE7_SHIFT)) & LLWU_PE1_WUPE7_MASK)
+#define LLWU_PE1_WUPE8_MASK                      (0x30000U)
+#define LLWU_PE1_WUPE8_SHIFT                     (16U)
+/*! WUPE8 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE8(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE8_SHIFT)) & LLWU_PE1_WUPE8_MASK)
+#define LLWU_PE1_WUPE9_MASK                      (0xC0000U)
+#define LLWU_PE1_WUPE9_SHIFT                     (18U)
+/*! WUPE9 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE9(x)                        (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE9_SHIFT)) & LLWU_PE1_WUPE9_MASK)
+#define LLWU_PE1_WUPE10_MASK                     (0x300000U)
+#define LLWU_PE1_WUPE10_SHIFT                    (20U)
+/*! WUPE10 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE10(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE10_SHIFT)) & LLWU_PE1_WUPE10_MASK)
+#define LLWU_PE1_WUPE11_MASK                     (0xC00000U)
+#define LLWU_PE1_WUPE11_SHIFT                    (22U)
+/*! WUPE11 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE11(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE11_SHIFT)) & LLWU_PE1_WUPE11_MASK)
+#define LLWU_PE1_WUPE12_MASK                     (0x3000000U)
+#define LLWU_PE1_WUPE12_SHIFT                    (24U)
+/*! WUPE12 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE12(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE12_SHIFT)) & LLWU_PE1_WUPE12_MASK)
+#define LLWU_PE1_WUPE13_MASK                     (0xC000000U)
+#define LLWU_PE1_WUPE13_SHIFT                    (26U)
+/*! WUPE13 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE13(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE13_SHIFT)) & LLWU_PE1_WUPE13_MASK)
+#define LLWU_PE1_WUPE14_MASK                     (0x30000000U)
+#define LLWU_PE1_WUPE14_SHIFT                    (28U)
+/*! WUPE14 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE14(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE14_SHIFT)) & LLWU_PE1_WUPE14_MASK)
+#define LLWU_PE1_WUPE15_MASK                     (0xC0000000U)
+#define LLWU_PE1_WUPE15_SHIFT                    (30U)
+/*! WUPE15 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE1_WUPE15(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE1_WUPE15_SHIFT)) & LLWU_PE1_WUPE15_MASK)
+/*! @} */
+
+/*! @name PE2 - Pin Enable 2 register */
+/*! @{ */
+#define LLWU_PE2_WUPE16_MASK                     (0x3U)
+#define LLWU_PE2_WUPE16_SHIFT                    (0U)
+/*! WUPE16 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE16(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE16_SHIFT)) & LLWU_PE2_WUPE16_MASK)
+#define LLWU_PE2_WUPE17_MASK                     (0xCU)
+#define LLWU_PE2_WUPE17_SHIFT                    (2U)
+/*! WUPE17 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE17(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE17_SHIFT)) & LLWU_PE2_WUPE17_MASK)
+#define LLWU_PE2_WUPE18_MASK                     (0x30U)
+#define LLWU_PE2_WUPE18_SHIFT                    (4U)
+/*! WUPE18 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE18(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE18_SHIFT)) & LLWU_PE2_WUPE18_MASK)
+#define LLWU_PE2_WUPE19_MASK                     (0xC0U)
+#define LLWU_PE2_WUPE19_SHIFT                    (6U)
+/*! WUPE19 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE19(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE19_SHIFT)) & LLWU_PE2_WUPE19_MASK)
+#define LLWU_PE2_WUPE20_MASK                     (0x300U)
+#define LLWU_PE2_WUPE20_SHIFT                    (8U)
+/*! WUPE20 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE20(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE20_SHIFT)) & LLWU_PE2_WUPE20_MASK)
+#define LLWU_PE2_WUPE21_MASK                     (0xC00U)
+#define LLWU_PE2_WUPE21_SHIFT                    (10U)
+/*! WUPE21 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE21(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE21_SHIFT)) & LLWU_PE2_WUPE21_MASK)
+#define LLWU_PE2_WUPE22_MASK                     (0x3000U)
+#define LLWU_PE2_WUPE22_SHIFT                    (12U)
+/*! WUPE22 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE22(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE22_SHIFT)) & LLWU_PE2_WUPE22_MASK)
+#define LLWU_PE2_WUPE23_MASK                     (0xC000U)
+#define LLWU_PE2_WUPE23_SHIFT                    (14U)
+/*! WUPE23 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE23(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE23_SHIFT)) & LLWU_PE2_WUPE23_MASK)
+#define LLWU_PE2_WUPE24_MASK                     (0x30000U)
+#define LLWU_PE2_WUPE24_SHIFT                    (16U)
+/*! WUPE24 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE24(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE24_SHIFT)) & LLWU_PE2_WUPE24_MASK)
+#define LLWU_PE2_WUPE25_MASK                     (0xC0000U)
+#define LLWU_PE2_WUPE25_SHIFT                    (18U)
+/*! WUPE25 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE25(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE25_SHIFT)) & LLWU_PE2_WUPE25_MASK)
+#define LLWU_PE2_WUPE26_MASK                     (0x300000U)
+#define LLWU_PE2_WUPE26_SHIFT                    (20U)
+/*! WUPE26 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE26(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE26_SHIFT)) & LLWU_PE2_WUPE26_MASK)
+#define LLWU_PE2_Reserved27_MASK                 (0xC00000U)
+#define LLWU_PE2_Reserved27_SHIFT                (22U)
+/*! Reserved27 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_Reserved27(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_Reserved27_SHIFT)) & LLWU_PE2_Reserved27_MASK)
+#define LLWU_PE2_Reserved28_MASK                 (0x3000000U)
+#define LLWU_PE2_Reserved28_SHIFT                (24U)
+/*! Reserved28 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_Reserved28(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_Reserved28_SHIFT)) & LLWU_PE2_Reserved28_MASK)
+#define LLWU_PE2_WUPE29_MASK                     (0xC000000U)
+#define LLWU_PE2_WUPE29_SHIFT                    (26U)
+/*! WUPE29 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE29(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE29_SHIFT)) & LLWU_PE2_WUPE29_MASK)
+#define LLWU_PE2_WUPE30_MASK                     (0x30000000U)
+#define LLWU_PE2_WUPE30_SHIFT                    (28U)
+/*! WUPE30 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE30(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE30_SHIFT)) & LLWU_PE2_WUPE30_MASK)
+#define LLWU_PE2_WUPE31_MASK                     (0xC0000000U)
+#define LLWU_PE2_WUPE31_SHIFT                    (30U)
+/*! WUPE31 - Wakeup pin enable for LLWU_Pn
+ *  0b00..External input pin disabled as wakeup input
+ *  0b01..External input pin enabled with rising edge detection when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..External input pin enabled with falling edge detection when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..External input pin enabled with any change detection when configured as interrupt/DMA request
+ */
+#define LLWU_PE2_WUPE31(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PE2_WUPE31_SHIFT)) & LLWU_PE2_WUPE31_MASK)
+/*! @} */
+
+/*! @name ME - Module Interrupt Enable register */
+/*! @{ */
+#define LLWU_ME_WUME0_MASK                       (0x1U)
+#define LLWU_ME_WUME0_SHIFT                      (0U)
+/*! WUME0 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME0(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME0_SHIFT)) & LLWU_ME_WUME0_MASK)
+#define LLWU_ME_WUME1_MASK                       (0x2U)
+#define LLWU_ME_WUME1_SHIFT                      (1U)
+/*! WUME1 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME1(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME1_SHIFT)) & LLWU_ME_WUME1_MASK)
+#define LLWU_ME_WUME2_MASK                       (0x4U)
+#define LLWU_ME_WUME2_SHIFT                      (2U)
+/*! WUME2 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME2(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME2_SHIFT)) & LLWU_ME_WUME2_MASK)
+#define LLWU_ME_Reserved3_MASK                   (0x8U)
+#define LLWU_ME_Reserved3_SHIFT                  (3U)
+/*! Reserved3 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_Reserved3(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_ME_Reserved3_SHIFT)) & LLWU_ME_Reserved3_MASK)
+#define LLWU_ME_WUME3_MASK                       (0x8U)
+#define LLWU_ME_WUME3_SHIFT                      (3U)
+/*! WUME3 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME3(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME3_SHIFT)) & LLWU_ME_WUME3_MASK)
+#define LLWU_ME_Reserved4_MASK                   (0x10U)
+#define LLWU_ME_Reserved4_SHIFT                  (4U)
+/*! Reserved4 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_Reserved4(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_ME_Reserved4_SHIFT)) & LLWU_ME_Reserved4_MASK)
+#define LLWU_ME_WUME5_MASK                       (0x20U)
+#define LLWU_ME_WUME5_SHIFT                      (5U)
+/*! WUME5 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME5(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME5_SHIFT)) & LLWU_ME_WUME5_MASK)
+#define LLWU_ME_WUME6_MASK                       (0x40U)
+#define LLWU_ME_WUME6_SHIFT                      (6U)
+/*! WUME6 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME6(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME6_SHIFT)) & LLWU_ME_WUME6_MASK)
+#define LLWU_ME_WUME7_MASK                       (0x80U)
+#define LLWU_ME_WUME7_SHIFT                      (7U)
+/*! WUME7 - Wakeup module enable for module n
+ *  0b0..Internal module flag not used as wakeup source
+ *  0b1..Internal module flag used as wakeup source
+ */
+#define LLWU_ME_WUME7(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_ME_WUME7_SHIFT)) & LLWU_ME_WUME7_MASK)
+/*! @} */
+
+/*! @name DE - Module DMA/Trigger Enable register */
+/*! @{ */
+#define LLWU_DE_WUDE0_MASK                       (0x1U)
+#define LLWU_DE_WUDE0_SHIFT                      (0U)
+/*! WUDE0 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE0(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE0_SHIFT)) & LLWU_DE_WUDE0_MASK)
+#define LLWU_DE_WUDE1_MASK                       (0x2U)
+#define LLWU_DE_WUDE1_SHIFT                      (1U)
+/*! WUDE1 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE1(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE1_SHIFT)) & LLWU_DE_WUDE1_MASK)
+#define LLWU_DE_WUDE2_MASK                       (0x4U)
+#define LLWU_DE_WUDE2_SHIFT                      (2U)
+/*! WUDE2 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE2(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE2_SHIFT)) & LLWU_DE_WUDE2_MASK)
+#define LLWU_DE_Reserved3_MASK                   (0x8U)
+#define LLWU_DE_Reserved3_SHIFT                  (3U)
+/*! Reserved3 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_Reserved3(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_DE_Reserved3_SHIFT)) & LLWU_DE_Reserved3_MASK)
+#define LLWU_DE_WUDE4_MASK                       (0x10U)
+#define LLWU_DE_WUDE4_SHIFT                      (4U)
+/*! WUDE4 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE4(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE4_SHIFT)) & LLWU_DE_WUDE4_MASK)
+#define LLWU_DE_WUDE5_MASK                       (0x20U)
+#define LLWU_DE_WUDE5_SHIFT                      (5U)
+/*! WUDE5 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE5(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE5_SHIFT)) & LLWU_DE_WUDE5_MASK)
+#define LLWU_DE_WUDE6_MASK                       (0x40U)
+#define LLWU_DE_WUDE6_SHIFT                      (6U)
+/*! WUDE6 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_WUDE6(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_DE_WUDE6_SHIFT)) & LLWU_DE_WUDE6_MASK)
+#define LLWU_DE_Reserved7_MASK                   (0x80U)
+#define LLWU_DE_Reserved7_SHIFT                  (7U)
+/*! Reserved7 - DMA/Trigger wakeup enable for module n
+ *  0b0..Internal module request not enabled as a DMA/Trigger wakeup source
+ *  0b1..Internal module request enabled as a DMA/Trigger wakeup source
+ */
+#define LLWU_DE_Reserved7(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_DE_Reserved7_SHIFT)) & LLWU_DE_Reserved7_MASK)
+/*! @} */
+
+/*! @name PF - Pin Flag register */
+/*! @{ */
+#define LLWU_PF_WUF0_MASK                        (0x1U)
+#define LLWU_PF_WUF0_SHIFT                       (0U)
+/*! WUF0 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF0(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF0_SHIFT)) & LLWU_PF_WUF0_MASK)
+#define LLWU_PF_WUF1_MASK                        (0x2U)
+#define LLWU_PF_WUF1_SHIFT                       (1U)
+/*! WUF1 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF1(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF1_SHIFT)) & LLWU_PF_WUF1_MASK)
+#define LLWU_PF_WUF2_MASK                        (0x4U)
+#define LLWU_PF_WUF2_SHIFT                       (2U)
+/*! WUF2 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF2(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF2_SHIFT)) & LLWU_PF_WUF2_MASK)
+#define LLWU_PF_WUF3_MASK                        (0x8U)
+#define LLWU_PF_WUF3_SHIFT                       (3U)
+/*! WUF3 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF3(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF3_SHIFT)) & LLWU_PF_WUF3_MASK)
+#define LLWU_PF_WUF4_MASK                        (0x10U)
+#define LLWU_PF_WUF4_SHIFT                       (4U)
+/*! WUF4 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF4(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF4_SHIFT)) & LLWU_PF_WUF4_MASK)
+#define LLWU_PF_WUF5_MASK                        (0x20U)
+#define LLWU_PF_WUF5_SHIFT                       (5U)
+/*! WUF5 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF5(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF5_SHIFT)) & LLWU_PF_WUF5_MASK)
+#define LLWU_PF_WUF6_MASK                        (0x40U)
+#define LLWU_PF_WUF6_SHIFT                       (6U)
+/*! WUF6 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF6(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF6_SHIFT)) & LLWU_PF_WUF6_MASK)
+#define LLWU_PF_WUF7_MASK                        (0x80U)
+#define LLWU_PF_WUF7_SHIFT                       (7U)
+/*! WUF7 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF7(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF7_SHIFT)) & LLWU_PF_WUF7_MASK)
+#define LLWU_PF_WUF8_MASK                        (0x100U)
+#define LLWU_PF_WUF8_SHIFT                       (8U)
+/*! WUF8 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF8(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF8_SHIFT)) & LLWU_PF_WUF8_MASK)
+#define LLWU_PF_WUF9_MASK                        (0x200U)
+#define LLWU_PF_WUF9_SHIFT                       (9U)
+/*! WUF9 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF9(x)                          (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF9_SHIFT)) & LLWU_PF_WUF9_MASK)
+#define LLWU_PF_WUF10_MASK                       (0x400U)
+#define LLWU_PF_WUF10_SHIFT                      (10U)
+/*! WUF10 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF10(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF10_SHIFT)) & LLWU_PF_WUF10_MASK)
+#define LLWU_PF_WUF11_MASK                       (0x800U)
+#define LLWU_PF_WUF11_SHIFT                      (11U)
+/*! WUF11 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF11(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF11_SHIFT)) & LLWU_PF_WUF11_MASK)
+#define LLWU_PF_WUF12_MASK                       (0x1000U)
+#define LLWU_PF_WUF12_SHIFT                      (12U)
+/*! WUF12 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF12(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF12_SHIFT)) & LLWU_PF_WUF12_MASK)
+#define LLWU_PF_WUF13_MASK                       (0x2000U)
+#define LLWU_PF_WUF13_SHIFT                      (13U)
+/*! WUF13 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF13(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF13_SHIFT)) & LLWU_PF_WUF13_MASK)
+#define LLWU_PF_WUF14_MASK                       (0x4000U)
+#define LLWU_PF_WUF14_SHIFT                      (14U)
+/*! WUF14 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF14(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF14_SHIFT)) & LLWU_PF_WUF14_MASK)
+#define LLWU_PF_WUF15_MASK                       (0x8000U)
+#define LLWU_PF_WUF15_SHIFT                      (15U)
+/*! WUF15 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF15(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF15_SHIFT)) & LLWU_PF_WUF15_MASK)
+#define LLWU_PF_WUF16_MASK                       (0x10000U)
+#define LLWU_PF_WUF16_SHIFT                      (16U)
+/*! WUF16 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF16(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF16_SHIFT)) & LLWU_PF_WUF16_MASK)
+#define LLWU_PF_WUF17_MASK                       (0x20000U)
+#define LLWU_PF_WUF17_SHIFT                      (17U)
+/*! WUF17 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF17(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF17_SHIFT)) & LLWU_PF_WUF17_MASK)
+#define LLWU_PF_WUF18_MASK                       (0x40000U)
+#define LLWU_PF_WUF18_SHIFT                      (18U)
+/*! WUF18 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF18(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF18_SHIFT)) & LLWU_PF_WUF18_MASK)
+#define LLWU_PF_WUF19_MASK                       (0x80000U)
+#define LLWU_PF_WUF19_SHIFT                      (19U)
+/*! WUF19 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF19(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF19_SHIFT)) & LLWU_PF_WUF19_MASK)
+#define LLWU_PF_WUF20_MASK                       (0x100000U)
+#define LLWU_PF_WUF20_SHIFT                      (20U)
+/*! WUF20 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF20(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF20_SHIFT)) & LLWU_PF_WUF20_MASK)
+#define LLWU_PF_WUF21_MASK                       (0x200000U)
+#define LLWU_PF_WUF21_SHIFT                      (21U)
+/*! WUF21 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF21(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF21_SHIFT)) & LLWU_PF_WUF21_MASK)
+#define LLWU_PF_WUF22_MASK                       (0x400000U)
+#define LLWU_PF_WUF22_SHIFT                      (22U)
+/*! WUF22 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF22(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF22_SHIFT)) & LLWU_PF_WUF22_MASK)
+#define LLWU_PF_WUF23_MASK                       (0x800000U)
+#define LLWU_PF_WUF23_SHIFT                      (23U)
+/*! WUF23 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF23(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF23_SHIFT)) & LLWU_PF_WUF23_MASK)
+#define LLWU_PF_WUF24_MASK                       (0x1000000U)
+#define LLWU_PF_WUF24_SHIFT                      (24U)
+/*! WUF24 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF24(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF24_SHIFT)) & LLWU_PF_WUF24_MASK)
+#define LLWU_PF_WUF25_MASK                       (0x2000000U)
+#define LLWU_PF_WUF25_SHIFT                      (25U)
+/*! WUF25 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF25(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF25_SHIFT)) & LLWU_PF_WUF25_MASK)
+#define LLWU_PF_WUF26_MASK                       (0x4000000U)
+#define LLWU_PF_WUF26_SHIFT                      (26U)
+/*! WUF26 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF26(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF26_SHIFT)) & LLWU_PF_WUF26_MASK)
+#define LLWU_PF_Reserved27_MASK                  (0x8000000U)
+#define LLWU_PF_Reserved27_SHIFT                 (27U)
+/*! Reserved27 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_Reserved27(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PF_Reserved27_SHIFT)) & LLWU_PF_Reserved27_MASK)
+#define LLWU_PF_Reserved28_MASK                  (0x10000000U)
+#define LLWU_PF_Reserved28_SHIFT                 (28U)
+/*! Reserved28 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_Reserved28(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_PF_Reserved28_SHIFT)) & LLWU_PF_Reserved28_MASK)
+#define LLWU_PF_WUF29_MASK                       (0x20000000U)
+#define LLWU_PF_WUF29_SHIFT                      (29U)
+/*! WUF29 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF29(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF29_SHIFT)) & LLWU_PF_WUF29_MASK)
+#define LLWU_PF_WUF30_MASK                       (0x40000000U)
+#define LLWU_PF_WUF30_SHIFT                      (30U)
+/*! WUF30 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF30(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF30_SHIFT)) & LLWU_PF_WUF30_MASK)
+#define LLWU_PF_WUF31_MASK                       (0x80000000U)
+#define LLWU_PF_WUF31_SHIFT                      (31U)
+/*! WUF31 - Wakeup flag for LLWU_Pn
+ *  0b0..LLWU_Pn input was not a wakeup source
+ *  0b1..LLWU_Pn input was a wakeup source
+ */
+#define LLWU_PF_WUF31(x)                         (((uint32_t)(((uint32_t)(x)) << LLWU_PF_WUF31_SHIFT)) & LLWU_PF_WUF31_MASK)
+/*! @} */
+
+/*! @name FILT - Pin Filter register */
+/*! @{ */
+#define LLWU_FILT_FILTSEL1_MASK                  (0x1FU)
+#define LLWU_FILT_FILTSEL1_SHIFT                 (0U)
+/*! FILTSEL1 - Filter 1 Pin Select
+ *  0b00000..Select LLWU_P0 for filter
+ *  0b11111..Select LLWU_P31 for filter
+ */
+#define LLWU_FILT_FILTSEL1(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTSEL1_SHIFT)) & LLWU_FILT_FILTSEL1_MASK)
+#define LLWU_FILT_FILTE1_MASK                    (0x60U)
+#define LLWU_FILT_FILTE1_SHIFT                   (5U)
+/*! FILTE1 - Filter 1 Enable
+ *  0b00..Filter disabled
+ *  0b01..Filter posedge detect enabled when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..Filter negedge detect enabled when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..Filter any edge detect enabled when configured as interrupt/DMA request
+ */
+#define LLWU_FILT_FILTE1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTE1_SHIFT)) & LLWU_FILT_FILTE1_MASK)
+#define LLWU_FILT_FILTF1_MASK                    (0x80U)
+#define LLWU_FILT_FILTF1_SHIFT                   (7U)
+/*! FILTF1 - Filter 1 Flag
+ *  0b0..Pin Filter 1 was not a wakeup source
+ *  0b1..Pin Filter 1 was a wakeup source
+ */
+#define LLWU_FILT_FILTF1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTF1_SHIFT)) & LLWU_FILT_FILTF1_MASK)
+#define LLWU_FILT_FILTSEL2_MASK                  (0x1F00U)
+#define LLWU_FILT_FILTSEL2_SHIFT                 (8U)
+/*! FILTSEL2 - Filter 2 Pin Select
+ *  0b00000..Select LLWU_P0 for filter
+ *  0b11111..Select LLWU_P31 for filter
+ */
+#define LLWU_FILT_FILTSEL2(x)                    (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTSEL2_SHIFT)) & LLWU_FILT_FILTSEL2_MASK)
+#define LLWU_FILT_FILTE2_MASK                    (0x6000U)
+#define LLWU_FILT_FILTE2_SHIFT                   (13U)
+/*! FILTE2 - Filter 2 Enable
+ *  0b00..Filter disabled
+ *  0b01..Filter posedge detect enabled when configured as interrupt/DMA request or high level detection when configured as trigger request
+ *  0b10..Filter negedge detect enabled when configured as interrupt/DMA request or low level detection when configured as trigger request
+ *  0b11..Filter any edge detect enabled when configured as interrupt/DMA request
+ */
+#define LLWU_FILT_FILTE2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTE2_SHIFT)) & LLWU_FILT_FILTE2_MASK)
+#define LLWU_FILT_FILTF2_MASK                    (0x8000U)
+#define LLWU_FILT_FILTF2_SHIFT                   (15U)
+/*! FILTF2 - Filter 2 Flag
+ *  0b0..Pin Filter 2 was not a wakeup source
+ *  0b1..Pin Filter 2 was a wakeup source
+ */
+#define LLWU_FILT_FILTF2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_FILT_FILTF2_SHIFT)) & LLWU_FILT_FILTF2_MASK)
+/*! @} */
+
+/*! @name PDC1 - Pin DMA/Trigger Configuration 1 register */
+/*! @{ */
+#define LLWU_PDC1_WUPDC0_MASK                    (0x3U)
+#define LLWU_PDC1_WUPDC0_SHIFT                   (0U)
+/*! WUPDC0 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC0(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC0_SHIFT)) & LLWU_PDC1_WUPDC0_MASK)
+#define LLWU_PDC1_WUPDC1_MASK                    (0xCU)
+#define LLWU_PDC1_WUPDC1_SHIFT                   (2U)
+/*! WUPDC1 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC1(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC1_SHIFT)) & LLWU_PDC1_WUPDC1_MASK)
+#define LLWU_PDC1_WUPDC2_MASK                    (0x30U)
+#define LLWU_PDC1_WUPDC2_SHIFT                   (4U)
+/*! WUPDC2 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC2(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC2_SHIFT)) & LLWU_PDC1_WUPDC2_MASK)
+#define LLWU_PDC1_WUPDC3_MASK                    (0xC0U)
+#define LLWU_PDC1_WUPDC3_SHIFT                   (6U)
+/*! WUPDC3 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC3(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC3_SHIFT)) & LLWU_PDC1_WUPDC3_MASK)
+#define LLWU_PDC1_WUPDC4_MASK                    (0x300U)
+#define LLWU_PDC1_WUPDC4_SHIFT                   (8U)
+/*! WUPDC4 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC4(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC4_SHIFT)) & LLWU_PDC1_WUPDC4_MASK)
+#define LLWU_PDC1_WUPDC5_MASK                    (0xC00U)
+#define LLWU_PDC1_WUPDC5_SHIFT                   (10U)
+/*! WUPDC5 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC5(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC5_SHIFT)) & LLWU_PDC1_WUPDC5_MASK)
+#define LLWU_PDC1_WUPDC6_MASK                    (0x3000U)
+#define LLWU_PDC1_WUPDC6_SHIFT                   (12U)
+/*! WUPDC6 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC6(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC6_SHIFT)) & LLWU_PDC1_WUPDC6_MASK)
+#define LLWU_PDC1_WUPDC7_MASK                    (0xC000U)
+#define LLWU_PDC1_WUPDC7_SHIFT                   (14U)
+/*! WUPDC7 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC7(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC7_SHIFT)) & LLWU_PDC1_WUPDC7_MASK)
+#define LLWU_PDC1_WUPDC8_MASK                    (0x30000U)
+#define LLWU_PDC1_WUPDC8_SHIFT                   (16U)
+/*! WUPDC8 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC8(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC8_SHIFT)) & LLWU_PDC1_WUPDC8_MASK)
+#define LLWU_PDC1_WUPDC9_MASK                    (0xC0000U)
+#define LLWU_PDC1_WUPDC9_SHIFT                   (18U)
+/*! WUPDC9 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC9(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC9_SHIFT)) & LLWU_PDC1_WUPDC9_MASK)
+#define LLWU_PDC1_WUPDC10_MASK                   (0x300000U)
+#define LLWU_PDC1_WUPDC10_SHIFT                  (20U)
+/*! WUPDC10 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC10(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC10_SHIFT)) & LLWU_PDC1_WUPDC10_MASK)
+#define LLWU_PDC1_WUPDC11_MASK                   (0xC00000U)
+#define LLWU_PDC1_WUPDC11_SHIFT                  (22U)
+/*! WUPDC11 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC11(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC11_SHIFT)) & LLWU_PDC1_WUPDC11_MASK)
+#define LLWU_PDC1_WUPDC12_MASK                   (0x3000000U)
+#define LLWU_PDC1_WUPDC12_SHIFT                  (24U)
+/*! WUPDC12 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC12(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC12_SHIFT)) & LLWU_PDC1_WUPDC12_MASK)
+#define LLWU_PDC1_WUPDC13_MASK                   (0xC000000U)
+#define LLWU_PDC1_WUPDC13_SHIFT                  (26U)
+/*! WUPDC13 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC13(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC13_SHIFT)) & LLWU_PDC1_WUPDC13_MASK)
+#define LLWU_PDC1_WUPDC14_MASK                   (0x30000000U)
+#define LLWU_PDC1_WUPDC14_SHIFT                  (28U)
+/*! WUPDC14 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC14(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC14_SHIFT)) & LLWU_PDC1_WUPDC14_MASK)
+#define LLWU_PDC1_WUPDC15_MASK                   (0xC0000000U)
+#define LLWU_PDC1_WUPDC15_SHIFT                  (30U)
+/*! WUPDC15 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC1_WUPDC15(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC1_WUPDC15_SHIFT)) & LLWU_PDC1_WUPDC15_MASK)
+/*! @} */
+
+/*! @name PDC2 - Pin DMA/Trigger Configuration 2 register */
+/*! @{ */
+#define LLWU_PDC2_WUPDC16_MASK                   (0x3U)
+#define LLWU_PDC2_WUPDC16_SHIFT                  (0U)
+/*! WUPDC16 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC16(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC16_SHIFT)) & LLWU_PDC2_WUPDC16_MASK)
+#define LLWU_PDC2_WUPDC17_MASK                   (0xCU)
+#define LLWU_PDC2_WUPDC17_SHIFT                  (2U)
+/*! WUPDC17 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC17(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC17_SHIFT)) & LLWU_PDC2_WUPDC17_MASK)
+#define LLWU_PDC2_WUPDC18_MASK                   (0x30U)
+#define LLWU_PDC2_WUPDC18_SHIFT                  (4U)
+/*! WUPDC18 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC18(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC18_SHIFT)) & LLWU_PDC2_WUPDC18_MASK)
+#define LLWU_PDC2_WUPDC19_MASK                   (0xC0U)
+#define LLWU_PDC2_WUPDC19_SHIFT                  (6U)
+/*! WUPDC19 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC19(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC19_SHIFT)) & LLWU_PDC2_WUPDC19_MASK)
+#define LLWU_PDC2_WUPDC20_MASK                   (0x300U)
+#define LLWU_PDC2_WUPDC20_SHIFT                  (8U)
+/*! WUPDC20 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC20(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC20_SHIFT)) & LLWU_PDC2_WUPDC20_MASK)
+#define LLWU_PDC2_WUPDC21_MASK                   (0xC00U)
+#define LLWU_PDC2_WUPDC21_SHIFT                  (10U)
+/*! WUPDC21 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC21(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC21_SHIFT)) & LLWU_PDC2_WUPDC21_MASK)
+#define LLWU_PDC2_WUPDC22_MASK                   (0x3000U)
+#define LLWU_PDC2_WUPDC22_SHIFT                  (12U)
+/*! WUPDC22 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC22(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC22_SHIFT)) & LLWU_PDC2_WUPDC22_MASK)
+#define LLWU_PDC2_WUPDC23_MASK                   (0xC000U)
+#define LLWU_PDC2_WUPDC23_SHIFT                  (14U)
+/*! WUPDC23 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC23(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC23_SHIFT)) & LLWU_PDC2_WUPDC23_MASK)
+#define LLWU_PDC2_WUPDC24_MASK                   (0x30000U)
+#define LLWU_PDC2_WUPDC24_SHIFT                  (16U)
+/*! WUPDC24 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC24(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC24_SHIFT)) & LLWU_PDC2_WUPDC24_MASK)
+#define LLWU_PDC2_WUPDC25_MASK                   (0xC0000U)
+#define LLWU_PDC2_WUPDC25_SHIFT                  (18U)
+/*! WUPDC25 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC25(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC25_SHIFT)) & LLWU_PDC2_WUPDC25_MASK)
+#define LLWU_PDC2_WUPDC26_MASK                   (0x300000U)
+#define LLWU_PDC2_WUPDC26_SHIFT                  (20U)
+/*! WUPDC26 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC26(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC26_SHIFT)) & LLWU_PDC2_WUPDC26_MASK)
+#define LLWU_PDC2_Reserved27_MASK                (0xC00000U)
+#define LLWU_PDC2_Reserved27_SHIFT               (22U)
+/*! Reserved27 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_Reserved27(x)                  (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_Reserved27_SHIFT)) & LLWU_PDC2_Reserved27_MASK)
+#define LLWU_PDC2_Reserved28_MASK                (0x3000000U)
+#define LLWU_PDC2_Reserved28_SHIFT               (24U)
+/*! Reserved28 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_Reserved28(x)                  (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_Reserved28_SHIFT)) & LLWU_PDC2_Reserved28_MASK)
+#define LLWU_PDC2_WUPDC29_MASK                   (0xC000000U)
+#define LLWU_PDC2_WUPDC29_SHIFT                  (26U)
+/*! WUPDC29 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC29(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC29_SHIFT)) & LLWU_PDC2_WUPDC29_MASK)
+#define LLWU_PDC2_WUPDC30_MASK                   (0x30000000U)
+#define LLWU_PDC2_WUPDC30_SHIFT                  (28U)
+/*! WUPDC30 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC30(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC30_SHIFT)) & LLWU_PDC2_WUPDC30_MASK)
+#define LLWU_PDC2_WUPDC31_MASK                   (0xC0000000U)
+#define LLWU_PDC2_WUPDC31_SHIFT                  (30U)
+/*! WUPDC31 - Wakeup pin configuration for LLWU_Pn
+ *  0b00..External input pin configured as interrupt
+ *  0b01..External input pin configured as DMA request
+ *  0b10..External input pin configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_PDC2_WUPDC31(x)                     (((uint32_t)(((uint32_t)(x)) << LLWU_PDC2_WUPDC31_SHIFT)) & LLWU_PDC2_WUPDC31_MASK)
+/*! @} */
+
+/*! @name FDC - Pin Filter DMA/Trigger Configuration register */
+/*! @{ */
+#define LLWU_FDC_FILTC1_MASK                     (0x3U)
+#define LLWU_FDC_FILTC1_SHIFT                    (0U)
+/*! FILTC1 - Filter configuration for FILT1
+ *  0b00..Filter output configured as interrupt
+ *  0b01..Filter output configured as DMA request
+ *  0b10..Filter output configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_FDC_FILTC1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FDC_FILTC1_SHIFT)) & LLWU_FDC_FILTC1_MASK)
+#define LLWU_FDC_FILTC2_MASK                     (0xCU)
+#define LLWU_FDC_FILTC2_SHIFT                    (2U)
+/*! FILTC2 - Filter configuration for FILT2
+ *  0b00..Filter output configured as interrupt
+ *  0b01..Filter output configured as DMA request
+ *  0b10..Filter output configured as trigger event
+ *  0b11..Reserved
+ */
+#define LLWU_FDC_FILTC2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FDC_FILTC2_SHIFT)) & LLWU_FDC_FILTC2_MASK)
+/*! @} */
+
+/*! @name PMC - Pin Mode Configuration register */
+/*! @{ */
+#define LLWU_PMC_WUPMC0_MASK                     (0x1U)
+#define LLWU_PMC_WUPMC0_SHIFT                    (0U)
+/*! WUPMC0 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC0(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC0_SHIFT)) & LLWU_PMC_WUPMC0_MASK)
+#define LLWU_PMC_WUPMC1_MASK                     (0x2U)
+#define LLWU_PMC_WUPMC1_SHIFT                    (1U)
+/*! WUPMC1 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC1_SHIFT)) & LLWU_PMC_WUPMC1_MASK)
+#define LLWU_PMC_WUPMC2_MASK                     (0x4U)
+#define LLWU_PMC_WUPMC2_SHIFT                    (2U)
+/*! WUPMC2 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC2_SHIFT)) & LLWU_PMC_WUPMC2_MASK)
+#define LLWU_PMC_WUPMC3_MASK                     (0x8U)
+#define LLWU_PMC_WUPMC3_SHIFT                    (3U)
+/*! WUPMC3 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC3(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC3_SHIFT)) & LLWU_PMC_WUPMC3_MASK)
+#define LLWU_PMC_WUPMC4_MASK                     (0x10U)
+#define LLWU_PMC_WUPMC4_SHIFT                    (4U)
+/*! WUPMC4 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC4(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC4_SHIFT)) & LLWU_PMC_WUPMC4_MASK)
+#define LLWU_PMC_WUPMC5_MASK                     (0x20U)
+#define LLWU_PMC_WUPMC5_SHIFT                    (5U)
+/*! WUPMC5 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC5(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC5_SHIFT)) & LLWU_PMC_WUPMC5_MASK)
+#define LLWU_PMC_WUPMC6_MASK                     (0x40U)
+#define LLWU_PMC_WUPMC6_SHIFT                    (6U)
+/*! WUPMC6 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC6(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC6_SHIFT)) & LLWU_PMC_WUPMC6_MASK)
+#define LLWU_PMC_WUPMC7_MASK                     (0x80U)
+#define LLWU_PMC_WUPMC7_SHIFT                    (7U)
+/*! WUPMC7 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC7(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC7_SHIFT)) & LLWU_PMC_WUPMC7_MASK)
+#define LLWU_PMC_WUPMC8_MASK                     (0x100U)
+#define LLWU_PMC_WUPMC8_SHIFT                    (8U)
+/*! WUPMC8 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC8(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC8_SHIFT)) & LLWU_PMC_WUPMC8_MASK)
+#define LLWU_PMC_WUPMC9_MASK                     (0x200U)
+#define LLWU_PMC_WUPMC9_SHIFT                    (9U)
+/*! WUPMC9 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC9(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC9_SHIFT)) & LLWU_PMC_WUPMC9_MASK)
+#define LLWU_PMC_WUPMC10_MASK                    (0x400U)
+#define LLWU_PMC_WUPMC10_SHIFT                   (10U)
+/*! WUPMC10 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC10(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC10_SHIFT)) & LLWU_PMC_WUPMC10_MASK)
+#define LLWU_PMC_WUPMC11_MASK                    (0x800U)
+#define LLWU_PMC_WUPMC11_SHIFT                   (11U)
+/*! WUPMC11 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC11(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC11_SHIFT)) & LLWU_PMC_WUPMC11_MASK)
+#define LLWU_PMC_WUPMC12_MASK                    (0x1000U)
+#define LLWU_PMC_WUPMC12_SHIFT                   (12U)
+/*! WUPMC12 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC12(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC12_SHIFT)) & LLWU_PMC_WUPMC12_MASK)
+#define LLWU_PMC_WUPMC13_MASK                    (0x2000U)
+#define LLWU_PMC_WUPMC13_SHIFT                   (13U)
+/*! WUPMC13 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC13(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC13_SHIFT)) & LLWU_PMC_WUPMC13_MASK)
+#define LLWU_PMC_WUPMC14_MASK                    (0x4000U)
+#define LLWU_PMC_WUPMC14_SHIFT                   (14U)
+/*! WUPMC14 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC14(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC14_SHIFT)) & LLWU_PMC_WUPMC14_MASK)
+#define LLWU_PMC_WUPMC15_MASK                    (0x8000U)
+#define LLWU_PMC_WUPMC15_SHIFT                   (15U)
+/*! WUPMC15 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC15(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC15_SHIFT)) & LLWU_PMC_WUPMC15_MASK)
+#define LLWU_PMC_WUPMC16_MASK                    (0x10000U)
+#define LLWU_PMC_WUPMC16_SHIFT                   (16U)
+/*! WUPMC16 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC16(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC16_SHIFT)) & LLWU_PMC_WUPMC16_MASK)
+#define LLWU_PMC_WUPMC17_MASK                    (0x20000U)
+#define LLWU_PMC_WUPMC17_SHIFT                   (17U)
+/*! WUPMC17 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC17(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC17_SHIFT)) & LLWU_PMC_WUPMC17_MASK)
+#define LLWU_PMC_WUPMC18_MASK                    (0x40000U)
+#define LLWU_PMC_WUPMC18_SHIFT                   (18U)
+/*! WUPMC18 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC18(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC18_SHIFT)) & LLWU_PMC_WUPMC18_MASK)
+#define LLWU_PMC_WUPMC19_MASK                    (0x80000U)
+#define LLWU_PMC_WUPMC19_SHIFT                   (19U)
+/*! WUPMC19 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC19(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC19_SHIFT)) & LLWU_PMC_WUPMC19_MASK)
+#define LLWU_PMC_WUPMC20_MASK                    (0x100000U)
+#define LLWU_PMC_WUPMC20_SHIFT                   (20U)
+/*! WUPMC20 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC20(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC20_SHIFT)) & LLWU_PMC_WUPMC20_MASK)
+#define LLWU_PMC_WUPMC21_MASK                    (0x200000U)
+#define LLWU_PMC_WUPMC21_SHIFT                   (21U)
+/*! WUPMC21 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC21(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC21_SHIFT)) & LLWU_PMC_WUPMC21_MASK)
+#define LLWU_PMC_WUPMC22_MASK                    (0x400000U)
+#define LLWU_PMC_WUPMC22_SHIFT                   (22U)
+/*! WUPMC22 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC22(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC22_SHIFT)) & LLWU_PMC_WUPMC22_MASK)
+#define LLWU_PMC_WUPMC23_MASK                    (0x800000U)
+#define LLWU_PMC_WUPMC23_SHIFT                   (23U)
+/*! WUPMC23 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC23(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC23_SHIFT)) & LLWU_PMC_WUPMC23_MASK)
+#define LLWU_PMC_WUPMC24_MASK                    (0x1000000U)
+#define LLWU_PMC_WUPMC24_SHIFT                   (24U)
+/*! WUPMC24 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC24(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC24_SHIFT)) & LLWU_PMC_WUPMC24_MASK)
+#define LLWU_PMC_WUPMC25_MASK                    (0x2000000U)
+#define LLWU_PMC_WUPMC25_SHIFT                   (25U)
+/*! WUPMC25 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC25(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC25_SHIFT)) & LLWU_PMC_WUPMC25_MASK)
+#define LLWU_PMC_WUPMC26_MASK                    (0x4000000U)
+#define LLWU_PMC_WUPMC26_SHIFT                   (26U)
+/*! WUPMC26 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC26(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC26_SHIFT)) & LLWU_PMC_WUPMC26_MASK)
+#define LLWU_PMC_Reserved27_MASK                 (0x8000000U)
+#define LLWU_PMC_Reserved27_SHIFT                (27U)
+/*! Reserved27 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_Reserved27(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_Reserved27_SHIFT)) & LLWU_PMC_Reserved27_MASK)
+#define LLWU_PMC_Reserved28_MASK                 (0x10000000U)
+#define LLWU_PMC_Reserved28_SHIFT                (28U)
+/*! Reserved28 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_Reserved28(x)                   (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_Reserved28_SHIFT)) & LLWU_PMC_Reserved28_MASK)
+#define LLWU_PMC_WUPMC29_MASK                    (0x20000000U)
+#define LLWU_PMC_WUPMC29_SHIFT                   (29U)
+/*! WUPMC29 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC29(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC29_SHIFT)) & LLWU_PMC_WUPMC29_MASK)
+#define LLWU_PMC_WUPMC30_MASK                    (0x40000000U)
+#define LLWU_PMC_WUPMC30_SHIFT                   (30U)
+/*! WUPMC30 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC30(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC30_SHIFT)) & LLWU_PMC_WUPMC30_MASK)
+#define LLWU_PMC_WUPMC31_MASK                    (0x80000000U)
+#define LLWU_PMC_WUPMC31_SHIFT                   (31U)
+/*! WUPMC31 - Wakeup pin mode for LLWU_Pn
+ *  0b0..External input pin detection active only during LLS/VLLS mode
+ *  0b1..External input pin detection active during all power modes
+ */
+#define LLWU_PMC_WUPMC31(x)                      (((uint32_t)(((uint32_t)(x)) << LLWU_PMC_WUPMC31_SHIFT)) & LLWU_PMC_WUPMC31_MASK)
+/*! @} */
+
+/*! @name FMC - Pin Filter Mode Configuration register */
+/*! @{ */
+#define LLWU_FMC_FILTM1_MASK                     (0x1U)
+#define LLWU_FMC_FILTM1_SHIFT                    (0U)
+/*! FILTM1 - Filter Mode for FILT1
+ *  0b0..External input pin filter detection active only during LLS/VLLS mode
+ *  0b1..External input pin filter detection active during all power modes
+ */
+#define LLWU_FMC_FILTM1(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FMC_FILTM1_SHIFT)) & LLWU_FMC_FILTM1_MASK)
+#define LLWU_FMC_FILTM2_MASK                     (0x2U)
+#define LLWU_FMC_FILTM2_SHIFT                    (1U)
+/*! FILTM2 - Filter Mode for FILT2
+ *  0b0..External input pin filter detection active only during LLS/VLLS mode
+ *  0b1..External input pin filter detection active during all power modes
+ */
+#define LLWU_FMC_FILTM2(x)                       (((uint32_t)(((uint32_t)(x)) << LLWU_FMC_FILTM2_SHIFT)) & LLWU_FMC_FILTM2_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LLWU_Register_Masks */
+
+
+/* LLWU - Peripheral instance base addresses */
+/** Peripheral LLWU0 base address */
+#define LLWU0_BASE                               (0x40024000u)
+/** Peripheral LLWU0 base pointer */
+#define LLWU0                                    ((LLWU_Type *)LLWU0_BASE)
+/** Peripheral LLWU1 base address */
+#define LLWU1_BASE                               (0x41023000u)
+/** Peripheral LLWU1 base pointer */
+#define LLWU1                                    ((LLWU_Type *)LLWU1_BASE)
+/** Array initializer of LLWU peripheral base addresses */
+#define LLWU_BASE_ADDRS                          { LLWU0_BASE, LLWU1_BASE }
+/** Array initializer of LLWU peripheral base pointers */
+#define LLWU_BASE_PTRS                           { LLWU0, LLWU1 }
+/** Interrupt vectors for the LLWU peripheral type */
+#define LLWU_IRQS                                { NotAvail_IRQn, LLWU1_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LLWU_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPCMP Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPCMP_Peripheral_Access_Layer LPCMP Peripheral Access Layer
+ * @{
+ */
+
+/** LPCMP - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t CCR0;                              /**< Comparator Control Register 0, offset: 0x8 */
+  __IO uint32_t CCR1;                              /**< Comparator Control Register 1, offset: 0xC */
+  __IO uint32_t CCR2;                              /**< Comparator Control Register 2, offset: 0x10 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t DCR;                               /**< DAC Control Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< Interrupt Enable Register, offset: 0x1C */
+  __IO uint32_t CSR;                               /**< Comparator Status Register, offset: 0x20 */
+} LPCMP_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPCMP Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPCMP_Register_Masks LPCMP Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPCMP_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPCMP_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000001..Round robin feature
+ */
+#define LPCMP_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_FEATURE_SHIFT)) & LPCMP_VERID_FEATURE_MASK)
+#define LPCMP_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPCMP_VERID_MINOR_SHIFT                  (16U)
+#define LPCMP_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_MINOR_SHIFT)) & LPCMP_VERID_MINOR_MASK)
+#define LPCMP_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPCMP_VERID_MAJOR_SHIFT                  (24U)
+#define LPCMP_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_VERID_MAJOR_SHIFT)) & LPCMP_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPCMP_PARAM_DAC_RES_MASK                 (0xFU)
+#define LPCMP_PARAM_DAC_RES_SHIFT                (0U)
+/*! DAC_RES - DAC resolution
+ *  0b0000..4 bit DAC
+ *  0b0001..6 bit DAC
+ *  0b0010..8 bit DAC
+ *  0b0011..10 bit DAC
+ *  0b0100..12 bit DAC
+ *  0b0101..14 bit DAC
+ *  0b0110..16 bit DAC
+ */
+#define LPCMP_PARAM_DAC_RES(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_PARAM_DAC_RES_SHIFT)) & LPCMP_PARAM_DAC_RES_MASK)
+/*! @} */
+
+/*! @name CCR0 - Comparator Control Register 0 */
+/*! @{ */
+#define LPCMP_CCR0_CMP_EN_MASK                   (0x1U)
+#define LPCMP_CCR0_CMP_EN_SHIFT                  (0U)
+/*! CMP_EN - Comparator Module Enable
+ *  0b0..Analog Comparator is disabled.
+ *  0b1..Analog Comparator is enabled.
+ */
+#define LPCMP_CCR0_CMP_EN(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR0_CMP_EN_SHIFT)) & LPCMP_CCR0_CMP_EN_MASK)
+#define LPCMP_CCR0_CMP_STOP_EN_MASK              (0x2U)
+#define LPCMP_CCR0_CMP_STOP_EN_SHIFT             (1U)
+/*! CMP_STOP_EN - Comparator Module STOP Mode Enable
+ *  0b0..Comparator is disabled in STOP modes regardless of CMP_EN.
+ *  0b1..Comparator is enabled in STOP mode if CMP_EN is active
+ */
+#define LPCMP_CCR0_CMP_STOP_EN(x)                (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR0_CMP_STOP_EN_SHIFT)) & LPCMP_CCR0_CMP_STOP_EN_MASK)
+/*! @} */
+
+/*! @name CCR1 - Comparator Control Register 1 */
+/*! @{ */
+#define LPCMP_CCR1_WINDOW_EN_MASK                (0x1U)
+#define LPCMP_CCR1_WINDOW_EN_SHIFT               (0U)
+/*! WINDOW_EN - Windowing Enable
+ *  0b0..Windowing mode is not selected.
+ *  0b1..Windowing mode is selected.
+ */
+#define LPCMP_CCR1_WINDOW_EN(x)                  (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_WINDOW_EN_SHIFT)) & LPCMP_CCR1_WINDOW_EN_MASK)
+#define LPCMP_CCR1_SAMPLE_EN_MASK                (0x2U)
+#define LPCMP_CCR1_SAMPLE_EN_SHIFT               (1U)
+/*! SAMPLE_EN - Sample Enable
+ *  0b0..Sampling mode is not selected.
+ *  0b1..Sampling mode is selected.
+ */
+#define LPCMP_CCR1_SAMPLE_EN(x)                  (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_SAMPLE_EN_SHIFT)) & LPCMP_CCR1_SAMPLE_EN_MASK)
+#define LPCMP_CCR1_DMA_EN_MASK                   (0x4U)
+#define LPCMP_CCR1_DMA_EN_SHIFT                  (2U)
+/*! DMA_EN - DMA Enable
+ *  0b0..DMA is disabled.
+ *  0b1..DMA is enabled.
+ */
+#define LPCMP_CCR1_DMA_EN(x)                     (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_DMA_EN_SHIFT)) & LPCMP_CCR1_DMA_EN_MASK)
+#define LPCMP_CCR1_COUT_INV_MASK                 (0x8U)
+#define LPCMP_CCR1_COUT_INV_SHIFT                (3U)
+/*! COUT_INV - Comparator invert
+ *  0b0..Does not invert the comparator output.
+ *  0b1..Inverts the comparator output.
+ */
+#define LPCMP_CCR1_COUT_INV(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_INV_SHIFT)) & LPCMP_CCR1_COUT_INV_MASK)
+#define LPCMP_CCR1_COUT_SEL_MASK                 (0x10U)
+#define LPCMP_CCR1_COUT_SEL_SHIFT                (4U)
+/*! COUT_SEL - Comparator Output Select
+ *  0b0..Set CMPO to equal COUT (filtered comparator output).
+ *  0b1..Set CMPO to equal COUTA (unfiltered comparator output).
+ */
+#define LPCMP_CCR1_COUT_SEL(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_SEL_SHIFT)) & LPCMP_CCR1_COUT_SEL_MASK)
+#define LPCMP_CCR1_COUT_PEN_MASK                 (0x20U)
+#define LPCMP_CCR1_COUT_PEN_SHIFT                (5U)
+/*! COUT_PEN - Comparator Output Pin Enable
+ *  0b0..When COUT_PEN is 0, the comparator output (after window/filter settings dependent on software configuration) is not available to a packaged pin.
+ *  0b1..When COUT_PEN is 1, and if the software has configured the comparator to own a packaged pin, the comparator output is available in a packaged pin.
+ */
+#define LPCMP_CCR1_COUT_PEN(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_COUT_PEN_SHIFT)) & LPCMP_CCR1_COUT_PEN_MASK)
+#define LPCMP_CCR1_FILT_CNT_MASK                 (0x70000U)
+#define LPCMP_CCR1_FILT_CNT_SHIFT                (16U)
+/*! FILT_CNT - Filter Sample Count
+ *  0b000..Filter is disabled. If SAMPLE_EN = 1, then COUT is a logic zero (this is not a legal state in , and is not recommended). If SAMPLE_EN = 0, COUT = COUTA.
+ *  0b001..1 consecutive sample must agree (comparator output is simply sampled).
+ *  0b010..2 consecutive samples must agree.
+ *  0b011..3 consecutive samples must agree.
+ *  0b100..4 consecutive samples must agree.
+ *  0b101..5 consecutive samples must agree.
+ *  0b110..6 consecutive samples must agree.
+ *  0b111..7 consecutive samples must agree.
+ */
+#define LPCMP_CCR1_FILT_CNT(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_FILT_CNT_SHIFT)) & LPCMP_CCR1_FILT_CNT_MASK)
+#define LPCMP_CCR1_FILT_PER_MASK                 (0xFF000000U)
+#define LPCMP_CCR1_FILT_PER_SHIFT                (24U)
+#define LPCMP_CCR1_FILT_PER(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR1_FILT_PER_SHIFT)) & LPCMP_CCR1_FILT_PER_MASK)
+/*! @} */
+
+/*! @name CCR2 - Comparator Control Register 2 */
+/*! @{ */
+#define LPCMP_CCR2_CMP_HPMD_MASK                 (0x1U)
+#define LPCMP_CCR2_CMP_HPMD_SHIFT                (0U)
+/*! CMP_HPMD - CMP High Power Mode Select
+ *  0b0..Low speed comparison mode is selected.(when CMP_NPMD is 0)
+ *  0b1..High speed comparison mode is selected.(when CMP_NPMD is 0)
+ */
+#define LPCMP_CCR2_CMP_HPMD(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_CMP_HPMD_SHIFT)) & LPCMP_CCR2_CMP_HPMD_MASK)
+#define LPCMP_CCR2_CMP_NPMD_MASK                 (0x2U)
+#define LPCMP_CCR2_CMP_NPMD_SHIFT                (1U)
+/*! CMP_NPMD - CMP Nano Power Mode Select
+ *  0b0..Nano Power Comparator is not enabled (mode is determined by CMP_HPMD)
+ *  0b1..Nano Power Comparator is enabled
+ */
+#define LPCMP_CCR2_CMP_NPMD(x)                   (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_CMP_NPMD_SHIFT)) & LPCMP_CCR2_CMP_NPMD_MASK)
+#define LPCMP_CCR2_HYSTCTR_MASK                  (0x30U)
+#define LPCMP_CCR2_HYSTCTR_SHIFT                 (4U)
+/*! HYSTCTR - Comparator hard block hysteresis control. See chip data sheet to get the actual hystersis value with each level
+ *  0b00..The hard block output has level 0 hysteresis internally.
+ *  0b01..The hard block output has level 1 hysteresis internally.
+ *  0b10..The hard block output has level 2 hysteresis internally.
+ *  0b11..The hard block output has level 3 hysteresis internally.
+ */
+#define LPCMP_CCR2_HYSTCTR(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_HYSTCTR_SHIFT)) & LPCMP_CCR2_HYSTCTR_MASK)
+#define LPCMP_CCR2_PSEL_MASK                     (0x70000U)
+#define LPCMP_CCR2_PSEL_SHIFT                    (16U)
+/*! PSEL - Plus Input MUX Control
+ *  0b000..Input 0
+ *  0b001..Input 1
+ *  0b010..Input 2
+ *  0b011..Input 3
+ *  0b100..Input 4
+ *  0b101..Input 5
+ *  0b110..Input 6
+ *  0b111..Internal DAC output
+ */
+#define LPCMP_CCR2_PSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_PSEL_SHIFT)) & LPCMP_CCR2_PSEL_MASK)
+#define LPCMP_CCR2_MSEL_MASK                     (0x700000U)
+#define LPCMP_CCR2_MSEL_SHIFT                    (20U)
+/*! MSEL - Minus Input MUX Control
+ *  0b000..Input 0
+ *  0b001..Input 1
+ *  0b010..Input 2
+ *  0b011..Input 3
+ *  0b100..Input 4
+ *  0b101..Input 5
+ *  0b110..Input 6
+ *  0b111..Internal DAC output
+ */
+#define LPCMP_CCR2_MSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_CCR2_MSEL_SHIFT)) & LPCMP_CCR2_MSEL_MASK)
+/*! @} */
+
+/*! @name DCR - DAC Control Register */
+/*! @{ */
+#define LPCMP_DCR_DAC_EN_MASK                    (0x1U)
+#define LPCMP_DCR_DAC_EN_SHIFT                   (0U)
+/*! DAC_EN - DAC Enable
+ *  0b0..DAC is disabled.
+ *  0b1..DAC is enabled.
+ */
+#define LPCMP_DCR_DAC_EN(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_EN_SHIFT)) & LPCMP_DCR_DAC_EN_MASK)
+#define LPCMP_DCR_DAC_HPMD_MASK                  (0x2U)
+#define LPCMP_DCR_DAC_HPMD_SHIFT                 (1U)
+/*! DAC_HPMD - DAC High Power Mode Select
+ *  0b0..DAC high power mode is not enabled.
+ *  0b1..DAC high power mode is enabled.
+ */
+#define LPCMP_DCR_DAC_HPMD(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_HPMD_SHIFT)) & LPCMP_DCR_DAC_HPMD_MASK)
+#define LPCMP_DCR_VRSEL_MASK                     (0x100U)
+#define LPCMP_DCR_VRSEL_SHIFT                    (8U)
+/*! VRSEL - Supply Voltage Reference Source Select
+ *  0b0..vrefh_int is selected as resistor ladder network supply reference Vin.
+ *  0b1..vrefh_ext is selected as resistor ladder network supply reference Vin.
+ */
+#define LPCMP_DCR_VRSEL(x)                       (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_VRSEL_SHIFT)) & LPCMP_DCR_VRSEL_MASK)
+#define LPCMP_DCR_DAC_DATA_MASK                  (0x3F0000U)
+#define LPCMP_DCR_DAC_DATA_SHIFT                 (16U)
+#define LPCMP_DCR_DAC_DATA(x)                    (((uint32_t)(((uint32_t)(x)) << LPCMP_DCR_DAC_DATA_SHIFT)) & LPCMP_DCR_DAC_DATA_MASK)
+/*! @} */
+
+/*! @name IER - Interrupt Enable Register */
+/*! @{ */
+#define LPCMP_IER_CFR_IE_MASK                    (0x1U)
+#define LPCMP_IER_CFR_IE_SHIFT                   (0U)
+/*! CFR_IE - Comparator Flag Rising Interrupt Enable
+ *  0b0..CFR interrupt is disabled.
+ *  0b1..CFR interrupt is enabled.
+ */
+#define LPCMP_IER_CFR_IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_IER_CFR_IE_SHIFT)) & LPCMP_IER_CFR_IE_MASK)
+#define LPCMP_IER_CFF_IE_MASK                    (0x2U)
+#define LPCMP_IER_CFF_IE_SHIFT                   (1U)
+/*! CFF_IE - Comparator Flag Falling Interrupt Enable
+ *  0b0..CFF interrupt is disabled.
+ *  0b1..CFF interrupt is enabled.
+ */
+#define LPCMP_IER_CFF_IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPCMP_IER_CFF_IE_SHIFT)) & LPCMP_IER_CFF_IE_MASK)
+/*! @} */
+
+/*! @name CSR - Comparator Status Register */
+/*! @{ */
+#define LPCMP_CSR_CFR_MASK                       (0x1U)
+#define LPCMP_CSR_CFR_SHIFT                      (0U)
+/*! CFR - Analog Comparator Flag Rising
+ *  0b0..A rising edge has not been detected on COUT.
+ *  0b1..A rising edge on COUT has occurred.
+ */
+#define LPCMP_CSR_CFR(x)                         (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_CFR_SHIFT)) & LPCMP_CSR_CFR_MASK)
+#define LPCMP_CSR_CFF_MASK                       (0x2U)
+#define LPCMP_CSR_CFF_SHIFT                      (1U)
+/*! CFF - Analog Comparator Flag Falling
+ *  0b0..A falling edge has not been detected on COUT.
+ *  0b1..A falling edge on COUT has occurred.
+ */
+#define LPCMP_CSR_CFF(x)                         (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_CFF_SHIFT)) & LPCMP_CSR_CFF_MASK)
+#define LPCMP_CSR_COUT_MASK                      (0x100U)
+#define LPCMP_CSR_COUT_SHIFT                     (8U)
+#define LPCMP_CSR_COUT(x)                        (((uint32_t)(((uint32_t)(x)) << LPCMP_CSR_COUT_SHIFT)) & LPCMP_CSR_COUT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPCMP_Register_Masks */
+
+
+/* LPCMP - Peripheral instance base addresses */
+/** Peripheral LPCMP0 base address */
+#define LPCMP0_BASE                              (0x4004B000u)
+/** Peripheral LPCMP0 base pointer */
+#define LPCMP0                                   ((LPCMP_Type *)LPCMP0_BASE)
+/** Peripheral LPCMP1 base address */
+#define LPCMP1_BASE                              (0x41038000u)
+/** Peripheral LPCMP1 base pointer */
+#define LPCMP1                                   ((LPCMP_Type *)LPCMP1_BASE)
+/** Array initializer of LPCMP peripheral base addresses */
+#define LPCMP_BASE_ADDRS                         { LPCMP0_BASE, LPCMP1_BASE }
+/** Array initializer of LPCMP peripheral base pointers */
+#define LPCMP_BASE_PTRS                          { LPCMP0, LPCMP1 }
+/** Interrupt vectors for the LPCMP peripheral type */
+#define LPCMP_IRQS                               { LPCMP0_IRQn, LPCMP1_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPCMP_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPDAC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPDAC_Peripheral_Access_Layer LPDAC Peripheral Access Layer
+ * @{
+ */
+
+/** LPDAC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version Identifier Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __O  uint32_t DATA;                              /**< DAC Data Register, offset: 0x8 */
+  __IO uint32_t GCR;                               /**< DAC Global Control Register, offset: 0xC */
+  __IO uint32_t FCR;                               /**< DAC FIFO Control Register, offset: 0x10 */
+  __I  uint32_t FPR;                               /**< DAC FIFO Pointer Register, offset: 0x14 */
+  __IO uint32_t FSR;                               /**< FIFO Status Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< DAC Interrupt Enable Register, offset: 0x1C */
+  __IO uint32_t DER;                               /**< DAC DMA Enable Register, offset: 0x20 */
+  __IO uint32_t RCR;                               /**< DAC Reset Control Register, offset: 0x24 */
+  __O  uint32_t TCR;                               /**< DAC Trigger Control Register, offset: 0x28 */
+} LPDAC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPDAC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPDAC_Register_Masks LPDAC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version Identifier Register */
+/*! @{ */
+#define LPDAC_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPDAC_VERID_FEATURE_SHIFT                (0U)
+#define LPDAC_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_FEATURE_SHIFT)) & LPDAC_VERID_FEATURE_MASK)
+#define LPDAC_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPDAC_VERID_MINOR_SHIFT                  (16U)
+#define LPDAC_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_MINOR_SHIFT)) & LPDAC_VERID_MINOR_MASK)
+#define LPDAC_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPDAC_VERID_MAJOR_SHIFT                  (24U)
+#define LPDAC_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_VERID_MAJOR_SHIFT)) & LPDAC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPDAC_PARAM_FIFOSZ_MASK                  (0x7U)
+#define LPDAC_PARAM_FIFOSZ_SHIFT                 (0U)
+/*! FIFOSZ - FIFO size
+ *  0b000..Reserved
+ *  0b001..FIFO depth is 4
+ *  0b010..FIFO depth is 8
+ *  0b011..FIFO depth is 16
+ *  0b100..FIFO depth is 32
+ *  0b101..FIFO depth is 64
+ *  0b110..FIFO depth is 128
+ *  0b111..FIFO depth is 256
+ */
+#define LPDAC_PARAM_FIFOSZ(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_PARAM_FIFOSZ_SHIFT)) & LPDAC_PARAM_FIFOSZ_MASK)
+/*! @} */
+
+/*! @name DATA - DAC Data Register */
+/*! @{ */
+#define LPDAC_DATA_DATA_MASK                     (0xFFFU)
+#define LPDAC_DATA_DATA_SHIFT                    (0U)
+#define LPDAC_DATA_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_DATA_DATA_SHIFT)) & LPDAC_DATA_DATA_MASK)
+/*! @} */
+
+/*! @name GCR - DAC Global Control Register */
+/*! @{ */
+#define LPDAC_GCR_DACEN_MASK                     (0x1U)
+#define LPDAC_GCR_DACEN_SHIFT                    (0U)
+/*! DACEN - DAC Enable
+ *  0b0..The DAC system is disabled.
+ *  0b1..The DAC system is enabled.
+ */
+#define LPDAC_GCR_DACEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_DACEN_SHIFT)) & LPDAC_GCR_DACEN_MASK)
+#define LPDAC_GCR_DACRFS_MASK                    (0x2U)
+#define LPDAC_GCR_DACRFS_SHIFT                   (1U)
+/*! DACRFS - DAC Reference Select
+ *  0b0..The DAC selects VREFH_INT as the reference voltage.
+ *  0b1..The DAC selects VREFH_EXT as the reference voltage.
+ */
+#define LPDAC_GCR_DACRFS(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_DACRFS_SHIFT)) & LPDAC_GCR_DACRFS_MASK)
+#define LPDAC_GCR_LPEN_MASK                      (0x4U)
+#define LPDAC_GCR_LPEN_SHIFT                     (2U)
+/*! LPEN - Low Power Enable
+ *  0b0..High-Power mode
+ *  0b1..Low-Power mode
+ */
+#define LPDAC_GCR_LPEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_LPEN_SHIFT)) & LPDAC_GCR_LPEN_MASK)
+#define LPDAC_GCR_FIFOEN_MASK                    (0x8U)
+#define LPDAC_GCR_FIFOEN_SHIFT                   (3U)
+/*! FIFOEN - FIFO Enable
+ *  0b0..FIFO mode is disabled and buffer mode is enabled. Any data written to DATA[DATA] goes to buffer then goes to conversion.
+ *  0b1..FIFO mode is enabled. Data will be first read from FIFO to buffer then goes to conversion
+ */
+#define LPDAC_GCR_FIFOEN(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_FIFOEN_SHIFT)) & LPDAC_GCR_FIFOEN_MASK)
+#define LPDAC_GCR_SWMD_MASK                      (0x10U)
+#define LPDAC_GCR_SWMD_SHIFT                     (4U)
+/*! SWMD - Swing Back Mode
+ *  0b0..Swing back mode disable
+ *  0b1..Swing back mode enable
+ */
+#define LPDAC_GCR_SWMD(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_SWMD_SHIFT)) & LPDAC_GCR_SWMD_MASK)
+#define LPDAC_GCR_TRGSEL_MASK                    (0x20U)
+#define LPDAC_GCR_TRGSEL_SHIFT                   (5U)
+/*! TRGSEL - DAC Trigger Select
+ *  0b0..The DAC hardware trigger is selected.
+ *  0b1..The DAC software trigger is selected.
+ */
+#define LPDAC_GCR_TRGSEL(x)                      (((uint32_t)(((uint32_t)(x)) << LPDAC_GCR_TRGSEL_SHIFT)) & LPDAC_GCR_TRGSEL_MASK)
+/*! @} */
+
+/*! @name FCR - DAC FIFO Control Register */
+/*! @{ */
+#define LPDAC_FCR_WML_MASK                       (0xFU)
+#define LPDAC_FCR_WML_SHIFT                      (0U)
+#define LPDAC_FCR_WML(x)                         (((uint32_t)(((uint32_t)(x)) << LPDAC_FCR_WML_SHIFT)) & LPDAC_FCR_WML_MASK)
+/*! @} */
+
+/*! @name FPR - DAC FIFO Pointer Register */
+/*! @{ */
+#define LPDAC_FPR_FIFO_RPT_MASK                  (0xFU)
+#define LPDAC_FPR_FIFO_RPT_SHIFT                 (0U)
+#define LPDAC_FPR_FIFO_RPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_FPR_FIFO_RPT_SHIFT)) & LPDAC_FPR_FIFO_RPT_MASK)
+#define LPDAC_FPR_FIFO_WPT_MASK                  (0xF0000U)
+#define LPDAC_FPR_FIFO_WPT_SHIFT                 (16U)
+#define LPDAC_FPR_FIFO_WPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_FPR_FIFO_WPT_SHIFT)) & LPDAC_FPR_FIFO_WPT_MASK)
+/*! @} */
+
+/*! @name FSR - FIFO Status Register */
+/*! @{ */
+#define LPDAC_FSR_FULL_MASK                      (0x1U)
+#define LPDAC_FSR_FULL_SHIFT                     (0U)
+/*! FULL - FIFO Full Flag
+ *  0b0..FIFO is not full
+ *  0b1..FIFO is full
+ */
+#define LPDAC_FSR_FULL(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_FULL_SHIFT)) & LPDAC_FSR_FULL_MASK)
+#define LPDAC_FSR_EMPTY_MASK                     (0x2U)
+#define LPDAC_FSR_EMPTY_SHIFT                    (1U)
+/*! EMPTY - FIFO Empty Flag
+ *  0b0..FIFO is not empty
+ *  0b1..FIFO is empty
+ */
+#define LPDAC_FSR_EMPTY(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_EMPTY_SHIFT)) & LPDAC_FSR_EMPTY_MASK)
+#define LPDAC_FSR_WM_MASK                        (0x4U)
+#define LPDAC_FSR_WM_SHIFT                       (2U)
+/*! WM - FIFO Watermark Status Flag
+ *  0b0..Data in FIFO is more than watermark level
+ *  0b1..Data in FIFO is less than or equal to watermark level
+ */
+#define LPDAC_FSR_WM(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_WM_SHIFT)) & LPDAC_FSR_WM_MASK)
+#define LPDAC_FSR_SWBK_MASK                      (0x8U)
+#define LPDAC_FSR_SWBK_SHIFT                     (3U)
+/*! SWBK - Swing Back One Cycle Complete Flag
+ *  0b0..No swing back cycle has completed since the last time the flag was cleared.
+ *  0b1..At least one swing back cycle has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_SWBK(x)                        (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_SWBK_SHIFT)) & LPDAC_FSR_SWBK_MASK)
+#define LPDAC_FSR_OF_MASK                        (0x40U)
+#define LPDAC_FSR_OF_SHIFT                       (6U)
+/*! OF - FIFO Overflow Flag
+ *  0b0..No overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one FIFO overflow has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_OF(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_OF_SHIFT)) & LPDAC_FSR_OF_MASK)
+#define LPDAC_FSR_UF_MASK                        (0x80U)
+#define LPDAC_FSR_UF_SHIFT                       (7U)
+/*! UF - FIFO Underflow Flag
+ *  0b0..No underflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one trigger underflow has occurred since the last time the flag was cleared.
+ */
+#define LPDAC_FSR_UF(x)                          (((uint32_t)(((uint32_t)(x)) << LPDAC_FSR_UF_SHIFT)) & LPDAC_FSR_UF_MASK)
+/*! @} */
+
+/*! @name IER - DAC Interrupt Enable Register */
+/*! @{ */
+#define LPDAC_IER_FULL_IE_MASK                   (0x1U)
+#define LPDAC_IER_FULL_IE_SHIFT                  (0U)
+/*! FULL_IE - FIFO Full Interrupt Enable
+ *  0b0..FIFO Full interrupt is disabled.
+ *  0b1..FIFO Full interrupt is enabled.
+ */
+#define LPDAC_IER_FULL_IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_FULL_IE_SHIFT)) & LPDAC_IER_FULL_IE_MASK)
+#define LPDAC_IER_EMPTY_IE_MASK                  (0x2U)
+#define LPDAC_IER_EMPTY_IE_SHIFT                 (1U)
+/*! EMPTY_IE - FIFO Empty Interrupt Enable
+ *  0b0..FIFO Empty interrupt is disabled.
+ *  0b1..FIFO Empty interrupt is enabled.
+ */
+#define LPDAC_IER_EMPTY_IE(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_EMPTY_IE_SHIFT)) & LPDAC_IER_EMPTY_IE_MASK)
+#define LPDAC_IER_WM_IE_MASK                     (0x4U)
+#define LPDAC_IER_WM_IE_SHIFT                    (2U)
+/*! WM_IE - FIFO Watermark Interrupt Enable
+ *  0b0..Watermark interrupt is disabled.
+ *  0b1..Watermark interrupt is enabled.
+ */
+#define LPDAC_IER_WM_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_WM_IE_SHIFT)) & LPDAC_IER_WM_IE_MASK)
+#define LPDAC_IER_SWBK_IE_MASK                   (0x8U)
+#define LPDAC_IER_SWBK_IE_SHIFT                  (3U)
+/*! SWBK_IE - Swing back One Cycle Complete Interrupt Enable
+ *  0b0..Swing back one time complete interrupt is disabled.
+ *  0b1..Swing back one time complete interrupt is enabled.
+ */
+#define LPDAC_IER_SWBK_IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_SWBK_IE_SHIFT)) & LPDAC_IER_SWBK_IE_MASK)
+#define LPDAC_IER_OF_IE_MASK                     (0x40U)
+#define LPDAC_IER_OF_IE_SHIFT                    (6U)
+/*! OF_IE - FIFO Overflow Interrupt Enable
+ *  0b0..Overflow interrupt is disabled
+ *  0b1..Overflow interrupt is enabled.
+ */
+#define LPDAC_IER_OF_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_OF_IE_SHIFT)) & LPDAC_IER_OF_IE_MASK)
+#define LPDAC_IER_UF_IE_MASK                     (0x80U)
+#define LPDAC_IER_UF_IE_SHIFT                    (7U)
+/*! UF_IE - FIFO Underflow Interrupt Enable
+ *  0b0..Underflow interrupt is disabled.
+ *  0b1..Underflow interrupt is enabled.
+ */
+#define LPDAC_IER_UF_IE(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_IER_UF_IE_SHIFT)) & LPDAC_IER_UF_IE_MASK)
+/*! @} */
+
+/*! @name DER - DAC DMA Enable Register */
+/*! @{ */
+#define LPDAC_DER_EMPTY_DMAEN_MASK               (0x2U)
+#define LPDAC_DER_EMPTY_DMAEN_SHIFT              (1U)
+/*! EMPTY_DMAEN - FIFO Empty DMA Enable
+ *  0b0..FIFO Empty DMA request is disabled.
+ *  0b1..FIFO Empty DMA request is enabled.
+ */
+#define LPDAC_DER_EMPTY_DMAEN(x)                 (((uint32_t)(((uint32_t)(x)) << LPDAC_DER_EMPTY_DMAEN_SHIFT)) & LPDAC_DER_EMPTY_DMAEN_MASK)
+#define LPDAC_DER_WM_DMAEN_MASK                  (0x4U)
+#define LPDAC_DER_WM_DMAEN_SHIFT                 (2U)
+/*! WM_DMAEN - FIFO Watermark DMA Enable
+ *  0b0..Watermark DMA request is disabled.
+ *  0b1..Watermark DMA request is enabled.
+ */
+#define LPDAC_DER_WM_DMAEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPDAC_DER_WM_DMAEN_SHIFT)) & LPDAC_DER_WM_DMAEN_MASK)
+/*! @} */
+
+/*! @name RCR - DAC Reset Control Register */
+/*! @{ */
+#define LPDAC_RCR_SWRST_MASK                     (0x1U)
+#define LPDAC_RCR_SWRST_SHIFT                    (0U)
+/*! SWRST - Software Reset
+ *  0b0..No effect
+ *  0b1..Software reset
+ */
+#define LPDAC_RCR_SWRST(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_RCR_SWRST_SHIFT)) & LPDAC_RCR_SWRST_MASK)
+#define LPDAC_RCR_FIFORST_MASK                   (0x2U)
+#define LPDAC_RCR_FIFORST_SHIFT                  (1U)
+/*! FIFORST - FIFO Reset
+ *  0b0..No effect
+ *  0b1..FIFO reset
+ */
+#define LPDAC_RCR_FIFORST(x)                     (((uint32_t)(((uint32_t)(x)) << LPDAC_RCR_FIFORST_SHIFT)) & LPDAC_RCR_FIFORST_MASK)
+/*! @} */
+
+/*! @name TCR - DAC Trigger Control Register */
+/*! @{ */
+#define LPDAC_TCR_SWTRG_MASK                     (0x1U)
+#define LPDAC_TCR_SWTRG_SHIFT                    (0U)
+/*! SWTRG - Software Trigger
+ *  0b0..The DAC soft trigger is not valid.
+ *  0b1..The DAC soft trigger is valid.
+ */
+#define LPDAC_TCR_SWTRG(x)                       (((uint32_t)(((uint32_t)(x)) << LPDAC_TCR_SWTRG_SHIFT)) & LPDAC_TCR_SWTRG_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPDAC_Register_Masks */
+
+
+/* LPDAC - Peripheral instance base addresses */
+/** Peripheral LPDAC0 base address */
+#define LPDAC0_BASE                              (0x4004C000u)
+/** Peripheral LPDAC0 base pointer */
+#define LPDAC0                                   ((LPDAC_Type *)LPDAC0_BASE)
+/** Array initializer of LPDAC peripheral base addresses */
+#define LPDAC_BASE_ADDRS                         { LPDAC0_BASE }
+/** Array initializer of LPDAC peripheral base pointers */
+#define LPDAC_BASE_PTRS                          { LPDAC0 }
+/** Interrupt vectors for the LPDAC peripheral type */
+#define LPDAC_IRQS                               { LPDAC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPDAC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPI2C Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPI2C_Peripheral_Access_Layer LPI2C Peripheral Access Layer
+ * @{
+ */
+
+/** LPI2C - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t MCR;                               /**< Master Control Register, offset: 0x10 */
+  __IO uint32_t MSR;                               /**< Master Status Register, offset: 0x14 */
+  __IO uint32_t MIER;                              /**< Master Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t MDER;                              /**< Master DMA Enable Register, offset: 0x1C */
+  __IO uint32_t MCFGR0;                            /**< Master Configuration Register 0, offset: 0x20 */
+  __IO uint32_t MCFGR1;                            /**< Master Configuration Register 1, offset: 0x24 */
+  __IO uint32_t MCFGR2;                            /**< Master Configuration Register 2, offset: 0x28 */
+  __IO uint32_t MCFGR3;                            /**< Master Configuration Register 3, offset: 0x2C */
+       uint8_t RESERVED_1[16];
+  __IO uint32_t MDMR;                              /**< Master Data Match Register, offset: 0x40 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t MCCR0;                             /**< Master Clock Configuration Register 0, offset: 0x48 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t MCCR1;                             /**< Master Clock Configuration Register 1, offset: 0x50 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t MFCR;                              /**< Master FIFO Control Register, offset: 0x58 */
+  __I  uint32_t MFSR;                              /**< Master FIFO Status Register, offset: 0x5C */
+  __O  uint32_t MTDR;                              /**< Master Transmit Data Register, offset: 0x60 */
+       uint8_t RESERVED_5[12];
+  __I  uint32_t MRDR;                              /**< Master Receive Data Register, offset: 0x70 */
+       uint8_t RESERVED_6[156];
+  __IO uint32_t SCR;                               /**< Slave Control Register, offset: 0x110 */
+  __IO uint32_t SSR;                               /**< Slave Status Register, offset: 0x114 */
+  __IO uint32_t SIER;                              /**< Slave Interrupt Enable Register, offset: 0x118 */
+  __IO uint32_t SDER;                              /**< Slave DMA Enable Register, offset: 0x11C */
+       uint8_t RESERVED_7[4];
+  __IO uint32_t SCFGR1;                            /**< Slave Configuration Register 1, offset: 0x124 */
+  __IO uint32_t SCFGR2;                            /**< Slave Configuration Register 2, offset: 0x128 */
+       uint8_t RESERVED_8[20];
+  __IO uint32_t SAMR;                              /**< Slave Address Match Register, offset: 0x140 */
+       uint8_t RESERVED_9[12];
+  __I  uint32_t SASR;                              /**< Slave Address Status Register, offset: 0x150 */
+  __IO uint32_t STAR;                              /**< Slave Transmit ACK Register, offset: 0x154 */
+       uint8_t RESERVED_10[8];
+  __O  uint32_t STDR;                              /**< Slave Transmit Data Register, offset: 0x160 */
+       uint8_t RESERVED_11[12];
+  __I  uint32_t SRDR;                              /**< Slave Receive Data Register, offset: 0x170 */
+} LPI2C_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPI2C Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPI2C_Register_Masks LPI2C Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPI2C_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPI2C_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000010..Master only, with standard feature set
+ *  0b0000000000000011..Master and slave, with standard feature set
+ */
+#define LPI2C_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_FEATURE_SHIFT)) & LPI2C_VERID_FEATURE_MASK)
+#define LPI2C_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPI2C_VERID_MINOR_SHIFT                  (16U)
+#define LPI2C_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MINOR_SHIFT)) & LPI2C_VERID_MINOR_MASK)
+#define LPI2C_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPI2C_VERID_MAJOR_SHIFT                  (24U)
+#define LPI2C_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_VERID_MAJOR_SHIFT)) & LPI2C_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPI2C_PARAM_MTXFIFO_MASK                 (0xFU)
+#define LPI2C_PARAM_MTXFIFO_SHIFT                (0U)
+#define LPI2C_PARAM_MTXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MTXFIFO_SHIFT)) & LPI2C_PARAM_MTXFIFO_MASK)
+#define LPI2C_PARAM_MRXFIFO_MASK                 (0xF00U)
+#define LPI2C_PARAM_MRXFIFO_SHIFT                (8U)
+#define LPI2C_PARAM_MRXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_PARAM_MRXFIFO_SHIFT)) & LPI2C_PARAM_MRXFIFO_MASK)
+/*! @} */
+
+/*! @name MCR - Master Control Register */
+/*! @{ */
+#define LPI2C_MCR_MEN_MASK                       (0x1U)
+#define LPI2C_MCR_MEN_SHIFT                      (0U)
+/*! MEN - Master Enable
+ *  0b0..Master logic is disabled
+ *  0b1..Master logic is enabled
+ */
+#define LPI2C_MCR_MEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_MEN_SHIFT)) & LPI2C_MCR_MEN_MASK)
+#define LPI2C_MCR_RST_MASK                       (0x2U)
+#define LPI2C_MCR_RST_SHIFT                      (1U)
+/*! RST - Software Reset
+ *  0b0..Master logic is not reset
+ *  0b1..Master logic is reset
+ */
+#define LPI2C_MCR_RST(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RST_SHIFT)) & LPI2C_MCR_RST_MASK)
+#define LPI2C_MCR_DOZEN_MASK                     (0x4U)
+#define LPI2C_MCR_DOZEN_SHIFT                    (2U)
+/*! DOZEN - Doze mode enable
+ *  0b0..Master is enabled in Doze mode
+ *  0b1..Master is disabled in Doze mode
+ */
+#define LPI2C_MCR_DOZEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DOZEN_SHIFT)) & LPI2C_MCR_DOZEN_MASK)
+#define LPI2C_MCR_DBGEN_MASK                     (0x8U)
+#define LPI2C_MCR_DBGEN_SHIFT                    (3U)
+/*! DBGEN - Debug Enable
+ *  0b0..Master is disabled in debug mode
+ *  0b1..Master is enabled in debug mode
+ */
+#define LPI2C_MCR_DBGEN(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_DBGEN_SHIFT)) & LPI2C_MCR_DBGEN_MASK)
+#define LPI2C_MCR_RTF_MASK                       (0x100U)
+#define LPI2C_MCR_RTF_SHIFT                      (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit FIFO is reset
+ */
+#define LPI2C_MCR_RTF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RTF_SHIFT)) & LPI2C_MCR_RTF_MASK)
+#define LPI2C_MCR_RRF_MASK                       (0x200U)
+#define LPI2C_MCR_RRF_SHIFT                      (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive FIFO is reset
+ */
+#define LPI2C_MCR_RRF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MCR_RRF_SHIFT)) & LPI2C_MCR_RRF_MASK)
+/*! @} */
+
+/*! @name MSR - Master Status Register */
+/*! @{ */
+#define LPI2C_MSR_TDF_MASK                       (0x1U)
+#define LPI2C_MSR_TDF_SHIFT                      (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data is not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPI2C_MSR_TDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_TDF_SHIFT)) & LPI2C_MSR_TDF_MASK)
+#define LPI2C_MSR_RDF_MASK                       (0x2U)
+#define LPI2C_MSR_RDF_SHIFT                      (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive Data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPI2C_MSR_RDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_RDF_SHIFT)) & LPI2C_MSR_RDF_MASK)
+#define LPI2C_MSR_EPF_MASK                       (0x100U)
+#define LPI2C_MSR_EPF_SHIFT                      (8U)
+/*! EPF - End Packet Flag
+ *  0b0..Master has not generated a STOP or Repeated START condition
+ *  0b1..Master has generated a STOP or Repeated START condition
+ */
+#define LPI2C_MSR_EPF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_EPF_SHIFT)) & LPI2C_MSR_EPF_MASK)
+#define LPI2C_MSR_SDF_MASK                       (0x200U)
+#define LPI2C_MSR_SDF_SHIFT                      (9U)
+/*! SDF - STOP Detect Flag
+ *  0b0..Master has not generated a STOP condition
+ *  0b1..Master has generated a STOP condition
+ */
+#define LPI2C_MSR_SDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_SDF_SHIFT)) & LPI2C_MSR_SDF_MASK)
+#define LPI2C_MSR_NDF_MASK                       (0x400U)
+#define LPI2C_MSR_NDF_SHIFT                      (10U)
+/*! NDF - NACK Detect Flag
+ *  0b0..Unexpected NACK was not detected
+ *  0b1..Unexpected NACK was detected
+ */
+#define LPI2C_MSR_NDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_NDF_SHIFT)) & LPI2C_MSR_NDF_MASK)
+#define LPI2C_MSR_ALF_MASK                       (0x800U)
+#define LPI2C_MSR_ALF_SHIFT                      (11U)
+/*! ALF - Arbitration Lost Flag
+ *  0b0..Master has not lost arbitration
+ *  0b1..Master has lost arbitration
+ */
+#define LPI2C_MSR_ALF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_ALF_SHIFT)) & LPI2C_MSR_ALF_MASK)
+#define LPI2C_MSR_FEF_MASK                       (0x1000U)
+#define LPI2C_MSR_FEF_SHIFT                      (12U)
+/*! FEF - FIFO Error Flag
+ *  0b0..No error
+ *  0b1..Master sending or receiving data without a START condition
+ */
+#define LPI2C_MSR_FEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_FEF_SHIFT)) & LPI2C_MSR_FEF_MASK)
+#define LPI2C_MSR_PLTF_MASK                      (0x2000U)
+#define LPI2C_MSR_PLTF_SHIFT                     (13U)
+/*! PLTF - Pin Low Timeout Flag
+ *  0b0..Pin low timeout has not occurred or is disabled
+ *  0b1..Pin low timeout has occurred
+ */
+#define LPI2C_MSR_PLTF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_PLTF_SHIFT)) & LPI2C_MSR_PLTF_MASK)
+#define LPI2C_MSR_DMF_MASK                       (0x4000U)
+#define LPI2C_MSR_DMF_SHIFT                      (14U)
+/*! DMF - Data Match Flag
+ *  0b0..Have not received matching data
+ *  0b1..Have received matching data
+ */
+#define LPI2C_MSR_DMF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_DMF_SHIFT)) & LPI2C_MSR_DMF_MASK)
+#define LPI2C_MSR_MBF_MASK                       (0x1000000U)
+#define LPI2C_MSR_MBF_SHIFT                      (24U)
+/*! MBF - Master Busy Flag
+ *  0b0..I2C Master is idle
+ *  0b1..I2C Master is busy
+ */
+#define LPI2C_MSR_MBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_MBF_SHIFT)) & LPI2C_MSR_MBF_MASK)
+#define LPI2C_MSR_BBF_MASK                       (0x2000000U)
+#define LPI2C_MSR_BBF_SHIFT                      (25U)
+/*! BBF - Bus Busy Flag
+ *  0b0..I2C Bus is idle
+ *  0b1..I2C Bus is busy
+ */
+#define LPI2C_MSR_BBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_MSR_BBF_SHIFT)) & LPI2C_MSR_BBF_MASK)
+/*! @} */
+
+/*! @name MIER - Master Interrupt Enable Register */
+/*! @{ */
+#define LPI2C_MIER_TDIE_MASK                     (0x1U)
+#define LPI2C_MIER_TDIE_SHIFT                    (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_TDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_TDIE_SHIFT)) & LPI2C_MIER_TDIE_MASK)
+#define LPI2C_MIER_RDIE_MASK                     (0x2U)
+#define LPI2C_MIER_RDIE_SHIFT                    (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_RDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_RDIE_SHIFT)) & LPI2C_MIER_RDIE_MASK)
+#define LPI2C_MIER_EPIE_MASK                     (0x100U)
+#define LPI2C_MIER_EPIE_SHIFT                    (8U)
+/*! EPIE - End Packet Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_EPIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_EPIE_SHIFT)) & LPI2C_MIER_EPIE_MASK)
+#define LPI2C_MIER_SDIE_MASK                     (0x200U)
+#define LPI2C_MIER_SDIE_SHIFT                    (9U)
+/*! SDIE - STOP Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_SDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_SDIE_SHIFT)) & LPI2C_MIER_SDIE_MASK)
+#define LPI2C_MIER_NDIE_MASK                     (0x400U)
+#define LPI2C_MIER_NDIE_SHIFT                    (10U)
+/*! NDIE - NACK Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_NDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_NDIE_SHIFT)) & LPI2C_MIER_NDIE_MASK)
+#define LPI2C_MIER_ALIE_MASK                     (0x800U)
+#define LPI2C_MIER_ALIE_SHIFT                    (11U)
+/*! ALIE - Arbitration Lost Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_ALIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_ALIE_SHIFT)) & LPI2C_MIER_ALIE_MASK)
+#define LPI2C_MIER_FEIE_MASK                     (0x1000U)
+#define LPI2C_MIER_FEIE_SHIFT                    (12U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Enabled
+ *  0b1..Disabled
+ */
+#define LPI2C_MIER_FEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_FEIE_SHIFT)) & LPI2C_MIER_FEIE_MASK)
+#define LPI2C_MIER_PLTIE_MASK                    (0x2000U)
+#define LPI2C_MIER_PLTIE_SHIFT                   (13U)
+/*! PLTIE - Pin Low Timeout Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_PLTIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_PLTIE_SHIFT)) & LPI2C_MIER_PLTIE_MASK)
+#define LPI2C_MIER_DMIE_MASK                     (0x4000U)
+#define LPI2C_MIER_DMIE_SHIFT                    (14U)
+/*! DMIE - Data Match Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_MIER_DMIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MIER_DMIE_SHIFT)) & LPI2C_MIER_DMIE_MASK)
+/*! @} */
+
+/*! @name MDER - Master DMA Enable Register */
+/*! @{ */
+#define LPI2C_MDER_TDDE_MASK                     (0x1U)
+#define LPI2C_MDER_TDDE_SHIFT                    (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_MDER_TDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_TDDE_SHIFT)) & LPI2C_MDER_TDDE_MASK)
+#define LPI2C_MDER_RDDE_MASK                     (0x2U)
+#define LPI2C_MDER_RDDE_SHIFT                    (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_MDER_RDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MDER_RDDE_SHIFT)) & LPI2C_MDER_RDDE_MASK)
+/*! @} */
+
+/*! @name MCFGR0 - Master Configuration Register 0 */
+/*! @{ */
+#define LPI2C_MCFGR0_HREN_MASK                   (0x1U)
+#define LPI2C_MCFGR0_HREN_SHIFT                  (0U)
+/*! HREN - Host Request Enable
+ *  0b0..Host request input is disabled
+ *  0b1..Host request input is enabled
+ */
+#define LPI2C_MCFGR0_HREN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HREN_SHIFT)) & LPI2C_MCFGR0_HREN_MASK)
+#define LPI2C_MCFGR0_HRPOL_MASK                  (0x2U)
+#define LPI2C_MCFGR0_HRPOL_SHIFT                 (1U)
+/*! HRPOL - Host Request Polarity
+ *  0b0..Active low
+ *  0b1..Active high
+ */
+#define LPI2C_MCFGR0_HRPOL(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRPOL_SHIFT)) & LPI2C_MCFGR0_HRPOL_MASK)
+#define LPI2C_MCFGR0_HRSEL_MASK                  (0x4U)
+#define LPI2C_MCFGR0_HRSEL_SHIFT                 (2U)
+/*! HRSEL - Host Request Select
+ *  0b0..Host request input is pin HREQ
+ *  0b1..Host request input is input trigger
+ */
+#define LPI2C_MCFGR0_HRSEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_HRSEL_SHIFT)) & LPI2C_MCFGR0_HRSEL_MASK)
+#define LPI2C_MCFGR0_CIRFIFO_MASK                (0x100U)
+#define LPI2C_MCFGR0_CIRFIFO_SHIFT               (8U)
+/*! CIRFIFO - Circular FIFO Enable
+ *  0b0..Circular FIFO is disabled
+ *  0b1..Circular FIFO is enabled
+ */
+#define LPI2C_MCFGR0_CIRFIFO(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_CIRFIFO_SHIFT)) & LPI2C_MCFGR0_CIRFIFO_MASK)
+#define LPI2C_MCFGR0_RDMO_MASK                   (0x200U)
+#define LPI2C_MCFGR0_RDMO_SHIFT                  (9U)
+/*! RDMO - Receive Data Match Only
+ *  0b0..Received data is stored in the receive FIFO
+ *  0b1..Received data is discarded unless the the Data Match Flag (MSR[DMF]) is set
+ */
+#define LPI2C_MCFGR0_RDMO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR0_RDMO_SHIFT)) & LPI2C_MCFGR0_RDMO_MASK)
+/*! @} */
+
+/*! @name MCFGR1 - Master Configuration Register 1 */
+/*! @{ */
+#define LPI2C_MCFGR1_PRESCALE_MASK               (0x7U)
+#define LPI2C_MCFGR1_PRESCALE_SHIFT              (0U)
+/*! PRESCALE - Prescaler
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define LPI2C_MCFGR1_PRESCALE(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PRESCALE_SHIFT)) & LPI2C_MCFGR1_PRESCALE_MASK)
+#define LPI2C_MCFGR1_AUTOSTOP_MASK               (0x100U)
+#define LPI2C_MCFGR1_AUTOSTOP_SHIFT              (8U)
+/*! AUTOSTOP - Automatic STOP Generation
+ *  0b0..No effect
+ *  0b1..STOP condition is automatically generated whenever the transmit FIFO is empty and the LPI2C master is busy
+ */
+#define LPI2C_MCFGR1_AUTOSTOP(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_AUTOSTOP_SHIFT)) & LPI2C_MCFGR1_AUTOSTOP_MASK)
+#define LPI2C_MCFGR1_IGNACK_MASK                 (0x200U)
+#define LPI2C_MCFGR1_IGNACK_SHIFT                (9U)
+/*! IGNACK - IGNACK
+ *  0b0..LPI2C Master will receive ACK and NACK normally
+ *  0b1..LPI2C Master will treat a received NACK as if it (NACK) was an ACK
+ */
+#define LPI2C_MCFGR1_IGNACK(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_IGNACK_SHIFT)) & LPI2C_MCFGR1_IGNACK_MASK)
+#define LPI2C_MCFGR1_TIMECFG_MASK                (0x400U)
+#define LPI2C_MCFGR1_TIMECFG_SHIFT               (10U)
+/*! TIMECFG - Timeout Configuration
+ *  0b0..Pin Low Timeout Flag will set if SCL is low for longer than the configured timeout
+ *  0b1..Pin Low Timeout Flag will set if either SCL or SDA is low for longer than the configured timeout
+ */
+#define LPI2C_MCFGR1_TIMECFG(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_TIMECFG_SHIFT)) & LPI2C_MCFGR1_TIMECFG_MASK)
+#define LPI2C_MCFGR1_MATCFG_MASK                 (0x70000U)
+#define LPI2C_MCFGR1_MATCFG_SHIFT                (16U)
+/*! MATCFG - Match Configuration
+ *  0b000..Match is disabled
+ *  0b001..Reserved
+ *  0b010..Match is enabled (1st data word equals MATCH0 OR MATCH1)
+ *  0b011..Match is enabled (any data word equals MATCH0 OR MATCH1)
+ *  0b100..Match is enabled (1st data word equals MATCH0 AND 2nd data word equals MATCH1)
+ *  0b101..Match is enabled (any data word equals MATCH0 AND next data word equals MATCH1)
+ *  0b110..Match is enabled (1st data word AND MATCH1 equals MATCH0 AND MATCH1)
+ *  0b111..Match is enabled (any data word AND MATCH1 equals MATCH0 AND MATCH1)
+ */
+#define LPI2C_MCFGR1_MATCFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_MATCFG_SHIFT)) & LPI2C_MCFGR1_MATCFG_MASK)
+#define LPI2C_MCFGR1_PINCFG_MASK                 (0x7000000U)
+#define LPI2C_MCFGR1_PINCFG_SHIFT                (24U)
+/*! PINCFG - Pin Configuration
+ *  0b000..2-pin open drain mode
+ *  0b001..2-pin output only mode (ultra-fast mode)
+ *  0b010..2-pin push-pull mode
+ *  0b011..4-pin push-pull mode
+ *  0b100..2-pin open drain mode with separate LPI2C slave
+ *  0b101..2-pin output only mode (ultra-fast mode) with separate LPI2C slave
+ *  0b110..2-pin push-pull mode with separate LPI2C slave
+ *  0b111..4-pin push-pull mode (inverted outputs)
+ */
+#define LPI2C_MCFGR1_PINCFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR1_PINCFG_SHIFT)) & LPI2C_MCFGR1_PINCFG_MASK)
+/*! @} */
+
+/*! @name MCFGR2 - Master Configuration Register 2 */
+/*! @{ */
+#define LPI2C_MCFGR2_BUSIDLE_MASK                (0xFFFU)
+#define LPI2C_MCFGR2_BUSIDLE_SHIFT               (0U)
+#define LPI2C_MCFGR2_BUSIDLE(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_BUSIDLE_SHIFT)) & LPI2C_MCFGR2_BUSIDLE_MASK)
+#define LPI2C_MCFGR2_FILTSCL_MASK                (0xF0000U)
+#define LPI2C_MCFGR2_FILTSCL_SHIFT               (16U)
+#define LPI2C_MCFGR2_FILTSCL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSCL_SHIFT)) & LPI2C_MCFGR2_FILTSCL_MASK)
+#define LPI2C_MCFGR2_FILTSDA_MASK                (0xF000000U)
+#define LPI2C_MCFGR2_FILTSDA_SHIFT               (24U)
+#define LPI2C_MCFGR2_FILTSDA(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR2_FILTSDA_SHIFT)) & LPI2C_MCFGR2_FILTSDA_MASK)
+/*! @} */
+
+/*! @name MCFGR3 - Master Configuration Register 3 */
+/*! @{ */
+#define LPI2C_MCFGR3_PINLOW_MASK                 (0xFFF00U)
+#define LPI2C_MCFGR3_PINLOW_SHIFT                (8U)
+#define LPI2C_MCFGR3_PINLOW(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCFGR3_PINLOW_SHIFT)) & LPI2C_MCFGR3_PINLOW_MASK)
+/*! @} */
+
+/*! @name MDMR - Master Data Match Register */
+/*! @{ */
+#define LPI2C_MDMR_MATCH0_MASK                   (0xFFU)
+#define LPI2C_MDMR_MATCH0_SHIFT                  (0U)
+#define LPI2C_MDMR_MATCH0(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH0_SHIFT)) & LPI2C_MDMR_MATCH0_MASK)
+#define LPI2C_MDMR_MATCH1_MASK                   (0xFF0000U)
+#define LPI2C_MDMR_MATCH1_SHIFT                  (16U)
+#define LPI2C_MDMR_MATCH1(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MDMR_MATCH1_SHIFT)) & LPI2C_MDMR_MATCH1_MASK)
+/*! @} */
+
+/*! @name MCCR0 - Master Clock Configuration Register 0 */
+/*! @{ */
+#define LPI2C_MCCR0_CLKLO_MASK                   (0x3FU)
+#define LPI2C_MCCR0_CLKLO_SHIFT                  (0U)
+#define LPI2C_MCCR0_CLKLO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKLO_SHIFT)) & LPI2C_MCCR0_CLKLO_MASK)
+#define LPI2C_MCCR0_CLKHI_MASK                   (0x3F00U)
+#define LPI2C_MCCR0_CLKHI_SHIFT                  (8U)
+#define LPI2C_MCCR0_CLKHI(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_CLKHI_SHIFT)) & LPI2C_MCCR0_CLKHI_MASK)
+#define LPI2C_MCCR0_SETHOLD_MASK                 (0x3F0000U)
+#define LPI2C_MCCR0_SETHOLD_SHIFT                (16U)
+#define LPI2C_MCCR0_SETHOLD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_SETHOLD_SHIFT)) & LPI2C_MCCR0_SETHOLD_MASK)
+#define LPI2C_MCCR0_DATAVD_MASK                  (0x3F000000U)
+#define LPI2C_MCCR0_DATAVD_SHIFT                 (24U)
+#define LPI2C_MCCR0_DATAVD(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR0_DATAVD_SHIFT)) & LPI2C_MCCR0_DATAVD_MASK)
+/*! @} */
+
+/*! @name MCCR1 - Master Clock Configuration Register 1 */
+/*! @{ */
+#define LPI2C_MCCR1_CLKLO_MASK                   (0x3FU)
+#define LPI2C_MCCR1_CLKLO_SHIFT                  (0U)
+#define LPI2C_MCCR1_CLKLO(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKLO_SHIFT)) & LPI2C_MCCR1_CLKLO_MASK)
+#define LPI2C_MCCR1_CLKHI_MASK                   (0x3F00U)
+#define LPI2C_MCCR1_CLKHI_SHIFT                  (8U)
+#define LPI2C_MCCR1_CLKHI(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_CLKHI_SHIFT)) & LPI2C_MCCR1_CLKHI_MASK)
+#define LPI2C_MCCR1_SETHOLD_MASK                 (0x3F0000U)
+#define LPI2C_MCCR1_SETHOLD_SHIFT                (16U)
+#define LPI2C_MCCR1_SETHOLD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_SETHOLD_SHIFT)) & LPI2C_MCCR1_SETHOLD_MASK)
+#define LPI2C_MCCR1_DATAVD_MASK                  (0x3F000000U)
+#define LPI2C_MCCR1_DATAVD_SHIFT                 (24U)
+#define LPI2C_MCCR1_DATAVD(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MCCR1_DATAVD_SHIFT)) & LPI2C_MCCR1_DATAVD_MASK)
+/*! @} */
+
+/*! @name MFCR - Master FIFO Control Register */
+/*! @{ */
+#define LPI2C_MFCR_TXWATER_MASK                  (0x3U)
+#define LPI2C_MFCR_TXWATER_SHIFT                 (0U)
+#define LPI2C_MFCR_TXWATER(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_TXWATER_SHIFT)) & LPI2C_MFCR_TXWATER_MASK)
+#define LPI2C_MFCR_RXWATER_MASK                  (0x30000U)
+#define LPI2C_MFCR_RXWATER_SHIFT                 (16U)
+#define LPI2C_MFCR_RXWATER(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFCR_RXWATER_SHIFT)) & LPI2C_MFCR_RXWATER_MASK)
+/*! @} */
+
+/*! @name MFSR - Master FIFO Status Register */
+/*! @{ */
+#define LPI2C_MFSR_TXCOUNT_MASK                  (0x7U)
+#define LPI2C_MFSR_TXCOUNT_SHIFT                 (0U)
+#define LPI2C_MFSR_TXCOUNT(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_TXCOUNT_SHIFT)) & LPI2C_MFSR_TXCOUNT_MASK)
+#define LPI2C_MFSR_RXCOUNT_MASK                  (0x70000U)
+#define LPI2C_MFSR_RXCOUNT_SHIFT                 (16U)
+#define LPI2C_MFSR_RXCOUNT(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MFSR_RXCOUNT_SHIFT)) & LPI2C_MFSR_RXCOUNT_MASK)
+/*! @} */
+
+/*! @name MTDR - Master Transmit Data Register */
+/*! @{ */
+#define LPI2C_MTDR_DATA_MASK                     (0xFFU)
+#define LPI2C_MTDR_DATA_SHIFT                    (0U)
+#define LPI2C_MTDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_DATA_SHIFT)) & LPI2C_MTDR_DATA_MASK)
+#define LPI2C_MTDR_CMD_MASK                      (0x700U)
+#define LPI2C_MTDR_CMD_SHIFT                     (8U)
+/*! CMD - Command Data
+ *  0b000..Transmit DATA[7:0]
+ *  0b001..Receive (DATA[7:0] + 1) bytes
+ *  0b010..Generate STOP condition
+ *  0b011..Receive and discard (DATA[7:0] + 1) bytes
+ *  0b100..Generate (repeated) START and transmit address in DATA[7:0]
+ *  0b101..Generate (repeated) START and transmit address in DATA[7:0]. This transfer expects a NACK to be returned.
+ *  0b110..Generate (repeated) START and transmit address in DATA[7:0] using high speed mode
+ *  0b111..Generate (repeated) START and transmit address in DATA[7:0] using high speed mode. This transfer expects a NACK to be returned.
+ */
+#define LPI2C_MTDR_CMD(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_MTDR_CMD_SHIFT)) & LPI2C_MTDR_CMD_MASK)
+/*! @} */
+
+/*! @name MRDR - Master Receive Data Register */
+/*! @{ */
+#define LPI2C_MRDR_DATA_MASK                     (0xFFU)
+#define LPI2C_MRDR_DATA_SHIFT                    (0U)
+#define LPI2C_MRDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_DATA_SHIFT)) & LPI2C_MRDR_DATA_MASK)
+#define LPI2C_MRDR_RXEMPTY_MASK                  (0x4000U)
+#define LPI2C_MRDR_RXEMPTY_SHIFT                 (14U)
+/*! RXEMPTY - RX Empty
+ *  0b0..Receive FIFO is not empty
+ *  0b1..Receive FIFO is empty
+ */
+#define LPI2C_MRDR_RXEMPTY(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_MRDR_RXEMPTY_SHIFT)) & LPI2C_MRDR_RXEMPTY_MASK)
+/*! @} */
+
+/*! @name SCR - Slave Control Register */
+/*! @{ */
+#define LPI2C_SCR_SEN_MASK                       (0x1U)
+#define LPI2C_SCR_SEN_SHIFT                      (0U)
+/*! SEN - Slave Enable
+ *  0b0..I2C Slave mode is disabled
+ *  0b1..I2C Slave mode is enabled
+ */
+#define LPI2C_SCR_SEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_SEN_SHIFT)) & LPI2C_SCR_SEN_MASK)
+#define LPI2C_SCR_RST_MASK                       (0x2U)
+#define LPI2C_SCR_RST_SHIFT                      (1U)
+/*! RST - Software Reset
+ *  0b0..Slave mode logic is not reset
+ *  0b1..Slave mode logic is reset
+ */
+#define LPI2C_SCR_RST(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RST_SHIFT)) & LPI2C_SCR_RST_MASK)
+#define LPI2C_SCR_FILTEN_MASK                    (0x10U)
+#define LPI2C_SCR_FILTEN_SHIFT                   (4U)
+/*! FILTEN - Filter Enable
+ *  0b0..Disable digital filter and output delay counter for slave mode
+ *  0b1..Enable digital filter and output delay counter for slave mode
+ */
+#define LPI2C_SCR_FILTEN(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTEN_SHIFT)) & LPI2C_SCR_FILTEN_MASK)
+#define LPI2C_SCR_FILTDZ_MASK                    (0x20U)
+#define LPI2C_SCR_FILTDZ_SHIFT                   (5U)
+/*! FILTDZ - Filter Doze Enable
+ *  0b0..Filter remains enabled in Doze mode
+ *  0b1..Filter is disabled in Doze mode
+ */
+#define LPI2C_SCR_FILTDZ(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_FILTDZ_SHIFT)) & LPI2C_SCR_FILTDZ_MASK)
+#define LPI2C_SCR_RTF_MASK                       (0x100U)
+#define LPI2C_SCR_RTF_SHIFT                      (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit Data Register is now empty
+ */
+#define LPI2C_SCR_RTF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RTF_SHIFT)) & LPI2C_SCR_RTF_MASK)
+#define LPI2C_SCR_RRF_MASK                       (0x200U)
+#define LPI2C_SCR_RRF_SHIFT                      (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive Data Register is now empty
+ */
+#define LPI2C_SCR_RRF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SCR_RRF_SHIFT)) & LPI2C_SCR_RRF_MASK)
+/*! @} */
+
+/*! @name SSR - Slave Status Register */
+/*! @{ */
+#define LPI2C_SSR_TDF_MASK                       (0x1U)
+#define LPI2C_SSR_TDF_SHIFT                      (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPI2C_SSR_TDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TDF_SHIFT)) & LPI2C_SSR_TDF_MASK)
+#define LPI2C_SSR_RDF_MASK                       (0x2U)
+#define LPI2C_SSR_RDF_SHIFT                      (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPI2C_SSR_RDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RDF_SHIFT)) & LPI2C_SSR_RDF_MASK)
+#define LPI2C_SSR_AVF_MASK                       (0x4U)
+#define LPI2C_SSR_AVF_SHIFT                      (2U)
+/*! AVF - Address Valid Flag
+ *  0b0..Address Status Register is not valid
+ *  0b1..Address Status Register is valid
+ */
+#define LPI2C_SSR_AVF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AVF_SHIFT)) & LPI2C_SSR_AVF_MASK)
+#define LPI2C_SSR_TAF_MASK                       (0x8U)
+#define LPI2C_SSR_TAF_SHIFT                      (3U)
+/*! TAF - Transmit ACK Flag
+ *  0b0..Transmit ACK/NACK is not required
+ *  0b1..Transmit ACK/NACK is required
+ */
+#define LPI2C_SSR_TAF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_TAF_SHIFT)) & LPI2C_SSR_TAF_MASK)
+#define LPI2C_SSR_RSF_MASK                       (0x100U)
+#define LPI2C_SSR_RSF_SHIFT                      (8U)
+/*! RSF - Repeated Start Flag
+ *  0b0..Slave has not detected a Repeated START condition
+ *  0b1..Slave has detected a Repeated START condition
+ */
+#define LPI2C_SSR_RSF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_RSF_SHIFT)) & LPI2C_SSR_RSF_MASK)
+#define LPI2C_SSR_SDF_MASK                       (0x200U)
+#define LPI2C_SSR_SDF_SHIFT                      (9U)
+/*! SDF - STOP Detect Flag
+ *  0b0..Slave has not detected a STOP condition
+ *  0b1..Slave has detected a STOP condition
+ */
+#define LPI2C_SSR_SDF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SDF_SHIFT)) & LPI2C_SSR_SDF_MASK)
+#define LPI2C_SSR_BEF_MASK                       (0x400U)
+#define LPI2C_SSR_BEF_SHIFT                      (10U)
+/*! BEF - Bit Error Flag
+ *  0b0..Slave has not detected a bit error
+ *  0b1..Slave has detected a bit error
+ */
+#define LPI2C_SSR_BEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BEF_SHIFT)) & LPI2C_SSR_BEF_MASK)
+#define LPI2C_SSR_FEF_MASK                       (0x800U)
+#define LPI2C_SSR_FEF_SHIFT                      (11U)
+/*! FEF - FIFO Error Flag
+ *  0b0..FIFO underflow or overflow was not detected
+ *  0b1..FIFO underflow or overflow was detected
+ */
+#define LPI2C_SSR_FEF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_FEF_SHIFT)) & LPI2C_SSR_FEF_MASK)
+#define LPI2C_SSR_AM0F_MASK                      (0x1000U)
+#define LPI2C_SSR_AM0F_SHIFT                     (12U)
+/*! AM0F - Address Match 0 Flag
+ *  0b0..Have not received an ADDR0 matching address
+ *  0b1..Have received an ADDR0 matching address
+ */
+#define LPI2C_SSR_AM0F(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM0F_SHIFT)) & LPI2C_SSR_AM0F_MASK)
+#define LPI2C_SSR_AM1F_MASK                      (0x2000U)
+#define LPI2C_SSR_AM1F_SHIFT                     (13U)
+/*! AM1F - Address Match 1 Flag
+ *  0b0..Have not received an ADDR1 or ADDR0/ADDR1 range matching address
+ *  0b1..Have received an ADDR1 or ADDR0/ADDR1 range matching address
+ */
+#define LPI2C_SSR_AM1F(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_AM1F_SHIFT)) & LPI2C_SSR_AM1F_MASK)
+#define LPI2C_SSR_GCF_MASK                       (0x4000U)
+#define LPI2C_SSR_GCF_SHIFT                      (14U)
+/*! GCF - General Call Flag
+ *  0b0..Slave has not detected the General Call Address or the General Call Address is disabled
+ *  0b1..Slave has detected the General Call Address
+ */
+#define LPI2C_SSR_GCF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_GCF_SHIFT)) & LPI2C_SSR_GCF_MASK)
+#define LPI2C_SSR_SARF_MASK                      (0x8000U)
+#define LPI2C_SSR_SARF_SHIFT                     (15U)
+/*! SARF - SMBus Alert Response Flag
+ *  0b0..SMBus Alert Response is disabled or not detected
+ *  0b1..SMBus Alert Response is enabled and detected
+ */
+#define LPI2C_SSR_SARF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SARF_SHIFT)) & LPI2C_SSR_SARF_MASK)
+#define LPI2C_SSR_SBF_MASK                       (0x1000000U)
+#define LPI2C_SSR_SBF_SHIFT                      (24U)
+/*! SBF - Slave Busy Flag
+ *  0b0..I2C Slave is idle
+ *  0b1..I2C Slave is busy
+ */
+#define LPI2C_SSR_SBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_SBF_SHIFT)) & LPI2C_SSR_SBF_MASK)
+#define LPI2C_SSR_BBF_MASK                       (0x2000000U)
+#define LPI2C_SSR_BBF_SHIFT                      (25U)
+/*! BBF - Bus Busy Flag
+ *  0b0..I2C Bus is idle
+ *  0b1..I2C Bus is busy
+ */
+#define LPI2C_SSR_BBF(x)                         (((uint32_t)(((uint32_t)(x)) << LPI2C_SSR_BBF_SHIFT)) & LPI2C_SSR_BBF_MASK)
+/*! @} */
+
+/*! @name SIER - Slave Interrupt Enable Register */
+/*! @{ */
+#define LPI2C_SIER_TDIE_MASK                     (0x1U)
+#define LPI2C_SIER_TDIE_SHIFT                    (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_TDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TDIE_SHIFT)) & LPI2C_SIER_TDIE_MASK)
+#define LPI2C_SIER_RDIE_MASK                     (0x2U)
+#define LPI2C_SIER_RDIE_SHIFT                    (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_RDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RDIE_SHIFT)) & LPI2C_SIER_RDIE_MASK)
+#define LPI2C_SIER_AVIE_MASK                     (0x4U)
+#define LPI2C_SIER_AVIE_SHIFT                    (2U)
+/*! AVIE - Address Valid Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_AVIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AVIE_SHIFT)) & LPI2C_SIER_AVIE_MASK)
+#define LPI2C_SIER_TAIE_MASK                     (0x8U)
+#define LPI2C_SIER_TAIE_SHIFT                    (3U)
+/*! TAIE - Transmit ACK Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_TAIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_TAIE_SHIFT)) & LPI2C_SIER_TAIE_MASK)
+#define LPI2C_SIER_RSIE_MASK                     (0x100U)
+#define LPI2C_SIER_RSIE_SHIFT                    (8U)
+/*! RSIE - Repeated Start Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_RSIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_RSIE_SHIFT)) & LPI2C_SIER_RSIE_MASK)
+#define LPI2C_SIER_SDIE_MASK                     (0x200U)
+#define LPI2C_SIER_SDIE_SHIFT                    (9U)
+/*! SDIE - STOP Detect Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_SDIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SDIE_SHIFT)) & LPI2C_SIER_SDIE_MASK)
+#define LPI2C_SIER_BEIE_MASK                     (0x400U)
+#define LPI2C_SIER_BEIE_SHIFT                    (10U)
+/*! BEIE - Bit Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_BEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_BEIE_SHIFT)) & LPI2C_SIER_BEIE_MASK)
+#define LPI2C_SIER_FEIE_MASK                     (0x800U)
+#define LPI2C_SIER_FEIE_SHIFT                    (11U)
+/*! FEIE - FIFO Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_FEIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_FEIE_SHIFT)) & LPI2C_SIER_FEIE_MASK)
+#define LPI2C_SIER_AM0IE_MASK                    (0x1000U)
+#define LPI2C_SIER_AM0IE_SHIFT                   (12U)
+/*! AM0IE - Address Match 0 Interrupt Enable
+ *  0b0..Enabled
+ *  0b1..Disabled
+ */
+#define LPI2C_SIER_AM0IE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM0IE_SHIFT)) & LPI2C_SIER_AM0IE_MASK)
+#define LPI2C_SIER_AM1F_MASK                     (0x2000U)
+#define LPI2C_SIER_AM1F_SHIFT                    (13U)
+/*! AM1F - Address Match 1 Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_AM1F(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_AM1F_SHIFT)) & LPI2C_SIER_AM1F_MASK)
+#define LPI2C_SIER_GCIE_MASK                     (0x4000U)
+#define LPI2C_SIER_GCIE_SHIFT                    (14U)
+/*! GCIE - General Call Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_GCIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_GCIE_SHIFT)) & LPI2C_SIER_GCIE_MASK)
+#define LPI2C_SIER_SARIE_MASK                    (0x8000U)
+#define LPI2C_SIER_SARIE_SHIFT                   (15U)
+/*! SARIE - SMBus Alert Response Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPI2C_SIER_SARIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SIER_SARIE_SHIFT)) & LPI2C_SIER_SARIE_MASK)
+/*! @} */
+
+/*! @name SDER - Slave DMA Enable Register */
+/*! @{ */
+#define LPI2C_SDER_TDDE_MASK                     (0x1U)
+#define LPI2C_SDER_TDDE_SHIFT                    (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_TDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_TDDE_SHIFT)) & LPI2C_SDER_TDDE_MASK)
+#define LPI2C_SDER_RDDE_MASK                     (0x2U)
+#define LPI2C_SDER_RDDE_SHIFT                    (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_RDDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_RDDE_SHIFT)) & LPI2C_SDER_RDDE_MASK)
+#define LPI2C_SDER_AVDE_MASK                     (0x4U)
+#define LPI2C_SDER_AVDE_SHIFT                    (2U)
+/*! AVDE - Address Valid DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPI2C_SDER_AVDE(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SDER_AVDE_SHIFT)) & LPI2C_SDER_AVDE_MASK)
+/*! @} */
+
+/*! @name SCFGR1 - Slave Configuration Register 1 */
+/*! @{ */
+#define LPI2C_SCFGR1_ADRSTALL_MASK               (0x1U)
+#define LPI2C_SCFGR1_ADRSTALL_SHIFT              (0U)
+/*! ADRSTALL - Address SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_ADRSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADRSTALL_SHIFT)) & LPI2C_SCFGR1_ADRSTALL_MASK)
+#define LPI2C_SCFGR1_RXSTALL_MASK                (0x2U)
+#define LPI2C_SCFGR1_RXSTALL_SHIFT               (1U)
+/*! RXSTALL - RX SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_RXSTALL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXSTALL_SHIFT)) & LPI2C_SCFGR1_RXSTALL_MASK)
+#define LPI2C_SCFGR1_TXDSTALL_MASK               (0x4U)
+#define LPI2C_SCFGR1_TXDSTALL_SHIFT              (2U)
+/*! TXDSTALL - TX Data SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_TXDSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXDSTALL_SHIFT)) & LPI2C_SCFGR1_TXDSTALL_MASK)
+#define LPI2C_SCFGR1_ACKSTALL_MASK               (0x8U)
+#define LPI2C_SCFGR1_ACKSTALL_SHIFT              (3U)
+/*! ACKSTALL - ACK SCL Stall
+ *  0b0..Clock stretching is disabled
+ *  0b1..Clock stretching is enabled
+ */
+#define LPI2C_SCFGR1_ACKSTALL(x)                 (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ACKSTALL_SHIFT)) & LPI2C_SCFGR1_ACKSTALL_MASK)
+#define LPI2C_SCFGR1_GCEN_MASK                   (0x100U)
+#define LPI2C_SCFGR1_GCEN_SHIFT                  (8U)
+/*! GCEN - General Call Enable
+ *  0b0..General Call address is disabled
+ *  0b1..General Call address is enabled
+ */
+#define LPI2C_SCFGR1_GCEN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_GCEN_SHIFT)) & LPI2C_SCFGR1_GCEN_MASK)
+#define LPI2C_SCFGR1_SAEN_MASK                   (0x200U)
+#define LPI2C_SCFGR1_SAEN_SHIFT                  (9U)
+/*! SAEN - SMBus Alert Enable
+ *  0b0..Disables match on SMBus Alert
+ *  0b1..Enables match on SMBus Alert
+ */
+#define LPI2C_SCFGR1_SAEN(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_SAEN_SHIFT)) & LPI2C_SCFGR1_SAEN_MASK)
+#define LPI2C_SCFGR1_TXCFG_MASK                  (0x400U)
+#define LPI2C_SCFGR1_TXCFG_SHIFT                 (10U)
+/*! TXCFG - Transmit Flag Configuration
+ *  0b0..Transmit Data Flag will only assert during a slave-transmit transfer when the Transmit Data register is empty
+ *  0b1..Transmit Data Flag will assert whenever the Transmit Data register is empty
+ */
+#define LPI2C_SCFGR1_TXCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_TXCFG_SHIFT)) & LPI2C_SCFGR1_TXCFG_MASK)
+#define LPI2C_SCFGR1_RXCFG_MASK                  (0x800U)
+#define LPI2C_SCFGR1_RXCFG_SHIFT                 (11U)
+/*! RXCFG - Receive Data Configuration
+ *  0b0..Reading the Receive Data register will return received data and clear the Receive Data flag (MSR[RDF]).
+ *  0b1..Reading the Receive Data register when the Address Valid flag (SSR[AVF])is set, will return the Address Status register and clear the Address Valid flag. Reading the Receive Data register when the Address Valid flag is clear, will return received data and clear the Receive Data flag (MSR[RDF]).
+ */
+#define LPI2C_SCFGR1_RXCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_RXCFG_SHIFT)) & LPI2C_SCFGR1_RXCFG_MASK)
+#define LPI2C_SCFGR1_IGNACK_MASK                 (0x1000U)
+#define LPI2C_SCFGR1_IGNACK_SHIFT                (12U)
+/*! IGNACK - Ignore NACK
+ *  0b0..Slave will end transfer when NACK is detected
+ *  0b1..Slave will not end transfer when NACK detected
+ */
+#define LPI2C_SCFGR1_IGNACK(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_IGNACK_SHIFT)) & LPI2C_SCFGR1_IGNACK_MASK)
+#define LPI2C_SCFGR1_HSMEN_MASK                  (0x2000U)
+#define LPI2C_SCFGR1_HSMEN_SHIFT                 (13U)
+/*! HSMEN - High Speed Mode Enable
+ *  0b0..Disables detection of HS-mode master code
+ *  0b1..Enables detection of HS-mode master code
+ */
+#define LPI2C_SCFGR1_HSMEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_HSMEN_SHIFT)) & LPI2C_SCFGR1_HSMEN_MASK)
+#define LPI2C_SCFGR1_ADDRCFG_MASK                (0x70000U)
+#define LPI2C_SCFGR1_ADDRCFG_SHIFT               (16U)
+/*! ADDRCFG - Address Configuration
+ *  0b000..Address match 0 (7-bit)
+ *  0b001..Address match 0 (10-bit)
+ *  0b010..Address match 0 (7-bit) or Address match 1 (7-bit)
+ *  0b011..Address match 0 (10-bit) or Address match 1 (10-bit)
+ *  0b100..Address match 0 (7-bit) or Address match 1 (10-bit)
+ *  0b101..Address match 0 (10-bit) or Address match 1 (7-bit)
+ *  0b110..From Address match 0 (7-bit) to Address match 1 (7-bit)
+ *  0b111..From Address match 0 (10-bit) to Address match 1 (10-bit)
+ */
+#define LPI2C_SCFGR1_ADDRCFG(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR1_ADDRCFG_SHIFT)) & LPI2C_SCFGR1_ADDRCFG_MASK)
+/*! @} */
+
+/*! @name SCFGR2 - Slave Configuration Register 2 */
+/*! @{ */
+#define LPI2C_SCFGR2_CLKHOLD_MASK                (0xFU)
+#define LPI2C_SCFGR2_CLKHOLD_SHIFT               (0U)
+#define LPI2C_SCFGR2_CLKHOLD(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_CLKHOLD_SHIFT)) & LPI2C_SCFGR2_CLKHOLD_MASK)
+#define LPI2C_SCFGR2_DATAVD_MASK                 (0x3F00U)
+#define LPI2C_SCFGR2_DATAVD_SHIFT                (8U)
+#define LPI2C_SCFGR2_DATAVD(x)                   (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_DATAVD_SHIFT)) & LPI2C_SCFGR2_DATAVD_MASK)
+#define LPI2C_SCFGR2_FILTSCL_MASK                (0xF0000U)
+#define LPI2C_SCFGR2_FILTSCL_SHIFT               (16U)
+#define LPI2C_SCFGR2_FILTSCL(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSCL_SHIFT)) & LPI2C_SCFGR2_FILTSCL_MASK)
+#define LPI2C_SCFGR2_FILTSDA_MASK                (0xF000000U)
+#define LPI2C_SCFGR2_FILTSDA_SHIFT               (24U)
+#define LPI2C_SCFGR2_FILTSDA(x)                  (((uint32_t)(((uint32_t)(x)) << LPI2C_SCFGR2_FILTSDA_SHIFT)) & LPI2C_SCFGR2_FILTSDA_MASK)
+/*! @} */
+
+/*! @name SAMR - Slave Address Match Register */
+/*! @{ */
+#define LPI2C_SAMR_ADDR0_MASK                    (0x7FEU)
+#define LPI2C_SAMR_ADDR0_SHIFT                   (1U)
+#define LPI2C_SAMR_ADDR0(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR0_SHIFT)) & LPI2C_SAMR_ADDR0_MASK)
+#define LPI2C_SAMR_ADDR1_MASK                    (0x7FE0000U)
+#define LPI2C_SAMR_ADDR1_SHIFT                   (17U)
+#define LPI2C_SAMR_ADDR1(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SAMR_ADDR1_SHIFT)) & LPI2C_SAMR_ADDR1_MASK)
+/*! @} */
+
+/*! @name SASR - Slave Address Status Register */
+/*! @{ */
+#define LPI2C_SASR_RADDR_MASK                    (0x7FFU)
+#define LPI2C_SASR_RADDR_SHIFT                   (0U)
+#define LPI2C_SASR_RADDR(x)                      (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_RADDR_SHIFT)) & LPI2C_SASR_RADDR_MASK)
+#define LPI2C_SASR_ANV_MASK                      (0x4000U)
+#define LPI2C_SASR_ANV_SHIFT                     (14U)
+/*! ANV - Address Not Valid
+ *  0b0..Received Address (RADDR) is valid
+ *  0b1..Received Address (RADDR) is not valid
+ */
+#define LPI2C_SASR_ANV(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SASR_ANV_SHIFT)) & LPI2C_SASR_ANV_MASK)
+/*! @} */
+
+/*! @name STAR - Slave Transmit ACK Register */
+/*! @{ */
+#define LPI2C_STAR_TXNACK_MASK                   (0x1U)
+#define LPI2C_STAR_TXNACK_SHIFT                  (0U)
+/*! TXNACK - Transmit NACK
+ *  0b0..Write a Transmit ACK for each received word
+ *  0b1..Write a Transmit NACK for each received word
+ */
+#define LPI2C_STAR_TXNACK(x)                     (((uint32_t)(((uint32_t)(x)) << LPI2C_STAR_TXNACK_SHIFT)) & LPI2C_STAR_TXNACK_MASK)
+/*! @} */
+
+/*! @name STDR - Slave Transmit Data Register */
+/*! @{ */
+#define LPI2C_STDR_DATA_MASK                     (0xFFU)
+#define LPI2C_STDR_DATA_SHIFT                    (0U)
+#define LPI2C_STDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_STDR_DATA_SHIFT)) & LPI2C_STDR_DATA_MASK)
+/*! @} */
+
+/*! @name SRDR - Slave Receive Data Register */
+/*! @{ */
+#define LPI2C_SRDR_DATA_MASK                     (0xFFU)
+#define LPI2C_SRDR_DATA_SHIFT                    (0U)
+#define LPI2C_SRDR_DATA(x)                       (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_DATA_SHIFT)) & LPI2C_SRDR_DATA_MASK)
+#define LPI2C_SRDR_RXEMPTY_MASK                  (0x4000U)
+#define LPI2C_SRDR_RXEMPTY_SHIFT                 (14U)
+/*! RXEMPTY - RX Empty
+ *  0b0..The Receive Data Register is not empty
+ *  0b1..The Receive Data Register is empty
+ */
+#define LPI2C_SRDR_RXEMPTY(x)                    (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_RXEMPTY_SHIFT)) & LPI2C_SRDR_RXEMPTY_MASK)
+#define LPI2C_SRDR_SOF_MASK                      (0x8000U)
+#define LPI2C_SRDR_SOF_SHIFT                     (15U)
+/*! SOF - Start Of Frame
+ *  0b0..Indicates this is not the first data word since a (repeated) START or STOP condition
+ *  0b1..Indicates this is the first data word since a (repeated) START or STOP condition
+ */
+#define LPI2C_SRDR_SOF(x)                        (((uint32_t)(((uint32_t)(x)) << LPI2C_SRDR_SOF_SHIFT)) & LPI2C_SRDR_SOF_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPI2C_Register_Masks */
+
+
+/* LPI2C - Peripheral instance base addresses */
+/** Peripheral LPI2C0 base address */
+#define LPI2C0_BASE                              (0x4003A000u)
+/** Peripheral LPI2C0 base pointer */
+#define LPI2C0                                   ((LPI2C_Type *)LPI2C0_BASE)
+/** Peripheral LPI2C1 base address */
+#define LPI2C1_BASE                              (0x4003B000u)
+/** Peripheral LPI2C1 base pointer */
+#define LPI2C1                                   ((LPI2C_Type *)LPI2C1_BASE)
+/** Peripheral LPI2C2 base address */
+#define LPI2C2_BASE                              (0x4003C000u)
+/** Peripheral LPI2C2 base pointer */
+#define LPI2C2                                   ((LPI2C_Type *)LPI2C2_BASE)
+/** Peripheral LPI2C3 base address */
+#define LPI2C3_BASE                              (0x4102E000u)
+/** Peripheral LPI2C3 base pointer */
+#define LPI2C3                                   ((LPI2C_Type *)LPI2C3_BASE)
+/** Array initializer of LPI2C peripheral base addresses */
+#define LPI2C_BASE_ADDRS                         { LPI2C0_BASE, LPI2C1_BASE, LPI2C2_BASE, LPI2C3_BASE }
+/** Array initializer of LPI2C peripheral base pointers */
+#define LPI2C_BASE_PTRS                          { LPI2C0, LPI2C1, LPI2C2, LPI2C3 }
+/** Interrupt vectors for the LPI2C peripheral type */
+#define LPI2C_IRQS                               { LPI2C0_IRQn, LPI2C1_IRQn, LPI2C2_IRQn, LPI2C3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPI2C_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPIT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPIT_Peripheral_Access_Layer LPIT Peripheral Access Layer
+ * @{
+ */
+
+/** LPIT - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t MCR;                               /**< Module Control Register, offset: 0x8 */
+  __IO uint32_t MSR;                               /**< Module Status Register, offset: 0xC */
+  __IO uint32_t MIER;                              /**< Module Interrupt Enable Register, offset: 0x10 */
+  __IO uint32_t SETTEN;                            /**< Set Timer Enable Register, offset: 0x14 */
+  __O  uint32_t CLRTEN;                            /**< Clear Timer Enable Register, offset: 0x18 */
+       uint8_t RESERVED_0[4];
+  struct {                                         /* offset: 0x20, array step: 0x10 */
+    __IO uint32_t TVAL;                              /**< Timer Value Register, array offset: 0x20, array step: 0x10 */
+    __I  uint32_t CVAL;                              /**< Current Timer Value, array offset: 0x24, array step: 0x10 */
+    __IO uint32_t TCTRL;                             /**< Timer Control Register, array offset: 0x28, array step: 0x10 */
+         uint8_t RESERVED_0[4];
+  } CHANNEL[4];
+} LPIT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPIT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPIT_Register_Masks LPIT Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPIT_VERID_FEATURE_MASK                  (0xFFFFU)
+#define LPIT_VERID_FEATURE_SHIFT                 (0U)
+#define LPIT_VERID_FEATURE(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_FEATURE_SHIFT)) & LPIT_VERID_FEATURE_MASK)
+#define LPIT_VERID_MINOR_MASK                    (0xFF0000U)
+#define LPIT_VERID_MINOR_SHIFT                   (16U)
+#define LPIT_VERID_MINOR(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_MINOR_SHIFT)) & LPIT_VERID_MINOR_MASK)
+#define LPIT_VERID_MAJOR_MASK                    (0xFF000000U)
+#define LPIT_VERID_MAJOR_SHIFT                   (24U)
+#define LPIT_VERID_MAJOR(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_VERID_MAJOR_SHIFT)) & LPIT_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPIT_PARAM_CHANNEL_MASK                  (0xFFU)
+#define LPIT_PARAM_CHANNEL_SHIFT                 (0U)
+#define LPIT_PARAM_CHANNEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_PARAM_CHANNEL_SHIFT)) & LPIT_PARAM_CHANNEL_MASK)
+#define LPIT_PARAM_EXT_TRIG_MASK                 (0xFF00U)
+#define LPIT_PARAM_EXT_TRIG_SHIFT                (8U)
+#define LPIT_PARAM_EXT_TRIG(x)                   (((uint32_t)(((uint32_t)(x)) << LPIT_PARAM_EXT_TRIG_SHIFT)) & LPIT_PARAM_EXT_TRIG_MASK)
+/*! @} */
+
+/*! @name MCR - Module Control Register */
+/*! @{ */
+#define LPIT_MCR_M_CEN_MASK                      (0x1U)
+#define LPIT_MCR_M_CEN_SHIFT                     (0U)
+/*! M_CEN - Module Clock Enable
+ *  0b0..Disable peripheral clock to timers
+ *  0b1..Enable peripheral clock to timers
+ */
+#define LPIT_MCR_M_CEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_M_CEN_SHIFT)) & LPIT_MCR_M_CEN_MASK)
+#define LPIT_MCR_SW_RST_MASK                     (0x2U)
+#define LPIT_MCR_SW_RST_SHIFT                    (1U)
+/*! SW_RST - Software Reset Bit
+ *  0b0..Timer channels and registers are not reset
+ *  0b1..Reset timer channels and registers
+ */
+#define LPIT_MCR_SW_RST(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_SW_RST_SHIFT)) & LPIT_MCR_SW_RST_MASK)
+#define LPIT_MCR_DOZE_EN_MASK                    (0x4U)
+#define LPIT_MCR_DOZE_EN_SHIFT                   (2U)
+/*! DOZE_EN - DOZE Mode Enable Bit
+ *  0b0..Stop timer channels in DOZE mode
+ *  0b1..Allow timer channels to continue to run in DOZE mode
+ */
+#define LPIT_MCR_DOZE_EN(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_DOZE_EN_SHIFT)) & LPIT_MCR_DOZE_EN_MASK)
+#define LPIT_MCR_DBG_EN_MASK                     (0x8U)
+#define LPIT_MCR_DBG_EN_SHIFT                    (3U)
+/*! DBG_EN - Debug Enable Bit
+ *  0b0..Stop timer channels in Debug mode
+ *  0b1..Allow timer channels to continue to run in Debug mode
+ */
+#define LPIT_MCR_DBG_EN(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_MCR_DBG_EN_SHIFT)) & LPIT_MCR_DBG_EN_MASK)
+/*! @} */
+
+/*! @name MSR - Module Status Register */
+/*! @{ */
+#define LPIT_MSR_TIF0_MASK                       (0x1U)
+#define LPIT_MSR_TIF0_SHIFT                      (0U)
+/*! TIF0 - Channel 0 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF0(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF0_SHIFT)) & LPIT_MSR_TIF0_MASK)
+#define LPIT_MSR_TIF1_MASK                       (0x2U)
+#define LPIT_MSR_TIF1_SHIFT                      (1U)
+/*! TIF1 - Channel 1 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF1(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF1_SHIFT)) & LPIT_MSR_TIF1_MASK)
+#define LPIT_MSR_TIF2_MASK                       (0x4U)
+#define LPIT_MSR_TIF2_SHIFT                      (2U)
+/*! TIF2 - Channel 2 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF2(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF2_SHIFT)) & LPIT_MSR_TIF2_MASK)
+#define LPIT_MSR_TIF3_MASK                       (0x8U)
+#define LPIT_MSR_TIF3_SHIFT                      (3U)
+/*! TIF3 - Channel 3 Timer Interrupt Flag
+ *  0b0..Timer has not timed out
+ *  0b1..Timeout has occurred (timer has timed out)
+ */
+#define LPIT_MSR_TIF3(x)                         (((uint32_t)(((uint32_t)(x)) << LPIT_MSR_TIF3_SHIFT)) & LPIT_MSR_TIF3_MASK)
+/*! @} */
+
+/*! @name MIER - Module Interrupt Enable Register */
+/*! @{ */
+#define LPIT_MIER_TIE0_MASK                      (0x1U)
+#define LPIT_MIER_TIE0_SHIFT                     (0U)
+/*! TIE0 - Channel 0 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE0(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE0_SHIFT)) & LPIT_MIER_TIE0_MASK)
+#define LPIT_MIER_TIE1_MASK                      (0x2U)
+#define LPIT_MIER_TIE1_SHIFT                     (1U)
+/*! TIE1 - Channel 1 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE1(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE1_SHIFT)) & LPIT_MIER_TIE1_MASK)
+#define LPIT_MIER_TIE2_MASK                      (0x4U)
+#define LPIT_MIER_TIE2_SHIFT                     (2U)
+/*! TIE2 - Channel 2 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE2(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE2_SHIFT)) & LPIT_MIER_TIE2_MASK)
+#define LPIT_MIER_TIE3_MASK                      (0x8U)
+#define LPIT_MIER_TIE3_SHIFT                     (3U)
+/*! TIE3 - Channel 3 Timer Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPIT_MIER_TIE3(x)                        (((uint32_t)(((uint32_t)(x)) << LPIT_MIER_TIE3_SHIFT)) & LPIT_MIER_TIE3_MASK)
+/*! @} */
+
+/*! @name SETTEN - Set Timer Enable Register */
+/*! @{ */
+#define LPIT_SETTEN_SET_T_EN_0_MASK              (0x1U)
+#define LPIT_SETTEN_SET_T_EN_0_SHIFT             (0U)
+/*! SET_T_EN_0 - Set Timer 0 Enable
+ *  0b0..No effect
+ *  0b1..Enables Timer Channel 0
+ */
+#define LPIT_SETTEN_SET_T_EN_0(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_0_SHIFT)) & LPIT_SETTEN_SET_T_EN_0_MASK)
+#define LPIT_SETTEN_SET_T_EN_1_MASK              (0x2U)
+#define LPIT_SETTEN_SET_T_EN_1_SHIFT             (1U)
+/*! SET_T_EN_1 - Set Timer 1 Enable
+ *  0b0..No Effect
+ *  0b1..Enables Timer Channel 1
+ */
+#define LPIT_SETTEN_SET_T_EN_1(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_1_SHIFT)) & LPIT_SETTEN_SET_T_EN_1_MASK)
+#define LPIT_SETTEN_SET_T_EN_2_MASK              (0x4U)
+#define LPIT_SETTEN_SET_T_EN_2_SHIFT             (2U)
+/*! SET_T_EN_2 - Set Timer 2 Enable
+ *  0b0..No Effect
+ *  0b1..Enables Timer Channel 2
+ */
+#define LPIT_SETTEN_SET_T_EN_2(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_2_SHIFT)) & LPIT_SETTEN_SET_T_EN_2_MASK)
+#define LPIT_SETTEN_SET_T_EN_3_MASK              (0x8U)
+#define LPIT_SETTEN_SET_T_EN_3_SHIFT             (3U)
+/*! SET_T_EN_3 - Set Timer 3 Enable
+ *  0b0..No effect
+ *  0b1..Enables Timer Channel 3
+ */
+#define LPIT_SETTEN_SET_T_EN_3(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_SETTEN_SET_T_EN_3_SHIFT)) & LPIT_SETTEN_SET_T_EN_3_MASK)
+/*! @} */
+
+/*! @name CLRTEN - Clear Timer Enable Register */
+/*! @{ */
+#define LPIT_CLRTEN_CLR_T_EN_0_MASK              (0x1U)
+#define LPIT_CLRTEN_CLR_T_EN_0_SHIFT             (0U)
+/*! CLR_T_EN_0 - Clear Timer 0 Enable
+ *  0b0..No action
+ *  0b1..Clear the Timer Enable bit (TCTRL0[T_EN]) for Timer Channel 0
+ */
+#define LPIT_CLRTEN_CLR_T_EN_0(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_0_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_0_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_1_MASK              (0x2U)
+#define LPIT_CLRTEN_CLR_T_EN_1_SHIFT             (1U)
+/*! CLR_T_EN_1 - Clear Timer 1 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL1[T_EN]) for Timer Channel 1
+ */
+#define LPIT_CLRTEN_CLR_T_EN_1(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_1_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_1_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_2_MASK              (0x4U)
+#define LPIT_CLRTEN_CLR_T_EN_2_SHIFT             (2U)
+/*! CLR_T_EN_2 - Clear Timer 2 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL2[T_EN]) for Timer Channel 2
+ */
+#define LPIT_CLRTEN_CLR_T_EN_2(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_2_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_2_MASK)
+#define LPIT_CLRTEN_CLR_T_EN_3_MASK              (0x8U)
+#define LPIT_CLRTEN_CLR_T_EN_3_SHIFT             (3U)
+/*! CLR_T_EN_3 - Clear Timer 3 Enable
+ *  0b0..No Action
+ *  0b1..Clear the Timer Enable bit (TCTRL3[T_EN]) for Timer Channel 3
+ */
+#define LPIT_CLRTEN_CLR_T_EN_3(x)                (((uint32_t)(((uint32_t)(x)) << LPIT_CLRTEN_CLR_T_EN_3_SHIFT)) & LPIT_CLRTEN_CLR_T_EN_3_MASK)
+/*! @} */
+
+/*! @name TVAL - Timer Value Register */
+/*! @{ */
+#define LPIT_TVAL_TMR_VAL_MASK                   (0xFFFFFFFFU)
+#define LPIT_TVAL_TMR_VAL_SHIFT                  (0U)
+/*! TMR_VAL - Timer Value
+ *  0b00000000000000000000000000000000..Invalid load value in compare mode
+ *  0b00000000000000000000000000000001..Invalid load value in compare mode
+ *  0b00000000000000000000000000000010-0b11111111111111111111111111111111..In compare mode: the value to be loaded; in capture mode, the value of the timer
+ */
+#define LPIT_TVAL_TMR_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << LPIT_TVAL_TMR_VAL_SHIFT)) & LPIT_TVAL_TMR_VAL_MASK)
+/*! @} */
+
+/* The count of LPIT_TVAL */
+#define LPIT_TVAL_COUNT                          (4U)
+
+/*! @name CVAL - Current Timer Value */
+/*! @{ */
+#define LPIT_CVAL_TMR_CUR_VAL_MASK               (0xFFFFFFFFU)
+#define LPIT_CVAL_TMR_CUR_VAL_SHIFT              (0U)
+#define LPIT_CVAL_TMR_CUR_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << LPIT_CVAL_TMR_CUR_VAL_SHIFT)) & LPIT_CVAL_TMR_CUR_VAL_MASK)
+/*! @} */
+
+/* The count of LPIT_CVAL */
+#define LPIT_CVAL_COUNT                          (4U)
+
+/*! @name TCTRL - Timer Control Register */
+/*! @{ */
+#define LPIT_TCTRL_T_EN_MASK                     (0x1U)
+#define LPIT_TCTRL_T_EN_SHIFT                    (0U)
+/*! T_EN - Timer Enable
+ *  0b0..Timer Channel is disabled
+ *  0b1..Timer Channel is enabled
+ */
+#define LPIT_TCTRL_T_EN(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_T_EN_SHIFT)) & LPIT_TCTRL_T_EN_MASK)
+#define LPIT_TCTRL_CHAIN_MASK                    (0x2U)
+#define LPIT_TCTRL_CHAIN_SHIFT                   (1U)
+/*! CHAIN - Chain Channel
+ *  0b0..Channel Chaining is disabled. The channel timer runs independently.
+ *  0b1..Channel Chaining is enabled. The timer decrements on the previous channel's timeout.
+ */
+#define LPIT_TCTRL_CHAIN(x)                      (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_CHAIN_SHIFT)) & LPIT_TCTRL_CHAIN_MASK)
+#define LPIT_TCTRL_MODE_MASK                     (0xCU)
+#define LPIT_TCTRL_MODE_SHIFT                    (2U)
+/*! MODE - Timer Operation Mode
+ *  0b00..32-bit Periodic Counter
+ *  0b01..Dual 16-bit Periodic Counter
+ *  0b10..32-bit Trigger Accumulator
+ *  0b11..32-bit Trigger Input Capture
+ */
+#define LPIT_TCTRL_MODE(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_MODE_SHIFT)) & LPIT_TCTRL_MODE_MASK)
+#define LPIT_TCTRL_TSOT_MASK                     (0x10000U)
+#define LPIT_TCTRL_TSOT_SHIFT                    (16U)
+/*! TSOT - Timer Start On Trigger
+ *  0b0..Timer starts to decrement immediately based on the restart condition (controlled by the Timer Stop On Interrupt bit (TSOI))
+ *  0b1..Timer starts to decrement when a rising edge on a selected trigger is detected
+ */
+#define LPIT_TCTRL_TSOT(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TSOT_SHIFT)) & LPIT_TCTRL_TSOT_MASK)
+#define LPIT_TCTRL_TSOI_MASK                     (0x20000U)
+#define LPIT_TCTRL_TSOI_SHIFT                    (17U)
+/*! TSOI - Timer Stop On Interrupt
+ *  0b0..The channel timer does not stop after timeout
+ *  0b1..The channel timer will stop after a timeout, and the channel timer will restart based on Timer Start On Trigger bit (TSOT). When TSOT = 0, the channel timer will restart after a rising edge on the Timer Enable bit (T_EN) is detected (which means that the timer channel is disabled and then enabled). When TSOT = 1, the channel timer will restart after a rising edge on the selected trigger is detected.
+ */
+#define LPIT_TCTRL_TSOI(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TSOI_SHIFT)) & LPIT_TCTRL_TSOI_MASK)
+#define LPIT_TCTRL_TROT_MASK                     (0x40000U)
+#define LPIT_TCTRL_TROT_SHIFT                    (18U)
+/*! TROT - Timer Reload On Trigger
+ *  0b0..Timer will not reload on the selected trigger
+ *  0b1..Timer will reload on the selected trigger
+ */
+#define LPIT_TCTRL_TROT(x)                       (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TROT_SHIFT)) & LPIT_TCTRL_TROT_MASK)
+#define LPIT_TCTRL_TRG_SRC_MASK                  (0x800000U)
+#define LPIT_TCTRL_TRG_SRC_SHIFT                 (23U)
+/*! TRG_SRC - Trigger Source
+ *  0b0..Selects external triggers
+ *  0b1..Selects internal triggers
+ */
+#define LPIT_TCTRL_TRG_SRC(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TRG_SRC_SHIFT)) & LPIT_TCTRL_TRG_SRC_MASK)
+#define LPIT_TCTRL_TRG_SEL_MASK                  (0xF000000U)
+#define LPIT_TCTRL_TRG_SEL_SHIFT                 (24U)
+/*! TRG_SEL - Trigger Select
+ *  0b0000-0b0011..Timer channel 0 - 3 trigger source is selected
+ *  0b0100-0b1111..Reserved
+ */
+#define LPIT_TCTRL_TRG_SEL(x)                    (((uint32_t)(((uint32_t)(x)) << LPIT_TCTRL_TRG_SEL_SHIFT)) & LPIT_TCTRL_TRG_SEL_MASK)
+/*! @} */
+
+/* The count of LPIT_TCTRL */
+#define LPIT_TCTRL_COUNT                         (4U)
+
+
+/*!
+ * @}
+ */ /* end of group LPIT_Register_Masks */
+
+
+/* LPIT - Peripheral instance base addresses */
+/** Peripheral LPIT0 base address */
+#define LPIT0_BASE                               (0x40030000u)
+/** Peripheral LPIT0 base pointer */
+#define LPIT0                                    ((LPIT_Type *)LPIT0_BASE)
+/** Peripheral LPIT1 base address */
+#define LPIT1_BASE                               (0x4102A000u)
+/** Peripheral LPIT1 base pointer */
+#define LPIT1                                    ((LPIT_Type *)LPIT1_BASE)
+/** Array initializer of LPIT peripheral base addresses */
+#define LPIT_BASE_ADDRS                          { LPIT0_BASE, LPIT1_BASE }
+/** Array initializer of LPIT peripheral base pointers */
+#define LPIT_BASE_PTRS                           { LPIT0, LPIT1 }
+/** Interrupt vectors for the LPIT peripheral type */
+#define LPIT_IRQS                                { { LPIT0_IRQn, LPIT0_IRQn, LPIT0_IRQn, LPIT0_IRQn }, { LPIT1_IRQn, LPIT1_IRQn, LPIT1_IRQn, LPIT1_IRQn } }
+
+/*!
+ * @}
+ */ /* end of group LPIT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPSPI Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPSPI_Peripheral_Access_Layer LPSPI Peripheral Access Layer
+ * @{
+ */
+
+/** LPSPI - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x14 */
+  __IO uint32_t IER;                               /**< Interrupt Enable Register, offset: 0x18 */
+  __IO uint32_t DER;                               /**< DMA Enable Register, offset: 0x1C */
+  __IO uint32_t CFGR0;                             /**< Configuration Register 0, offset: 0x20 */
+  __IO uint32_t CFGR1;                             /**< Configuration Register 1, offset: 0x24 */
+       uint8_t RESERVED_1[8];
+  __IO uint32_t DMR0;                              /**< Data Match Register 0, offset: 0x30 */
+  __IO uint32_t DMR1;                              /**< Data Match Register 1, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t CCR;                               /**< Clock Configuration Register, offset: 0x40 */
+       uint8_t RESERVED_3[20];
+  __IO uint32_t FCR;                               /**< FIFO Control Register, offset: 0x58 */
+  __I  uint32_t FSR;                               /**< FIFO Status Register, offset: 0x5C */
+  __IO uint32_t TCR;                               /**< Transmit Command Register, offset: 0x60 */
+  __O  uint32_t TDR;                               /**< Transmit Data Register, offset: 0x64 */
+       uint8_t RESERVED_4[8];
+  __I  uint32_t RSR;                               /**< Receive Status Register, offset: 0x70 */
+  __I  uint32_t RDR;                               /**< Receive Data Register, offset: 0x74 */
+} LPSPI_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPSPI Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPSPI_Register_Masks LPSPI Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPSPI_VERID_FEATURE_MASK                 (0xFFFFU)
+#define LPSPI_VERID_FEATURE_SHIFT                (0U)
+/*! FEATURE - Module Identification Number
+ *  0b0000000000000100..Standard feature set supporting a 32-bit shift register.
+ */
+#define LPSPI_VERID_FEATURE(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_FEATURE_SHIFT)) & LPSPI_VERID_FEATURE_MASK)
+#define LPSPI_VERID_MINOR_MASK                   (0xFF0000U)
+#define LPSPI_VERID_MINOR_SHIFT                  (16U)
+#define LPSPI_VERID_MINOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MINOR_SHIFT)) & LPSPI_VERID_MINOR_MASK)
+#define LPSPI_VERID_MAJOR_MASK                   (0xFF000000U)
+#define LPSPI_VERID_MAJOR_SHIFT                  (24U)
+#define LPSPI_VERID_MAJOR(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_VERID_MAJOR_SHIFT)) & LPSPI_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPSPI_PARAM_TXFIFO_MASK                  (0xFFU)
+#define LPSPI_PARAM_TXFIFO_SHIFT                 (0U)
+#define LPSPI_PARAM_TXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_TXFIFO_SHIFT)) & LPSPI_PARAM_TXFIFO_MASK)
+#define LPSPI_PARAM_RXFIFO_MASK                  (0xFF00U)
+#define LPSPI_PARAM_RXFIFO_SHIFT                 (8U)
+#define LPSPI_PARAM_RXFIFO(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_PARAM_RXFIFO_SHIFT)) & LPSPI_PARAM_RXFIFO_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define LPSPI_CR_MEN_MASK                        (0x1U)
+#define LPSPI_CR_MEN_SHIFT                       (0U)
+/*! MEN - Module Enable
+ *  0b0..Module is disabled
+ *  0b1..Module is enabled
+ */
+#define LPSPI_CR_MEN(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_MEN_SHIFT)) & LPSPI_CR_MEN_MASK)
+#define LPSPI_CR_RST_MASK                        (0x2U)
+#define LPSPI_CR_RST_SHIFT                       (1U)
+/*! RST - Software Reset
+ *  0b0..Master logic is not reset
+ *  0b1..Master logic is reset
+ */
+#define LPSPI_CR_RST(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RST_SHIFT)) & LPSPI_CR_RST_MASK)
+#define LPSPI_CR_DOZEN_MASK                      (0x4U)
+#define LPSPI_CR_DOZEN_SHIFT                     (2U)
+/*! DOZEN - Doze mode enable
+ *  0b0..Module is enabled in Doze mode
+ *  0b1..Module is disabled in Doze mode
+ */
+#define LPSPI_CR_DOZEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DOZEN_SHIFT)) & LPSPI_CR_DOZEN_MASK)
+#define LPSPI_CR_DBGEN_MASK                      (0x8U)
+#define LPSPI_CR_DBGEN_SHIFT                     (3U)
+/*! DBGEN - Debug Enable
+ *  0b0..Module is disabled in debug mode
+ *  0b1..Module is enabled in debug mode
+ */
+#define LPSPI_CR_DBGEN(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_DBGEN_SHIFT)) & LPSPI_CR_DBGEN_MASK)
+#define LPSPI_CR_RTF_MASK                        (0x100U)
+#define LPSPI_CR_RTF_SHIFT                       (8U)
+/*! RTF - Reset Transmit FIFO
+ *  0b0..No effect
+ *  0b1..Transmit FIFO is reset
+ */
+#define LPSPI_CR_RTF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RTF_SHIFT)) & LPSPI_CR_RTF_MASK)
+#define LPSPI_CR_RRF_MASK                        (0x200U)
+#define LPSPI_CR_RRF_SHIFT                       (9U)
+/*! RRF - Reset Receive FIFO
+ *  0b0..No effect
+ *  0b1..Receive FIFO is reset
+ */
+#define LPSPI_CR_RRF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_CR_RRF_SHIFT)) & LPSPI_CR_RRF_MASK)
+/*! @} */
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define LPSPI_SR_TDF_MASK                        (0x1U)
+#define LPSPI_SR_TDF_SHIFT                       (0U)
+/*! TDF - Transmit Data Flag
+ *  0b0..Transmit data not requested
+ *  0b1..Transmit data is requested
+ */
+#define LPSPI_SR_TDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TDF_SHIFT)) & LPSPI_SR_TDF_MASK)
+#define LPSPI_SR_RDF_MASK                        (0x2U)
+#define LPSPI_SR_RDF_SHIFT                       (1U)
+/*! RDF - Receive Data Flag
+ *  0b0..Receive Data is not ready
+ *  0b1..Receive data is ready
+ */
+#define LPSPI_SR_RDF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_RDF_SHIFT)) & LPSPI_SR_RDF_MASK)
+#define LPSPI_SR_WCF_MASK                        (0x100U)
+#define LPSPI_SR_WCF_SHIFT                       (8U)
+/*! WCF - Word Complete Flag
+ *  0b0..Transfer of a received word has not yet completed
+ *  0b1..Transfer of a received word has completed
+ */
+#define LPSPI_SR_WCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_WCF_SHIFT)) & LPSPI_SR_WCF_MASK)
+#define LPSPI_SR_FCF_MASK                        (0x200U)
+#define LPSPI_SR_FCF_SHIFT                       (9U)
+/*! FCF - Frame Complete Flag
+ *  0b0..Frame transfer has not completed
+ *  0b1..Frame transfer has completed
+ */
+#define LPSPI_SR_FCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_FCF_SHIFT)) & LPSPI_SR_FCF_MASK)
+#define LPSPI_SR_TCF_MASK                        (0x400U)
+#define LPSPI_SR_TCF_SHIFT                       (10U)
+/*! TCF - Transfer Complete Flag
+ *  0b0..All transfers have not completed
+ *  0b1..All transfers have completed
+ */
+#define LPSPI_SR_TCF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TCF_SHIFT)) & LPSPI_SR_TCF_MASK)
+#define LPSPI_SR_TEF_MASK                        (0x800U)
+#define LPSPI_SR_TEF_SHIFT                       (11U)
+/*! TEF - Transmit Error Flag
+ *  0b0..Transmit FIFO underrun has not occurred
+ *  0b1..Transmit FIFO underrun has occurred
+ */
+#define LPSPI_SR_TEF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_TEF_SHIFT)) & LPSPI_SR_TEF_MASK)
+#define LPSPI_SR_REF_MASK                        (0x1000U)
+#define LPSPI_SR_REF_SHIFT                       (12U)
+/*! REF - Receive Error Flag
+ *  0b0..Receive FIFO has not overflowed
+ *  0b1..Receive FIFO has overflowed
+ */
+#define LPSPI_SR_REF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_REF_SHIFT)) & LPSPI_SR_REF_MASK)
+#define LPSPI_SR_DMF_MASK                        (0x2000U)
+#define LPSPI_SR_DMF_SHIFT                       (13U)
+/*! DMF - Data Match Flag
+ *  0b0..Have not received matching data
+ *  0b1..Have received matching data
+ */
+#define LPSPI_SR_DMF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_DMF_SHIFT)) & LPSPI_SR_DMF_MASK)
+#define LPSPI_SR_MBF_MASK                        (0x1000000U)
+#define LPSPI_SR_MBF_SHIFT                       (24U)
+/*! MBF - Module Busy Flag
+ *  0b0..LPSPI is idle
+ *  0b1..LPSPI is busy
+ */
+#define LPSPI_SR_MBF(x)                          (((uint32_t)(((uint32_t)(x)) << LPSPI_SR_MBF_SHIFT)) & LPSPI_SR_MBF_MASK)
+/*! @} */
+
+/*! @name IER - Interrupt Enable Register */
+/*! @{ */
+#define LPSPI_IER_TDIE_MASK                      (0x1U)
+#define LPSPI_IER_TDIE_SHIFT                     (0U)
+/*! TDIE - Transmit Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TDIE_SHIFT)) & LPSPI_IER_TDIE_MASK)
+#define LPSPI_IER_RDIE_MASK                      (0x2U)
+#define LPSPI_IER_RDIE_SHIFT                     (1U)
+/*! RDIE - Receive Data Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_RDIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_RDIE_SHIFT)) & LPSPI_IER_RDIE_MASK)
+#define LPSPI_IER_WCIE_MASK                      (0x100U)
+#define LPSPI_IER_WCIE_SHIFT                     (8U)
+/*! WCIE - Word Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_WCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_WCIE_SHIFT)) & LPSPI_IER_WCIE_MASK)
+#define LPSPI_IER_FCIE_MASK                      (0x200U)
+#define LPSPI_IER_FCIE_SHIFT                     (9U)
+/*! FCIE - Frame Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_FCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_FCIE_SHIFT)) & LPSPI_IER_FCIE_MASK)
+#define LPSPI_IER_TCIE_MASK                      (0x400U)
+#define LPSPI_IER_TCIE_SHIFT                     (10U)
+/*! TCIE - Transfer Complete Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TCIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TCIE_SHIFT)) & LPSPI_IER_TCIE_MASK)
+#define LPSPI_IER_TEIE_MASK                      (0x800U)
+#define LPSPI_IER_TEIE_SHIFT                     (11U)
+/*! TEIE - Transmit Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_TEIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_TEIE_SHIFT)) & LPSPI_IER_TEIE_MASK)
+#define LPSPI_IER_REIE_MASK                      (0x1000U)
+#define LPSPI_IER_REIE_SHIFT                     (12U)
+/*! REIE - Receive Error Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_REIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_REIE_SHIFT)) & LPSPI_IER_REIE_MASK)
+#define LPSPI_IER_DMIE_MASK                      (0x2000U)
+#define LPSPI_IER_DMIE_SHIFT                     (13U)
+/*! DMIE - Data Match Interrupt Enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define LPSPI_IER_DMIE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_IER_DMIE_SHIFT)) & LPSPI_IER_DMIE_MASK)
+/*! @} */
+
+/*! @name DER - DMA Enable Register */
+/*! @{ */
+#define LPSPI_DER_TDDE_MASK                      (0x1U)
+#define LPSPI_DER_TDDE_SHIFT                     (0U)
+/*! TDDE - Transmit Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPSPI_DER_TDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_TDDE_SHIFT)) & LPSPI_DER_TDDE_MASK)
+#define LPSPI_DER_RDDE_MASK                      (0x2U)
+#define LPSPI_DER_RDDE_SHIFT                     (1U)
+/*! RDDE - Receive Data DMA Enable
+ *  0b0..DMA request is disabled
+ *  0b1..DMA request is enabled
+ */
+#define LPSPI_DER_RDDE(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_DER_RDDE_SHIFT)) & LPSPI_DER_RDDE_MASK)
+/*! @} */
+
+/*! @name CFGR0 - Configuration Register 0 */
+/*! @{ */
+#define LPSPI_CFGR0_HREN_MASK                    (0x1U)
+#define LPSPI_CFGR0_HREN_SHIFT                   (0U)
+/*! HREN - Host Request Enable
+ *  0b0..Host request is disabled
+ *  0b1..Host request is enabled
+ */
+#define LPSPI_CFGR0_HREN(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HREN_SHIFT)) & LPSPI_CFGR0_HREN_MASK)
+#define LPSPI_CFGR0_HRPOL_MASK                   (0x2U)
+#define LPSPI_CFGR0_HRPOL_SHIFT                  (1U)
+/*! HRPOL - Host Request Polarity
+ *  0b0..Active low
+ *  0b1..Active high
+ */
+#define LPSPI_CFGR0_HRPOL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRPOL_SHIFT)) & LPSPI_CFGR0_HRPOL_MASK)
+#define LPSPI_CFGR0_HRSEL_MASK                   (0x4U)
+#define LPSPI_CFGR0_HRSEL_SHIFT                  (2U)
+/*! HRSEL - Host Request Select
+ *  0b0..Host request input is the LPSPI_HREQ pin
+ *  0b1..Host request input is the input trigger
+ */
+#define LPSPI_CFGR0_HRSEL(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_HRSEL_SHIFT)) & LPSPI_CFGR0_HRSEL_MASK)
+#define LPSPI_CFGR0_CIRFIFO_MASK                 (0x100U)
+#define LPSPI_CFGR0_CIRFIFO_SHIFT                (8U)
+/*! CIRFIFO - Circular FIFO Enable
+ *  0b0..Circular FIFO is disabled
+ *  0b1..Circular FIFO is enabled
+ */
+#define LPSPI_CFGR0_CIRFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_CIRFIFO_SHIFT)) & LPSPI_CFGR0_CIRFIFO_MASK)
+#define LPSPI_CFGR0_RDMO_MASK                    (0x200U)
+#define LPSPI_CFGR0_RDMO_SHIFT                   (9U)
+/*! RDMO - Receive Data Match Only
+ *  0b0..Received data is stored in the receive FIFO as in normal operations
+ *  0b1..Received data is discarded unless the Data Match Flag (DMF) is set
+ */
+#define LPSPI_CFGR0_RDMO(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR0_RDMO_SHIFT)) & LPSPI_CFGR0_RDMO_MASK)
+/*! @} */
+
+/*! @name CFGR1 - Configuration Register 1 */
+/*! @{ */
+#define LPSPI_CFGR1_MASTER_MASK                  (0x1U)
+#define LPSPI_CFGR1_MASTER_SHIFT                 (0U)
+/*! MASTER - Master Mode
+ *  0b0..Slave mode
+ *  0b1..Master mode
+ */
+#define LPSPI_CFGR1_MASTER(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MASTER_SHIFT)) & LPSPI_CFGR1_MASTER_MASK)
+#define LPSPI_CFGR1_SAMPLE_MASK                  (0x2U)
+#define LPSPI_CFGR1_SAMPLE_SHIFT                 (1U)
+/*! SAMPLE - Sample Point
+ *  0b0..Input data is sampled on SCK edge
+ *  0b1..Input data is sampled on delayed SCK edge
+ */
+#define LPSPI_CFGR1_SAMPLE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_SAMPLE_SHIFT)) & LPSPI_CFGR1_SAMPLE_MASK)
+#define LPSPI_CFGR1_AUTOPCS_MASK                 (0x4U)
+#define LPSPI_CFGR1_AUTOPCS_SHIFT                (2U)
+/*! AUTOPCS - Automatic PCS
+ *  0b0..Automatic PCS generation is disabled
+ *  0b1..Automatic PCS generation is enabled
+ */
+#define LPSPI_CFGR1_AUTOPCS(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_AUTOPCS_SHIFT)) & LPSPI_CFGR1_AUTOPCS_MASK)
+#define LPSPI_CFGR1_NOSTALL_MASK                 (0x8U)
+#define LPSPI_CFGR1_NOSTALL_SHIFT                (3U)
+/*! NOSTALL - No Stall
+ *  0b0..Transfers will stall when the transmit FIFO is empty or the receive FIFO is full
+ *  0b1..Transfers will not stall, allowing transmit FIFO underruns or receive FIFO overruns to occur
+ */
+#define LPSPI_CFGR1_NOSTALL(x)                   (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_NOSTALL_SHIFT)) & LPSPI_CFGR1_NOSTALL_MASK)
+#define LPSPI_CFGR1_PCSPOL_MASK                  (0xF00U)
+#define LPSPI_CFGR1_PCSPOL_SHIFT                 (8U)
+/*! PCSPOL - Peripheral Chip Select Polarity
+ *  0b0000..The Peripheral Chip Select pin PCSx is active low
+ *  0b0001..The Peripheral Chip Select pin PCSx is active high
+ */
+#define LPSPI_CFGR1_PCSPOL(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSPOL_SHIFT)) & LPSPI_CFGR1_PCSPOL_MASK)
+#define LPSPI_CFGR1_MATCFG_MASK                  (0x70000U)
+#define LPSPI_CFGR1_MATCFG_SHIFT                 (16U)
+/*! MATCFG - Match Configuration
+ *  0b000..Match is disabled
+ *  0b001..Reserved
+ *  0b010..010b - Match is enabled, if 1st data word equals MATCH0 OR MATCH1, i.e., (1st data word = MATCH0 + MATCH1)
+ *  0b011..011b - Match is enabled, if any data word equals MATCH0 OR MATCH1, i.e., (any data word = MATCH0 + MATCH1)
+ *  0b100..100b - Match is enabled, if 1st data word equals MATCH0 AND 2nd data word equals MATCH1, i.e., [(1st data word = MATCH0) * (2nd data word = MATCH1)]
+ *  0b101..101b - Match is enabled, if any data word equals MATCH0 AND the next data word equals MATCH1, i.e., [(any data word = MATCH0) * (next data word = MATCH1)]
+ *  0b110..110b - Match is enabled, if (1st data word AND MATCH1) equals (MATCH0 AND MATCH1), i.e., [(1st data word * MATCH1) = (MATCH0 * MATCH1)]
+ *  0b111..111b - Match is enabled, if (any data word AND MATCH1) equals (MATCH0 AND MATCH1), i.e., [(any data word * MATCH1) = (MATCH0 * MATCH1)]
+ */
+#define LPSPI_CFGR1_MATCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_MATCFG_SHIFT)) & LPSPI_CFGR1_MATCFG_MASK)
+#define LPSPI_CFGR1_PINCFG_MASK                  (0x3000000U)
+#define LPSPI_CFGR1_PINCFG_SHIFT                 (24U)
+/*! PINCFG - Pin Configuration
+ *  0b00..SIN is used for input data and SOUT is used for output data
+ *  0b01..SIN is used for both input and output data
+ *  0b10..SOUT is used for both input and output data
+ *  0b11..SOUT is used for input data and SIN is used for output data
+ */
+#define LPSPI_CFGR1_PINCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PINCFG_SHIFT)) & LPSPI_CFGR1_PINCFG_MASK)
+#define LPSPI_CFGR1_OUTCFG_MASK                  (0x4000000U)
+#define LPSPI_CFGR1_OUTCFG_SHIFT                 (26U)
+/*! OUTCFG - Output Config
+ *  0b0..Output data retains last value when chip select is negated
+ *  0b1..Output data is tristated when chip select is negated
+ */
+#define LPSPI_CFGR1_OUTCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_OUTCFG_SHIFT)) & LPSPI_CFGR1_OUTCFG_MASK)
+#define LPSPI_CFGR1_PCSCFG_MASK                  (0x8000000U)
+#define LPSPI_CFGR1_PCSCFG_SHIFT                 (27U)
+/*! PCSCFG - Peripheral Chip Select Configuration
+ *  0b0..PCS[3:2] are enabled
+ *  0b1..PCS[3:2] are disabled
+ */
+#define LPSPI_CFGR1_PCSCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_CFGR1_PCSCFG_SHIFT)) & LPSPI_CFGR1_PCSCFG_MASK)
+/*! @} */
+
+/*! @name DMR0 - Data Match Register 0 */
+/*! @{ */
+#define LPSPI_DMR0_MATCH0_MASK                   (0xFFFFFFFFU)
+#define LPSPI_DMR0_MATCH0_SHIFT                  (0U)
+#define LPSPI_DMR0_MATCH0(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR0_MATCH0_SHIFT)) & LPSPI_DMR0_MATCH0_MASK)
+/*! @} */
+
+/*! @name DMR1 - Data Match Register 1 */
+/*! @{ */
+#define LPSPI_DMR1_MATCH1_MASK                   (0xFFFFFFFFU)
+#define LPSPI_DMR1_MATCH1_SHIFT                  (0U)
+#define LPSPI_DMR1_MATCH1(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_DMR1_MATCH1_SHIFT)) & LPSPI_DMR1_MATCH1_MASK)
+/*! @} */
+
+/*! @name CCR - Clock Configuration Register */
+/*! @{ */
+#define LPSPI_CCR_SCKDIV_MASK                    (0xFFU)
+#define LPSPI_CCR_SCKDIV_SHIFT                   (0U)
+#define LPSPI_CCR_SCKDIV(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKDIV_SHIFT)) & LPSPI_CCR_SCKDIV_MASK)
+#define LPSPI_CCR_DBT_MASK                       (0xFF00U)
+#define LPSPI_CCR_DBT_SHIFT                      (8U)
+#define LPSPI_CCR_DBT(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_DBT_SHIFT)) & LPSPI_CCR_DBT_MASK)
+#define LPSPI_CCR_PCSSCK_MASK                    (0xFF0000U)
+#define LPSPI_CCR_PCSSCK_SHIFT                   (16U)
+#define LPSPI_CCR_PCSSCK(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_PCSSCK_SHIFT)) & LPSPI_CCR_PCSSCK_MASK)
+#define LPSPI_CCR_SCKPCS_MASK                    (0xFF000000U)
+#define LPSPI_CCR_SCKPCS_SHIFT                   (24U)
+#define LPSPI_CCR_SCKPCS(x)                      (((uint32_t)(((uint32_t)(x)) << LPSPI_CCR_SCKPCS_SHIFT)) & LPSPI_CCR_SCKPCS_MASK)
+/*! @} */
+
+/*! @name FCR - FIFO Control Register */
+/*! @{ */
+#define LPSPI_FCR_TXWATER_MASK                   (0x3U)
+#define LPSPI_FCR_TXWATER_SHIFT                  (0U)
+#define LPSPI_FCR_TXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_TXWATER_SHIFT)) & LPSPI_FCR_TXWATER_MASK)
+#define LPSPI_FCR_RXWATER_MASK                   (0x30000U)
+#define LPSPI_FCR_RXWATER_SHIFT                  (16U)
+#define LPSPI_FCR_RXWATER(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FCR_RXWATER_SHIFT)) & LPSPI_FCR_RXWATER_MASK)
+/*! @} */
+
+/*! @name FSR - FIFO Status Register */
+/*! @{ */
+#define LPSPI_FSR_TXCOUNT_MASK                   (0x7U)
+#define LPSPI_FSR_TXCOUNT_SHIFT                  (0U)
+#define LPSPI_FSR_TXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_TXCOUNT_SHIFT)) & LPSPI_FSR_TXCOUNT_MASK)
+#define LPSPI_FSR_RXCOUNT_MASK                   (0x70000U)
+#define LPSPI_FSR_RXCOUNT_SHIFT                  (16U)
+#define LPSPI_FSR_RXCOUNT(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_FSR_RXCOUNT_SHIFT)) & LPSPI_FSR_RXCOUNT_MASK)
+/*! @} */
+
+/*! @name TCR - Transmit Command Register */
+/*! @{ */
+#define LPSPI_TCR_FRAMESZ_MASK                   (0xFFFU)
+#define LPSPI_TCR_FRAMESZ_SHIFT                  (0U)
+#define LPSPI_TCR_FRAMESZ(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_FRAMESZ_SHIFT)) & LPSPI_TCR_FRAMESZ_MASK)
+#define LPSPI_TCR_WIDTH_MASK                     (0x30000U)
+#define LPSPI_TCR_WIDTH_SHIFT                    (16U)
+/*! WIDTH - Transfer Width
+ *  0b00..1 bit transfer
+ *  0b01..2 bit transfer
+ *  0b10..4 bit transfer
+ *  0b11..Reserved
+ */
+#define LPSPI_TCR_WIDTH(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_WIDTH_SHIFT)) & LPSPI_TCR_WIDTH_MASK)
+#define LPSPI_TCR_TXMSK_MASK                     (0x40000U)
+#define LPSPI_TCR_TXMSK_SHIFT                    (18U)
+/*! TXMSK - Transmit Data Mask
+ *  0b0..Normal transfer
+ *  0b1..Mask transmit data
+ */
+#define LPSPI_TCR_TXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_TXMSK_SHIFT)) & LPSPI_TCR_TXMSK_MASK)
+#define LPSPI_TCR_RXMSK_MASK                     (0x80000U)
+#define LPSPI_TCR_RXMSK_SHIFT                    (19U)
+/*! RXMSK - Receive Data Mask
+ *  0b0..Normal transfer
+ *  0b1..Receive data is masked
+ */
+#define LPSPI_TCR_RXMSK(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_RXMSK_SHIFT)) & LPSPI_TCR_RXMSK_MASK)
+#define LPSPI_TCR_CONTC_MASK                     (0x100000U)
+#define LPSPI_TCR_CONTC_SHIFT                    (20U)
+/*! CONTC - Continuing Command
+ *  0b0..Command word for start of new transfer
+ *  0b1..Command word for continuing transfer
+ */
+#define LPSPI_TCR_CONTC(x)                       (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONTC_SHIFT)) & LPSPI_TCR_CONTC_MASK)
+#define LPSPI_TCR_CONT_MASK                      (0x200000U)
+#define LPSPI_TCR_CONT_SHIFT                     (21U)
+/*! CONT - Continuous Transfer
+ *  0b0..Continuous transfer is disabled
+ *  0b1..Continuous transfer is enabled
+ */
+#define LPSPI_TCR_CONT(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CONT_SHIFT)) & LPSPI_TCR_CONT_MASK)
+#define LPSPI_TCR_BYSW_MASK                      (0x400000U)
+#define LPSPI_TCR_BYSW_SHIFT                     (22U)
+/*! BYSW - Byte Swap
+ *  0b0..Byte swap is disabled
+ *  0b1..Byte swap is enabled
+ */
+#define LPSPI_TCR_BYSW(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_BYSW_SHIFT)) & LPSPI_TCR_BYSW_MASK)
+#define LPSPI_TCR_LSBF_MASK                      (0x800000U)
+#define LPSPI_TCR_LSBF_SHIFT                     (23U)
+/*! LSBF - LSB First
+ *  0b0..Data is transferred MSB first
+ *  0b1..Data is transferred LSB first
+ */
+#define LPSPI_TCR_LSBF(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_LSBF_SHIFT)) & LPSPI_TCR_LSBF_MASK)
+#define LPSPI_TCR_PCS_MASK                       (0x3000000U)
+#define LPSPI_TCR_PCS_SHIFT                      (24U)
+/*! PCS - Peripheral Chip Select
+ *  0b00..Transfer using LPSPI_PCS[0]
+ *  0b01..Transfer using LPSPI_PCS[1]
+ *  0b10..Transfer using LPSPI_PCS[2]
+ *  0b11..Transfer using LPSPI_PCS[3]
+ */
+#define LPSPI_TCR_PCS(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PCS_SHIFT)) & LPSPI_TCR_PCS_MASK)
+#define LPSPI_TCR_PRESCALE_MASK                  (0x38000000U)
+#define LPSPI_TCR_PRESCALE_SHIFT                 (27U)
+/*! PRESCALE - Prescaler Value
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define LPSPI_TCR_PRESCALE(x)                    (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_PRESCALE_SHIFT)) & LPSPI_TCR_PRESCALE_MASK)
+#define LPSPI_TCR_CPHA_MASK                      (0x40000000U)
+#define LPSPI_TCR_CPHA_SHIFT                     (30U)
+/*! CPHA - Clock Phase
+ *  0b0..Data is captured on the leading edge of SCK and changed on the following edge of SCK
+ *  0b1..Data is changed on the leading edge of SCK and captured on the following edge of SCK
+ */
+#define LPSPI_TCR_CPHA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPHA_SHIFT)) & LPSPI_TCR_CPHA_MASK)
+#define LPSPI_TCR_CPOL_MASK                      (0x80000000U)
+#define LPSPI_TCR_CPOL_SHIFT                     (31U)
+/*! CPOL - Clock Polarity
+ *  0b0..The inactive state value of SCK is low
+ *  0b1..The inactive state value of SCK is high
+ */
+#define LPSPI_TCR_CPOL(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TCR_CPOL_SHIFT)) & LPSPI_TCR_CPOL_MASK)
+/*! @} */
+
+/*! @name TDR - Transmit Data Register */
+/*! @{ */
+#define LPSPI_TDR_DATA_MASK                      (0xFFFFFFFFU)
+#define LPSPI_TDR_DATA_SHIFT                     (0U)
+#define LPSPI_TDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_TDR_DATA_SHIFT)) & LPSPI_TDR_DATA_MASK)
+/*! @} */
+
+/*! @name RSR - Receive Status Register */
+/*! @{ */
+#define LPSPI_RSR_SOF_MASK                       (0x1U)
+#define LPSPI_RSR_SOF_SHIFT                      (0U)
+/*! SOF - Start Of Frame
+ *  0b0..Subsequent data word received after LPSPI_PCS assertion
+ *  0b1..First data word received after LPSPI_PCS assertion
+ */
+#define LPSPI_RSR_SOF(x)                         (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_SOF_SHIFT)) & LPSPI_RSR_SOF_MASK)
+#define LPSPI_RSR_RXEMPTY_MASK                   (0x2U)
+#define LPSPI_RSR_RXEMPTY_SHIFT                  (1U)
+/*! RXEMPTY - RX FIFO Empty
+ *  0b0..RX FIFO is not empty
+ *  0b1..RX FIFO is empty
+ */
+#define LPSPI_RSR_RXEMPTY(x)                     (((uint32_t)(((uint32_t)(x)) << LPSPI_RSR_RXEMPTY_SHIFT)) & LPSPI_RSR_RXEMPTY_MASK)
+/*! @} */
+
+/*! @name RDR - Receive Data Register */
+/*! @{ */
+#define LPSPI_RDR_DATA_MASK                      (0xFFFFFFFFU)
+#define LPSPI_RDR_DATA_SHIFT                     (0U)
+#define LPSPI_RDR_DATA(x)                        (((uint32_t)(((uint32_t)(x)) << LPSPI_RDR_DATA_SHIFT)) & LPSPI_RDR_DATA_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPSPI_Register_Masks */
+
+
+/* LPSPI - Peripheral instance base addresses */
+/** Peripheral LPSPI0 base address */
+#define LPSPI0_BASE                              (0x4003F000u)
+/** Peripheral LPSPI0 base pointer */
+#define LPSPI0                                   ((LPSPI_Type *)LPSPI0_BASE)
+/** Peripheral LPSPI1 base address */
+#define LPSPI1_BASE                              (0x40040000u)
+/** Peripheral LPSPI1 base pointer */
+#define LPSPI1                                   ((LPSPI_Type *)LPSPI1_BASE)
+/** Peripheral LPSPI2 base address */
+#define LPSPI2_BASE                              (0x40041000u)
+/** Peripheral LPSPI2 base pointer */
+#define LPSPI2                                   ((LPSPI_Type *)LPSPI2_BASE)
+/** Peripheral LPSPI3 base address */
+#define LPSPI3_BASE                              (0x41035000u)
+/** Peripheral LPSPI3 base pointer */
+#define LPSPI3                                   ((LPSPI_Type *)LPSPI3_BASE)
+/** Array initializer of LPSPI peripheral base addresses */
+#define LPSPI_BASE_ADDRS                         { LPSPI0_BASE, LPSPI1_BASE, LPSPI2_BASE, LPSPI3_BASE }
+/** Array initializer of LPSPI peripheral base pointers */
+#define LPSPI_BASE_PTRS                          { LPSPI0, LPSPI1, LPSPI2, LPSPI3 }
+/** Interrupt vectors for the LPSPI peripheral type */
+#define LPSPI_IRQS                               { LPSPI0_IRQn, LPSPI1_IRQn, LPSPI2_IRQn, LPSPI3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPSPI_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPTMR Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPTMR_Peripheral_Access_Layer LPTMR Peripheral Access Layer
+ * @{
+ */
+
+/** LPTMR - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CSR;                               /**< Low Power Timer Control Status Register, offset: 0x0 */
+  __IO uint32_t PSR;                               /**< Low Power Timer Prescale Register, offset: 0x4 */
+  __IO uint32_t CMR;                               /**< Low Power Timer Compare Register, offset: 0x8 */
+  __IO uint32_t CNR;                               /**< Low Power Timer Counter Register, offset: 0xC */
+} LPTMR_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPTMR Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPTMR_Register_Masks LPTMR Register Masks
+ * @{
+ */
+
+/*! @name CSR - Low Power Timer Control Status Register */
+/*! @{ */
+#define LPTMR_CSR_TEN_MASK                       (0x1U)
+#define LPTMR_CSR_TEN_SHIFT                      (0U)
+/*! TEN - Timer Enable
+ *  0b0..LPTMR is disabled and internal logic is reset.
+ *  0b1..LPTMR is enabled.
+ */
+#define LPTMR_CSR_TEN(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TEN_SHIFT)) & LPTMR_CSR_TEN_MASK)
+#define LPTMR_CSR_TMS_MASK                       (0x2U)
+#define LPTMR_CSR_TMS_SHIFT                      (1U)
+/*! TMS - Timer Mode Select
+ *  0b0..Time Counter mode.
+ *  0b1..Pulse Counter mode.
+ */
+#define LPTMR_CSR_TMS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TMS_SHIFT)) & LPTMR_CSR_TMS_MASK)
+#define LPTMR_CSR_TFC_MASK                       (0x4U)
+#define LPTMR_CSR_TFC_SHIFT                      (2U)
+/*! TFC - Timer Free-Running Counter
+ *  0b0..CNR is reset whenever TCF is set.
+ *  0b1..CNR is reset on overflow.
+ */
+#define LPTMR_CSR_TFC(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TFC_SHIFT)) & LPTMR_CSR_TFC_MASK)
+#define LPTMR_CSR_TPP_MASK                       (0x8U)
+#define LPTMR_CSR_TPP_SHIFT                      (3U)
+/*! TPP - Timer Pin Polarity
+ *  0b0..Pulse Counter input source is active-high, and the CNR will increment on the rising-edge.
+ *  0b1..Pulse Counter input source is active-low, and the CNR will increment on the falling-edge.
+ */
+#define LPTMR_CSR_TPP(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPP_SHIFT)) & LPTMR_CSR_TPP_MASK)
+#define LPTMR_CSR_TPS_MASK                       (0x30U)
+#define LPTMR_CSR_TPS_SHIFT                      (4U)
+/*! TPS - Timer Pin Select
+ *  0b00..Pulse counter input 0 is selected.
+ *  0b01..Pulse counter input 1 is selected.
+ *  0b10..Pulse counter input 2 is selected.
+ *  0b11..Pulse counter input 3 is selected.
+ */
+#define LPTMR_CSR_TPS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TPS_SHIFT)) & LPTMR_CSR_TPS_MASK)
+#define LPTMR_CSR_TIE_MASK                       (0x40U)
+#define LPTMR_CSR_TIE_SHIFT                      (6U)
+/*! TIE - Timer Interrupt Enable
+ *  0b0..Timer interrupt disabled.
+ *  0b1..Timer interrupt enabled.
+ */
+#define LPTMR_CSR_TIE(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TIE_SHIFT)) & LPTMR_CSR_TIE_MASK)
+#define LPTMR_CSR_TCF_MASK                       (0x80U)
+#define LPTMR_CSR_TCF_SHIFT                      (7U)
+/*! TCF - Timer Compare Flag
+ *  0b0..The value of CNR is not equal to CMR and increments.
+ *  0b1..The value of CNR is equal to CMR and increments.
+ */
+#define LPTMR_CSR_TCF(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TCF_SHIFT)) & LPTMR_CSR_TCF_MASK)
+#define LPTMR_CSR_TDRE_MASK                      (0x100U)
+#define LPTMR_CSR_TDRE_SHIFT                     (8U)
+/*! TDRE - Timer DMA Request Enable
+ *  0b0..Timer DMA Request disabled.
+ *  0b1..Timer DMA Request enabled.
+ */
+#define LPTMR_CSR_TDRE(x)                        (((uint32_t)(((uint32_t)(x)) << LPTMR_CSR_TDRE_SHIFT)) & LPTMR_CSR_TDRE_MASK)
+/*! @} */
+
+/*! @name PSR - Low Power Timer Prescale Register */
+/*! @{ */
+#define LPTMR_PSR_PCS_MASK                       (0x3U)
+#define LPTMR_PSR_PCS_SHIFT                      (0U)
+/*! PCS - Prescaler Clock Select
+ *  0b00..Prescaler/glitch filter clock 0 selected.
+ *  0b01..Prescaler/glitch filter clock 1 selected.
+ *  0b10..Prescaler/glitch filter clock 2 selected.
+ *  0b11..Prescaler/glitch filter clock 3 selected.
+ */
+#define LPTMR_PSR_PCS(x)                         (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PCS_SHIFT)) & LPTMR_PSR_PCS_MASK)
+#define LPTMR_PSR_PBYP_MASK                      (0x4U)
+#define LPTMR_PSR_PBYP_SHIFT                     (2U)
+/*! PBYP - Prescaler Bypass
+ *  0b0..Prescaler/glitch filter is enabled.
+ *  0b1..Prescaler/glitch filter is bypassed.
+ */
+#define LPTMR_PSR_PBYP(x)                        (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PBYP_SHIFT)) & LPTMR_PSR_PBYP_MASK)
+#define LPTMR_PSR_PRESCALE_MASK                  (0x78U)
+#define LPTMR_PSR_PRESCALE_SHIFT                 (3U)
+/*! PRESCALE - Prescale Value
+ *  0b0000..Prescaler divides the prescaler clock by 2; glitch filter does not support this configuration.
+ *  0b0001..Prescaler divides the prescaler clock by 4; glitch filter recognizes change on input pin after 2 rising clock edges.
+ *  0b0010..Prescaler divides the prescaler clock by 8; glitch filter recognizes change on input pin after 4 rising clock edges.
+ *  0b0011..Prescaler divides the prescaler clock by 16; glitch filter recognizes change on input pin after 8 rising clock edges.
+ *  0b0100..Prescaler divides the prescaler clock by 32; glitch filter recognizes change on input pin after 16 rising clock edges.
+ *  0b0101..Prescaler divides the prescaler clock by 64; glitch filter recognizes change on input pin after 32 rising clock edges.
+ *  0b0110..Prescaler divides the prescaler clock by 128; glitch filter recognizes change on input pin after 64 rising clock edges.
+ *  0b0111..Prescaler divides the prescaler clock by 256; glitch filter recognizes change on input pin after 128 rising clock edges.
+ *  0b1000..Prescaler divides the prescaler clock by 512; glitch filter recognizes change on input pin after 256 rising clock edges.
+ *  0b1001..Prescaler divides the prescaler clock by 1024; glitch filter recognizes change on input pin after 512 rising clock edges.
+ *  0b1010..Prescaler divides the prescaler clock by 2048; glitch filter recognizes change on input pin after 1024 rising clock edges.
+ *  0b1011..Prescaler divides the prescaler clock by 4096; glitch filter recognizes change on input pin after 2048 rising clock edges.
+ *  0b1100..Prescaler divides the prescaler clock by 8192; glitch filter recognizes change on input pin after 4096 rising clock edges.
+ *  0b1101..Prescaler divides the prescaler clock by 16,384; glitch filter recognizes change on input pin after 8192 rising clock edges.
+ *  0b1110..Prescaler divides the prescaler clock by 32,768; glitch filter recognizes change on input pin after 16,384 rising clock edges.
+ *  0b1111..Prescaler divides the prescaler clock by 65,536; glitch filter recognizes change on input pin after 32,768 rising clock edges.
+ */
+#define LPTMR_PSR_PRESCALE(x)                    (((uint32_t)(((uint32_t)(x)) << LPTMR_PSR_PRESCALE_SHIFT)) & LPTMR_PSR_PRESCALE_MASK)
+/*! @} */
+
+/*! @name CMR - Low Power Timer Compare Register */
+/*! @{ */
+#define LPTMR_CMR_COMPARE_MASK                   (0xFFFFFFFFU)
+#define LPTMR_CMR_COMPARE_SHIFT                  (0U)
+#define LPTMR_CMR_COMPARE(x)                     (((uint32_t)(((uint32_t)(x)) << LPTMR_CMR_COMPARE_SHIFT)) & LPTMR_CMR_COMPARE_MASK)
+/*! @} */
+
+/*! @name CNR - Low Power Timer Counter Register */
+/*! @{ */
+#define LPTMR_CNR_COUNTER_MASK                   (0xFFFFFFFFU)
+#define LPTMR_CNR_COUNTER_SHIFT                  (0U)
+#define LPTMR_CNR_COUNTER(x)                     (((uint32_t)(((uint32_t)(x)) << LPTMR_CNR_COUNTER_SHIFT)) & LPTMR_CNR_COUNTER_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPTMR_Register_Masks */
+
+
+/* LPTMR - Peripheral instance base addresses */
+/** Peripheral LPTMR0 base address */
+#define LPTMR0_BASE                              (0x40032000u)
+/** Peripheral LPTMR0 base pointer */
+#define LPTMR0                                   ((LPTMR_Type *)LPTMR0_BASE)
+/** Peripheral LPTMR1 base address */
+#define LPTMR1_BASE                              (0x40033000u)
+/** Peripheral LPTMR1 base pointer */
+#define LPTMR1                                   ((LPTMR_Type *)LPTMR1_BASE)
+/** Peripheral LPTMR2 base address */
+#define LPTMR2_BASE                              (0x4102B000u)
+/** Peripheral LPTMR2 base pointer */
+#define LPTMR2                                   ((LPTMR_Type *)LPTMR2_BASE)
+/** Array initializer of LPTMR peripheral base addresses */
+#define LPTMR_BASE_ADDRS                         { LPTMR0_BASE, LPTMR1_BASE, LPTMR2_BASE }
+/** Array initializer of LPTMR peripheral base pointers */
+#define LPTMR_BASE_PTRS                          { LPTMR0, LPTMR1, LPTMR2 }
+/** Interrupt vectors for the LPTMR peripheral type */
+#define LPTMR_IRQS                               { LPTMR0_IRQn, LPTMR1_IRQn, LPTMR2_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPTMR_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- LPUART Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPUART_Peripheral_Access_Layer LPUART Peripheral Access Layer
+ * @{
+ */
+
+/** LPUART - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t GLOBAL;                            /**< LPUART Global Register, offset: 0x8 */
+  __IO uint32_t PINCFG;                            /**< LPUART Pin Configuration Register, offset: 0xC */
+  __IO uint32_t BAUD;                              /**< LPUART Baud Rate Register, offset: 0x10 */
+  __IO uint32_t STAT;                              /**< LPUART Status Register, offset: 0x14 */
+  __IO uint32_t CTRL;                              /**< LPUART Control Register, offset: 0x18 */
+  __IO uint32_t DATA;                              /**< LPUART Data Register, offset: 0x1C */
+  __IO uint32_t MATCH;                             /**< LPUART Match Address Register, offset: 0x20 */
+  __IO uint32_t MODIR;                             /**< LPUART Modem IrDA Register, offset: 0x24 */
+  __IO uint32_t FIFO;                              /**< LPUART FIFO Register, offset: 0x28 */
+  __IO uint32_t WATER;                             /**< LPUART Watermark Register, offset: 0x2C */
+} LPUART_Type;
+
+/* ----------------------------------------------------------------------------
+   -- LPUART Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup LPUART_Register_Masks LPUART Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define LPUART_VERID_FEATURE_MASK                (0xFFFFU)
+#define LPUART_VERID_FEATURE_SHIFT               (0U)
+/*! FEATURE - Feature Identification Number
+ *  0b0000000000000001..Standard feature set.
+ *  0b0000000000000011..Standard feature set with MODEM/IrDA support.
+ */
+#define LPUART_VERID_FEATURE(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_FEATURE_SHIFT)) & LPUART_VERID_FEATURE_MASK)
+#define LPUART_VERID_MINOR_MASK                  (0xFF0000U)
+#define LPUART_VERID_MINOR_SHIFT                 (16U)
+#define LPUART_VERID_MINOR(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_MINOR_SHIFT)) & LPUART_VERID_MINOR_MASK)
+#define LPUART_VERID_MAJOR_MASK                  (0xFF000000U)
+#define LPUART_VERID_MAJOR_SHIFT                 (24U)
+#define LPUART_VERID_MAJOR(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_VERID_MAJOR_SHIFT)) & LPUART_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define LPUART_PARAM_TXFIFO_MASK                 (0xFFU)
+#define LPUART_PARAM_TXFIFO_SHIFT                (0U)
+#define LPUART_PARAM_TXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_PARAM_TXFIFO_SHIFT)) & LPUART_PARAM_TXFIFO_MASK)
+#define LPUART_PARAM_RXFIFO_MASK                 (0xFF00U)
+#define LPUART_PARAM_RXFIFO_SHIFT                (8U)
+#define LPUART_PARAM_RXFIFO(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_PARAM_RXFIFO_SHIFT)) & LPUART_PARAM_RXFIFO_MASK)
+/*! @} */
+
+/*! @name GLOBAL - LPUART Global Register */
+/*! @{ */
+#define LPUART_GLOBAL_RST_MASK                   (0x2U)
+#define LPUART_GLOBAL_RST_SHIFT                  (1U)
+/*! RST - Software Reset
+ *  0b0..Module is not reset.
+ *  0b1..Module is reset.
+ */
+#define LPUART_GLOBAL_RST(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_GLOBAL_RST_SHIFT)) & LPUART_GLOBAL_RST_MASK)
+/*! @} */
+
+/*! @name PINCFG - LPUART Pin Configuration Register */
+/*! @{ */
+#define LPUART_PINCFG_TRGSEL_MASK                (0x3U)
+#define LPUART_PINCFG_TRGSEL_SHIFT               (0U)
+/*! TRGSEL - Trigger Select
+ *  0b00..Input trigger is disabled.
+ *  0b01..Input trigger is used instead of RXD pin input.
+ *  0b10..Input trigger is used instead of CTS_B pin input.
+ *  0b11..Input trigger is used to modulate the TXD pin output. The TXD pin output (after TXINV configuration) is ANDed with the input trigger.
+ */
+#define LPUART_PINCFG_TRGSEL(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_PINCFG_TRGSEL_SHIFT)) & LPUART_PINCFG_TRGSEL_MASK)
+/*! @} */
+
+/*! @name BAUD - LPUART Baud Rate Register */
+/*! @{ */
+#define LPUART_BAUD_SBR_MASK                     (0x1FFFU)
+#define LPUART_BAUD_SBR_SHIFT                    (0U)
+#define LPUART_BAUD_SBR(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_SBR_SHIFT)) & LPUART_BAUD_SBR_MASK)
+#define LPUART_BAUD_SBNS_MASK                    (0x2000U)
+#define LPUART_BAUD_SBNS_SHIFT                   (13U)
+/*! SBNS - Stop Bit Number Select
+ *  0b0..One stop bit.
+ *  0b1..Two stop bits.
+ */
+#define LPUART_BAUD_SBNS(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_SBNS_SHIFT)) & LPUART_BAUD_SBNS_MASK)
+#define LPUART_BAUD_RXEDGIE_MASK                 (0x4000U)
+#define LPUART_BAUD_RXEDGIE_SHIFT                (14U)
+/*! RXEDGIE - RX Input Active Edge Interrupt Enable
+ *  0b0..Hardware interrupts from LPUART_STAT[RXEDGIF] disabled.
+ *  0b1..Hardware interrupt requested when LPUART_STAT[RXEDGIF] flag is 1.
+ */
+#define LPUART_BAUD_RXEDGIE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RXEDGIE_SHIFT)) & LPUART_BAUD_RXEDGIE_MASK)
+#define LPUART_BAUD_LBKDIE_MASK                  (0x8000U)
+#define LPUART_BAUD_LBKDIE_SHIFT                 (15U)
+/*! LBKDIE - LIN Break Detect Interrupt Enable
+ *  0b0..Hardware interrupts from LPUART_STAT[LBKDIF] disabled (use polling).
+ *  0b1..Hardware interrupt requested when LPUART_STAT[LBKDIF] flag is 1.
+ */
+#define LPUART_BAUD_LBKDIE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_LBKDIE_SHIFT)) & LPUART_BAUD_LBKDIE_MASK)
+#define LPUART_BAUD_RESYNCDIS_MASK               (0x10000U)
+#define LPUART_BAUD_RESYNCDIS_SHIFT              (16U)
+/*! RESYNCDIS - Resynchronization Disable
+ *  0b0..Resynchronization during received data word is supported
+ *  0b1..Resynchronization during received data word is disabled
+ */
+#define LPUART_BAUD_RESYNCDIS(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RESYNCDIS_SHIFT)) & LPUART_BAUD_RESYNCDIS_MASK)
+#define LPUART_BAUD_BOTHEDGE_MASK                (0x20000U)
+#define LPUART_BAUD_BOTHEDGE_SHIFT               (17U)
+/*! BOTHEDGE - Both Edge Sampling
+ *  0b0..Receiver samples input data using the rising edge of the baud rate clock.
+ *  0b1..Receiver samples input data using the rising and falling edge of the baud rate clock.
+ */
+#define LPUART_BAUD_BOTHEDGE(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_BOTHEDGE_SHIFT)) & LPUART_BAUD_BOTHEDGE_MASK)
+#define LPUART_BAUD_MATCFG_MASK                  (0xC0000U)
+#define LPUART_BAUD_MATCFG_SHIFT                 (18U)
+/*! MATCFG - Match Configuration
+ *  0b00..Address Match Wakeup
+ *  0b01..Idle Match Wakeup
+ *  0b10..Match On and Match Off
+ *  0b11..Enables RWU on Data Match and Match On/Off for transmitter CTS input
+ */
+#define LPUART_BAUD_MATCFG(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MATCFG_SHIFT)) & LPUART_BAUD_MATCFG_MASK)
+#define LPUART_BAUD_RIDMAE_MASK                  (0x100000U)
+#define LPUART_BAUD_RIDMAE_SHIFT                 (20U)
+/*! RIDMAE - Receiver Idle DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_RIDMAE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RIDMAE_SHIFT)) & LPUART_BAUD_RIDMAE_MASK)
+#define LPUART_BAUD_RDMAE_MASK                   (0x200000U)
+#define LPUART_BAUD_RDMAE_SHIFT                  (21U)
+/*! RDMAE - Receiver Full DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_RDMAE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_RDMAE_SHIFT)) & LPUART_BAUD_RDMAE_MASK)
+#define LPUART_BAUD_TDMAE_MASK                   (0x800000U)
+#define LPUART_BAUD_TDMAE_SHIFT                  (23U)
+/*! TDMAE - Transmitter DMA Enable
+ *  0b0..DMA request disabled.
+ *  0b1..DMA request enabled.
+ */
+#define LPUART_BAUD_TDMAE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_TDMAE_SHIFT)) & LPUART_BAUD_TDMAE_MASK)
+#define LPUART_BAUD_OSR_MASK                     (0x1F000000U)
+#define LPUART_BAUD_OSR_SHIFT                    (24U)
+/*! OSR - Oversampling Ratio
+ *  0b00000..Writing 0 to this field will result in an oversampling ratio of 16
+ *  0b00001..Reserved
+ *  0b00010..Reserved
+ *  0b00011..Oversampling ratio of 4, requires BOTHEDGE to be set.
+ *  0b00100..Oversampling ratio of 5, requires BOTHEDGE to be set.
+ *  0b00101..Oversampling ratio of 6, requires BOTHEDGE to be set.
+ *  0b00110..Oversampling ratio of 7, requires BOTHEDGE to be set.
+ *  0b00111..Oversampling ratio of 8.
+ *  0b01000..Oversampling ratio of 9.
+ *  0b01001..Oversampling ratio of 10.
+ *  0b01010..Oversampling ratio of 11.
+ *  0b01011..Oversampling ratio of 12.
+ *  0b01100..Oversampling ratio of 13.
+ *  0b01101..Oversampling ratio of 14.
+ *  0b01110..Oversampling ratio of 15.
+ *  0b01111..Oversampling ratio of 16.
+ *  0b10000..Oversampling ratio of 17.
+ *  0b10001..Oversampling ratio of 18.
+ *  0b10010..Oversampling ratio of 19.
+ *  0b10011..Oversampling ratio of 20.
+ *  0b10100..Oversampling ratio of 21.
+ *  0b10101..Oversampling ratio of 22.
+ *  0b10110..Oversampling ratio of 23.
+ *  0b10111..Oversampling ratio of 24.
+ *  0b11000..Oversampling ratio of 25.
+ *  0b11001..Oversampling ratio of 26.
+ *  0b11010..Oversampling ratio of 27.
+ *  0b11011..Oversampling ratio of 28.
+ *  0b11100..Oversampling ratio of 29.
+ *  0b11101..Oversampling ratio of 30.
+ *  0b11110..Oversampling ratio of 31.
+ *  0b11111..Oversampling ratio of 32.
+ */
+#define LPUART_BAUD_OSR(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_OSR_SHIFT)) & LPUART_BAUD_OSR_MASK)
+#define LPUART_BAUD_M10_MASK                     (0x20000000U)
+#define LPUART_BAUD_M10_SHIFT                    (29U)
+/*! M10 - 10-bit Mode select
+ *  0b0..Receiver and transmitter use 7-bit to 9-bit data characters.
+ *  0b1..Receiver and transmitter use 10-bit data characters.
+ */
+#define LPUART_BAUD_M10(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_M10_SHIFT)) & LPUART_BAUD_M10_MASK)
+#define LPUART_BAUD_MAEN2_MASK                   (0x40000000U)
+#define LPUART_BAUD_MAEN2_SHIFT                  (30U)
+/*! MAEN2 - Match Address Mode Enable 2
+ *  0b0..Normal operation.
+ *  0b1..Enables automatic address matching or data matching mode for MATCH[MA2].
+ */
+#define LPUART_BAUD_MAEN2(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MAEN2_SHIFT)) & LPUART_BAUD_MAEN2_MASK)
+#define LPUART_BAUD_MAEN1_MASK                   (0x80000000U)
+#define LPUART_BAUD_MAEN1_SHIFT                  (31U)
+/*! MAEN1 - Match Address Mode Enable 1
+ *  0b0..Normal operation.
+ *  0b1..Enables automatic address matching or data matching mode for MATCH[MA1].
+ */
+#define LPUART_BAUD_MAEN1(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_BAUD_MAEN1_SHIFT)) & LPUART_BAUD_MAEN1_MASK)
+/*! @} */
+
+/*! @name STAT - LPUART Status Register */
+/*! @{ */
+#define LPUART_STAT_MA2F_MASK                    (0x4000U)
+#define LPUART_STAT_MA2F_SHIFT                   (14U)
+/*! MA2F - Match 2 Flag
+ *  0b0..Received data is not equal to MA2
+ *  0b1..Received data is equal to MA2
+ */
+#define LPUART_STAT_MA2F(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MA2F_SHIFT)) & LPUART_STAT_MA2F_MASK)
+#define LPUART_STAT_MA1F_MASK                    (0x8000U)
+#define LPUART_STAT_MA1F_SHIFT                   (15U)
+/*! MA1F - Match 1 Flag
+ *  0b0..Received data is not equal to MA1
+ *  0b1..Received data is equal to MA1
+ */
+#define LPUART_STAT_MA1F(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MA1F_SHIFT)) & LPUART_STAT_MA1F_MASK)
+#define LPUART_STAT_PF_MASK                      (0x10000U)
+#define LPUART_STAT_PF_SHIFT                     (16U)
+/*! PF - Parity Error Flag
+ *  0b0..No parity error.
+ *  0b1..Parity error.
+ */
+#define LPUART_STAT_PF(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_PF_SHIFT)) & LPUART_STAT_PF_MASK)
+#define LPUART_STAT_FE_MASK                      (0x20000U)
+#define LPUART_STAT_FE_SHIFT                     (17U)
+/*! FE - Framing Error Flag
+ *  0b0..No framing error detected. This does not guarantee the framing is correct.
+ *  0b1..Framing error.
+ */
+#define LPUART_STAT_FE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_FE_SHIFT)) & LPUART_STAT_FE_MASK)
+#define LPUART_STAT_NF_MASK                      (0x40000U)
+#define LPUART_STAT_NF_SHIFT                     (18U)
+/*! NF - Noise Flag
+ *  0b0..No noise detected.
+ *  0b1..Noise detected in the received character in LPUART_DATA.
+ */
+#define LPUART_STAT_NF(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_NF_SHIFT)) & LPUART_STAT_NF_MASK)
+#define LPUART_STAT_OR_MASK                      (0x80000U)
+#define LPUART_STAT_OR_SHIFT                     (19U)
+/*! OR - Receiver Overrun Flag
+ *  0b0..No overrun.
+ *  0b1..Receive overrun (new LPUART data lost).
+ */
+#define LPUART_STAT_OR(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_OR_SHIFT)) & LPUART_STAT_OR_MASK)
+#define LPUART_STAT_IDLE_MASK                    (0x100000U)
+#define LPUART_STAT_IDLE_SHIFT                   (20U)
+/*! IDLE - Idle Line Flag
+ *  0b0..No idle line detected.
+ *  0b1..Idle line was detected.
+ */
+#define LPUART_STAT_IDLE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_IDLE_SHIFT)) & LPUART_STAT_IDLE_MASK)
+#define LPUART_STAT_RDRF_MASK                    (0x200000U)
+#define LPUART_STAT_RDRF_SHIFT                   (21U)
+/*! RDRF - Receive Data Register Full Flag
+ *  0b0..Receive data buffer empty.
+ *  0b1..Receive data buffer full.
+ */
+#define LPUART_STAT_RDRF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RDRF_SHIFT)) & LPUART_STAT_RDRF_MASK)
+#define LPUART_STAT_TC_MASK                      (0x400000U)
+#define LPUART_STAT_TC_SHIFT                     (22U)
+/*! TC - Transmission Complete Flag
+ *  0b0..Transmitter active (sending data, a preamble, or a break).
+ *  0b1..Transmitter idle (transmission activity complete).
+ */
+#define LPUART_STAT_TC(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_TC_SHIFT)) & LPUART_STAT_TC_MASK)
+#define LPUART_STAT_TDRE_MASK                    (0x800000U)
+#define LPUART_STAT_TDRE_SHIFT                   (23U)
+/*! TDRE - Transmit Data Register Empty Flag
+ *  0b0..Transmit data buffer full.
+ *  0b1..Transmit data buffer empty.
+ */
+#define LPUART_STAT_TDRE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_TDRE_SHIFT)) & LPUART_STAT_TDRE_MASK)
+#define LPUART_STAT_RAF_MASK                     (0x1000000U)
+#define LPUART_STAT_RAF_SHIFT                    (24U)
+/*! RAF - Receiver Active Flag
+ *  0b0..LPUART receiver idle waiting for a start bit.
+ *  0b1..LPUART receiver active (RXD input not idle).
+ */
+#define LPUART_STAT_RAF(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RAF_SHIFT)) & LPUART_STAT_RAF_MASK)
+#define LPUART_STAT_LBKDE_MASK                   (0x2000000U)
+#define LPUART_STAT_LBKDE_SHIFT                  (25U)
+/*! LBKDE - LIN Break Detection Enable
+ *  0b0..LIN break detect is disabled, normal break character can be detected.
+ *  0b1..LIN break detect is enabled. LIN break character is detected at length of 11 bit times (if M = 0) or 12 (if M = 1) or 13 (M10 = 1).
+ */
+#define LPUART_STAT_LBKDE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_LBKDE_SHIFT)) & LPUART_STAT_LBKDE_MASK)
+#define LPUART_STAT_BRK13_MASK                   (0x4000000U)
+#define LPUART_STAT_BRK13_SHIFT                  (26U)
+/*! BRK13 - Break Character Generation Length
+ *  0b0..Break character is transmitted with length of 9 to 13 bit times.
+ *  0b1..Break character is transmitted with length of 12 to 15 bit times.
+ */
+#define LPUART_STAT_BRK13(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_BRK13_SHIFT)) & LPUART_STAT_BRK13_MASK)
+#define LPUART_STAT_RWUID_MASK                   (0x8000000U)
+#define LPUART_STAT_RWUID_SHIFT                  (27U)
+/*! RWUID - Receive Wake Up Idle Detect
+ *  0b0..During receive standby state (RWU = 1), the IDLE bit does not get set upon detection of an idle character. During address match wakeup, the IDLE bit does not set when an address does not match.
+ *  0b1..During receive standby state (RWU = 1), the IDLE bit gets set upon detection of an idle character. During address match wakeup, the IDLE bit does set when an address does not match.
+ */
+#define LPUART_STAT_RWUID(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RWUID_SHIFT)) & LPUART_STAT_RWUID_MASK)
+#define LPUART_STAT_RXINV_MASK                   (0x10000000U)
+#define LPUART_STAT_RXINV_SHIFT                  (28U)
+/*! RXINV - Receive Data Inversion
+ *  0b0..Receive data not inverted.
+ *  0b1..Receive data inverted.
+ */
+#define LPUART_STAT_RXINV(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RXINV_SHIFT)) & LPUART_STAT_RXINV_MASK)
+#define LPUART_STAT_MSBF_MASK                    (0x20000000U)
+#define LPUART_STAT_MSBF_SHIFT                   (29U)
+/*! MSBF - MSB First
+ *  0b0..LSB (bit0) is the first bit that is transmitted following the start bit. Further, the first bit received after the start bit is identified as bit0.
+ *  0b1..MSB (bit9, bit8, bit7 or bit6) is the first bit that is transmitted following the start bit depending on the setting of CTRL[M], CTRL[PE] and BAUD[M10]. Further, the first bit received after the start bit is identified as bit9, bit8, bit7 or bit6 depending on the setting of CTRL[M] and CTRL[PE].
+ */
+#define LPUART_STAT_MSBF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_MSBF_SHIFT)) & LPUART_STAT_MSBF_MASK)
+#define LPUART_STAT_RXEDGIF_MASK                 (0x40000000U)
+#define LPUART_STAT_RXEDGIF_SHIFT                (30U)
+/*! RXEDGIF - RXD Pin Active Edge Interrupt Flag
+ *  0b0..No active edge on the receive pin has occurred.
+ *  0b1..An active edge on the receive pin has occurred.
+ */
+#define LPUART_STAT_RXEDGIF(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_RXEDGIF_SHIFT)) & LPUART_STAT_RXEDGIF_MASK)
+#define LPUART_STAT_LBKDIF_MASK                  (0x80000000U)
+#define LPUART_STAT_LBKDIF_SHIFT                 (31U)
+/*! LBKDIF - LIN Break Detect Interrupt Flag
+ *  0b0..No LIN break character has been detected.
+ *  0b1..LIN break character has been detected.
+ */
+#define LPUART_STAT_LBKDIF(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_STAT_LBKDIF_SHIFT)) & LPUART_STAT_LBKDIF_MASK)
+/*! @} */
+
+/*! @name CTRL - LPUART Control Register */
+/*! @{ */
+#define LPUART_CTRL_PT_MASK                      (0x1U)
+#define LPUART_CTRL_PT_SHIFT                     (0U)
+/*! PT - Parity Type
+ *  0b0..Even parity.
+ *  0b1..Odd parity.
+ */
+#define LPUART_CTRL_PT(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PT_SHIFT)) & LPUART_CTRL_PT_MASK)
+#define LPUART_CTRL_PE_MASK                      (0x2U)
+#define LPUART_CTRL_PE_SHIFT                     (1U)
+/*! PE - Parity Enable
+ *  0b0..No hardware parity generation or checking.
+ *  0b1..Parity enabled.
+ */
+#define LPUART_CTRL_PE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PE_SHIFT)) & LPUART_CTRL_PE_MASK)
+#define LPUART_CTRL_ILT_MASK                     (0x4U)
+#define LPUART_CTRL_ILT_SHIFT                    (2U)
+/*! ILT - Idle Line Type Select
+ *  0b0..Idle character bit count starts after start bit.
+ *  0b1..Idle character bit count starts after stop bit.
+ */
+#define LPUART_CTRL_ILT(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ILT_SHIFT)) & LPUART_CTRL_ILT_MASK)
+#define LPUART_CTRL_WAKE_MASK                    (0x8U)
+#define LPUART_CTRL_WAKE_SHIFT                   (3U)
+/*! WAKE - Receiver Wakeup Method Select
+ *  0b0..Configures RWU for idle-line wakeup.
+ *  0b1..Configures RWU with address-mark wakeup.
+ */
+#define LPUART_CTRL_WAKE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_WAKE_SHIFT)) & LPUART_CTRL_WAKE_MASK)
+#define LPUART_CTRL_M_MASK                       (0x10U)
+#define LPUART_CTRL_M_SHIFT                      (4U)
+/*! M - 9-Bit or 8-Bit Mode Select
+ *  0b0..Receiver and transmitter use 8-bit data characters.
+ *  0b1..Receiver and transmitter use 9-bit data characters.
+ */
+#define LPUART_CTRL_M(x)                         (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_M_SHIFT)) & LPUART_CTRL_M_MASK)
+#define LPUART_CTRL_RSRC_MASK                    (0x20U)
+#define LPUART_CTRL_RSRC_SHIFT                   (5U)
+/*! RSRC - Receiver Source Select
+ *  0b0..Provided LOOPS is set, RSRC is cleared, selects internal loop back mode and the LPUART does not use the RXD pin.
+ *  0b1..Single-wire LPUART mode where the TXD pin is connected to the transmitter output and receiver input.
+ */
+#define LPUART_CTRL_RSRC(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RSRC_SHIFT)) & LPUART_CTRL_RSRC_MASK)
+#define LPUART_CTRL_DOZEEN_MASK                  (0x40U)
+#define LPUART_CTRL_DOZEEN_SHIFT                 (6U)
+/*! DOZEEN - Doze Enable
+ *  0b0..LPUART is enabled in Doze mode.
+ *  0b1..LPUART is disabled in Doze mode.
+ */
+#define LPUART_CTRL_DOZEEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_DOZEEN_SHIFT)) & LPUART_CTRL_DOZEEN_MASK)
+#define LPUART_CTRL_LOOPS_MASK                   (0x80U)
+#define LPUART_CTRL_LOOPS_SHIFT                  (7U)
+/*! LOOPS - Loop Mode Select
+ *  0b0..Normal operation - RXD and TXD use separate pins.
+ *  0b1..Loop mode or single-wire mode where transmitter outputs are internally connected to receiver input (see RSRC bit).
+ */
+#define LPUART_CTRL_LOOPS(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_LOOPS_SHIFT)) & LPUART_CTRL_LOOPS_MASK)
+#define LPUART_CTRL_IDLECFG_MASK                 (0x700U)
+#define LPUART_CTRL_IDLECFG_SHIFT                (8U)
+/*! IDLECFG - Idle Configuration
+ *  0b000..1 idle character
+ *  0b001..2 idle characters
+ *  0b010..4 idle characters
+ *  0b011..8 idle characters
+ *  0b100..16 idle characters
+ *  0b101..32 idle characters
+ *  0b110..64 idle characters
+ *  0b111..128 idle characters
+ */
+#define LPUART_CTRL_IDLECFG(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_IDLECFG_SHIFT)) & LPUART_CTRL_IDLECFG_MASK)
+#define LPUART_CTRL_M7_MASK                      (0x800U)
+#define LPUART_CTRL_M7_SHIFT                     (11U)
+/*! M7 - 7-Bit Mode Select
+ *  0b0..Receiver and transmitter use 8-bit to 10-bit data characters.
+ *  0b1..Receiver and transmitter use 7-bit data characters.
+ */
+#define LPUART_CTRL_M7(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_M7_SHIFT)) & LPUART_CTRL_M7_MASK)
+#define LPUART_CTRL_MA2IE_MASK                   (0x4000U)
+#define LPUART_CTRL_MA2IE_SHIFT                  (14U)
+/*! MA2IE - Match 2 Interrupt Enable
+ *  0b0..MA2F interrupt disabled
+ *  0b1..MA2F interrupt enabled
+ */
+#define LPUART_CTRL_MA2IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_MA2IE_SHIFT)) & LPUART_CTRL_MA2IE_MASK)
+#define LPUART_CTRL_MA1IE_MASK                   (0x8000U)
+#define LPUART_CTRL_MA1IE_SHIFT                  (15U)
+/*! MA1IE - Match 1 Interrupt Enable
+ *  0b0..MA1F interrupt disabled
+ *  0b1..MA1F interrupt enabled
+ */
+#define LPUART_CTRL_MA1IE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_MA1IE_SHIFT)) & LPUART_CTRL_MA1IE_MASK)
+#define LPUART_CTRL_SBK_MASK                     (0x10000U)
+#define LPUART_CTRL_SBK_SHIFT                    (16U)
+/*! SBK - Send Break
+ *  0b0..Normal transmitter operation.
+ *  0b1..Queue break character(s) to be sent.
+ */
+#define LPUART_CTRL_SBK(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_SBK_SHIFT)) & LPUART_CTRL_SBK_MASK)
+#define LPUART_CTRL_RWU_MASK                     (0x20000U)
+#define LPUART_CTRL_RWU_SHIFT                    (17U)
+/*! RWU - Receiver Wakeup Control
+ *  0b0..Normal receiver operation.
+ *  0b1..LPUART receiver in standby waiting for wakeup condition.
+ */
+#define LPUART_CTRL_RWU(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RWU_SHIFT)) & LPUART_CTRL_RWU_MASK)
+#define LPUART_CTRL_RE_MASK                      (0x40000U)
+#define LPUART_CTRL_RE_SHIFT                     (18U)
+/*! RE - Receiver Enable
+ *  0b0..Receiver disabled.
+ *  0b1..Receiver enabled.
+ */
+#define LPUART_CTRL_RE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RE_SHIFT)) & LPUART_CTRL_RE_MASK)
+#define LPUART_CTRL_TE_MASK                      (0x80000U)
+#define LPUART_CTRL_TE_SHIFT                     (19U)
+/*! TE - Transmitter Enable
+ *  0b0..Transmitter disabled.
+ *  0b1..Transmitter enabled.
+ */
+#define LPUART_CTRL_TE(x)                        (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TE_SHIFT)) & LPUART_CTRL_TE_MASK)
+#define LPUART_CTRL_ILIE_MASK                    (0x100000U)
+#define LPUART_CTRL_ILIE_SHIFT                   (20U)
+/*! ILIE - Idle Line Interrupt Enable
+ *  0b0..Hardware interrupts from IDLE disabled; use polling.
+ *  0b1..Hardware interrupt requested when IDLE flag is 1.
+ */
+#define LPUART_CTRL_ILIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ILIE_SHIFT)) & LPUART_CTRL_ILIE_MASK)
+#define LPUART_CTRL_RIE_MASK                     (0x200000U)
+#define LPUART_CTRL_RIE_SHIFT                    (21U)
+/*! RIE - Receiver Interrupt Enable
+ *  0b0..Hardware interrupts from RDRF disabled; use polling.
+ *  0b1..Hardware interrupt requested when RDRF flag is 1.
+ */
+#define LPUART_CTRL_RIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_RIE_SHIFT)) & LPUART_CTRL_RIE_MASK)
+#define LPUART_CTRL_TCIE_MASK                    (0x400000U)
+#define LPUART_CTRL_TCIE_SHIFT                   (22U)
+/*! TCIE - Transmission Complete Interrupt Enable for
+ *  0b0..Hardware interrupts from TC disabled; use polling.
+ *  0b1..Hardware interrupt requested when TC flag is 1.
+ */
+#define LPUART_CTRL_TCIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TCIE_SHIFT)) & LPUART_CTRL_TCIE_MASK)
+#define LPUART_CTRL_TIE_MASK                     (0x800000U)
+#define LPUART_CTRL_TIE_SHIFT                    (23U)
+/*! TIE - Transmit Interrupt Enable
+ *  0b0..Hardware interrupts from TDRE disabled; use polling.
+ *  0b1..Hardware interrupt requested when TDRE flag is 1.
+ */
+#define LPUART_CTRL_TIE(x)                       (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TIE_SHIFT)) & LPUART_CTRL_TIE_MASK)
+#define LPUART_CTRL_PEIE_MASK                    (0x1000000U)
+#define LPUART_CTRL_PEIE_SHIFT                   (24U)
+/*! PEIE - Parity Error Interrupt Enable
+ *  0b0..PF interrupts disabled; use polling).
+ *  0b1..Hardware interrupt requested when PF is set.
+ */
+#define LPUART_CTRL_PEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_PEIE_SHIFT)) & LPUART_CTRL_PEIE_MASK)
+#define LPUART_CTRL_FEIE_MASK                    (0x2000000U)
+#define LPUART_CTRL_FEIE_SHIFT                   (25U)
+/*! FEIE - Framing Error Interrupt Enable
+ *  0b0..FE interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when FE is set.
+ */
+#define LPUART_CTRL_FEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_FEIE_SHIFT)) & LPUART_CTRL_FEIE_MASK)
+#define LPUART_CTRL_NEIE_MASK                    (0x4000000U)
+#define LPUART_CTRL_NEIE_SHIFT                   (26U)
+/*! NEIE - Noise Error Interrupt Enable
+ *  0b0..NF interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when NF is set.
+ */
+#define LPUART_CTRL_NEIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_NEIE_SHIFT)) & LPUART_CTRL_NEIE_MASK)
+#define LPUART_CTRL_ORIE_MASK                    (0x8000000U)
+#define LPUART_CTRL_ORIE_SHIFT                   (27U)
+/*! ORIE - Overrun Interrupt Enable
+ *  0b0..OR interrupts disabled; use polling.
+ *  0b1..Hardware interrupt requested when OR is set.
+ */
+#define LPUART_CTRL_ORIE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_ORIE_SHIFT)) & LPUART_CTRL_ORIE_MASK)
+#define LPUART_CTRL_TXINV_MASK                   (0x10000000U)
+#define LPUART_CTRL_TXINV_SHIFT                  (28U)
+/*! TXINV - Transmit Data Inversion
+ *  0b0..Transmit data not inverted.
+ *  0b1..Transmit data inverted.
+ */
+#define LPUART_CTRL_TXINV(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TXINV_SHIFT)) & LPUART_CTRL_TXINV_MASK)
+#define LPUART_CTRL_TXDIR_MASK                   (0x20000000U)
+#define LPUART_CTRL_TXDIR_SHIFT                  (29U)
+/*! TXDIR - TXD Pin Direction in Single-Wire Mode
+ *  0b0..TXD pin is an input in single-wire mode.
+ *  0b1..TXD pin is an output in single-wire mode.
+ */
+#define LPUART_CTRL_TXDIR(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_TXDIR_SHIFT)) & LPUART_CTRL_TXDIR_MASK)
+#define LPUART_CTRL_R9T8_MASK                    (0x40000000U)
+#define LPUART_CTRL_R9T8_SHIFT                   (30U)
+#define LPUART_CTRL_R9T8(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_R9T8_SHIFT)) & LPUART_CTRL_R9T8_MASK)
+#define LPUART_CTRL_R8T9_MASK                    (0x80000000U)
+#define LPUART_CTRL_R8T9_SHIFT                   (31U)
+#define LPUART_CTRL_R8T9(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_CTRL_R8T9_SHIFT)) & LPUART_CTRL_R8T9_MASK)
+/*! @} */
+
+/*! @name DATA - LPUART Data Register */
+/*! @{ */
+#define LPUART_DATA_R0T0_MASK                    (0x1U)
+#define LPUART_DATA_R0T0_SHIFT                   (0U)
+#define LPUART_DATA_R0T0(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R0T0_SHIFT)) & LPUART_DATA_R0T0_MASK)
+#define LPUART_DATA_R1T1_MASK                    (0x2U)
+#define LPUART_DATA_R1T1_SHIFT                   (1U)
+#define LPUART_DATA_R1T1(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R1T1_SHIFT)) & LPUART_DATA_R1T1_MASK)
+#define LPUART_DATA_R2T2_MASK                    (0x4U)
+#define LPUART_DATA_R2T2_SHIFT                   (2U)
+#define LPUART_DATA_R2T2(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R2T2_SHIFT)) & LPUART_DATA_R2T2_MASK)
+#define LPUART_DATA_R3T3_MASK                    (0x8U)
+#define LPUART_DATA_R3T3_SHIFT                   (3U)
+#define LPUART_DATA_R3T3(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R3T3_SHIFT)) & LPUART_DATA_R3T3_MASK)
+#define LPUART_DATA_R4T4_MASK                    (0x10U)
+#define LPUART_DATA_R4T4_SHIFT                   (4U)
+#define LPUART_DATA_R4T4(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R4T4_SHIFT)) & LPUART_DATA_R4T4_MASK)
+#define LPUART_DATA_R5T5_MASK                    (0x20U)
+#define LPUART_DATA_R5T5_SHIFT                   (5U)
+#define LPUART_DATA_R5T5(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R5T5_SHIFT)) & LPUART_DATA_R5T5_MASK)
+#define LPUART_DATA_R6T6_MASK                    (0x40U)
+#define LPUART_DATA_R6T6_SHIFT                   (6U)
+#define LPUART_DATA_R6T6(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R6T6_SHIFT)) & LPUART_DATA_R6T6_MASK)
+#define LPUART_DATA_R7T7_MASK                    (0x80U)
+#define LPUART_DATA_R7T7_SHIFT                   (7U)
+#define LPUART_DATA_R7T7(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R7T7_SHIFT)) & LPUART_DATA_R7T7_MASK)
+#define LPUART_DATA_R8T8_MASK                    (0x100U)
+#define LPUART_DATA_R8T8_SHIFT                   (8U)
+#define LPUART_DATA_R8T8(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R8T8_SHIFT)) & LPUART_DATA_R8T8_MASK)
+#define LPUART_DATA_R9T9_MASK                    (0x200U)
+#define LPUART_DATA_R9T9_SHIFT                   (9U)
+#define LPUART_DATA_R9T9(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_R9T9_SHIFT)) & LPUART_DATA_R9T9_MASK)
+#define LPUART_DATA_IDLINE_MASK                  (0x800U)
+#define LPUART_DATA_IDLINE_SHIFT                 (11U)
+/*! IDLINE - Idle Line
+ *  0b0..Receiver was not idle before receiving this character.
+ *  0b1..Receiver was idle before receiving this character.
+ */
+#define LPUART_DATA_IDLINE(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_IDLINE_SHIFT)) & LPUART_DATA_IDLINE_MASK)
+#define LPUART_DATA_RXEMPT_MASK                  (0x1000U)
+#define LPUART_DATA_RXEMPT_SHIFT                 (12U)
+/*! RXEMPT - Receive Buffer Empty
+ *  0b0..Receive buffer contains valid data.
+ *  0b1..Receive buffer is empty, data returned on read is not valid.
+ */
+#define LPUART_DATA_RXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_RXEMPT_SHIFT)) & LPUART_DATA_RXEMPT_MASK)
+#define LPUART_DATA_FRETSC_MASK                  (0x2000U)
+#define LPUART_DATA_FRETSC_SHIFT                 (13U)
+/*! FRETSC - Frame Error / Transmit Special Character
+ *  0b0..The dataword was received without a frame error on read, or transmit a normal character on write.
+ *  0b1..The dataword was received with a frame error, or transmit an idle or break character on transmit.
+ */
+#define LPUART_DATA_FRETSC(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_FRETSC_SHIFT)) & LPUART_DATA_FRETSC_MASK)
+#define LPUART_DATA_PARITYE_MASK                 (0x4000U)
+#define LPUART_DATA_PARITYE_SHIFT                (14U)
+/*! PARITYE - PARITYE
+ *  0b0..The dataword was received without a parity error.
+ *  0b1..The dataword was received with a parity error.
+ */
+#define LPUART_DATA_PARITYE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_PARITYE_SHIFT)) & LPUART_DATA_PARITYE_MASK)
+#define LPUART_DATA_NOISY_MASK                   (0x8000U)
+#define LPUART_DATA_NOISY_SHIFT                  (15U)
+/*! NOISY - NOISY
+ *  0b0..The dataword was received without noise.
+ *  0b1..The data was received with noise.
+ */
+#define LPUART_DATA_NOISY(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_DATA_NOISY_SHIFT)) & LPUART_DATA_NOISY_MASK)
+/*! @} */
+
+/*! @name MATCH - LPUART Match Address Register */
+/*! @{ */
+#define LPUART_MATCH_MA1_MASK                    (0x3FFU)
+#define LPUART_MATCH_MA1_SHIFT                   (0U)
+#define LPUART_MATCH_MA1(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MATCH_MA1_SHIFT)) & LPUART_MATCH_MA1_MASK)
+#define LPUART_MATCH_MA2_MASK                    (0x3FF0000U)
+#define LPUART_MATCH_MA2_SHIFT                   (16U)
+#define LPUART_MATCH_MA2(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MATCH_MA2_SHIFT)) & LPUART_MATCH_MA2_MASK)
+/*! @} */
+
+/*! @name MODIR - LPUART Modem IrDA Register */
+/*! @{ */
+#define LPUART_MODIR_TXCTSE_MASK                 (0x1U)
+#define LPUART_MODIR_TXCTSE_SHIFT                (0U)
+/*! TXCTSE - Transmitter clear-to-send enable
+ *  0b0..CTS has no effect on the transmitter.
+ *  0b1..Enables clear-to-send operation. The transmitter checks the state of CTS each time it is ready to send a character. If CTS is asserted, the character is sent. If CTS is deasserted, the signal TXD remains in the mark state and transmission is delayed until CTS is asserted. Changes in CTS as a character is being sent do not affect its transmission.
+ */
+#define LPUART_MODIR_TXCTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSE_SHIFT)) & LPUART_MODIR_TXCTSE_MASK)
+#define LPUART_MODIR_TXRTSE_MASK                 (0x2U)
+#define LPUART_MODIR_TXRTSE_SHIFT                (1U)
+/*! TXRTSE - Transmitter request-to-send enable
+ *  0b0..The transmitter has no effect on RTS.
+ *  0b1..When a character is placed into an empty transmitter data buffer , RTS asserts one bit time before the start bit is transmitted. RTS deasserts one bit time after all characters in the transmitter data buffer and shift register are completely sent, including the last stop bit.
+ */
+#define LPUART_MODIR_TXRTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXRTSE_SHIFT)) & LPUART_MODIR_TXRTSE_MASK)
+#define LPUART_MODIR_TXRTSPOL_MASK               (0x4U)
+#define LPUART_MODIR_TXRTSPOL_SHIFT              (2U)
+/*! TXRTSPOL - Transmitter request-to-send polarity
+ *  0b0..Transmitter RTS is active low.
+ *  0b1..Transmitter RTS is active high.
+ */
+#define LPUART_MODIR_TXRTSPOL(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXRTSPOL_SHIFT)) & LPUART_MODIR_TXRTSPOL_MASK)
+#define LPUART_MODIR_RXRTSE_MASK                 (0x8U)
+#define LPUART_MODIR_RXRTSE_SHIFT                (3U)
+/*! RXRTSE - Receiver request-to-send enable
+ *  0b0..The receiver has no effect on RTS.
+ *  0b1..RTS is deasserted if the receiver data register is full or a start bit has been detected that would cause the receiver data register to become full. RTS is asserted if the receiver data register is not full and has not detected a start bit that would cause the receiver data register to become full.
+ */
+#define LPUART_MODIR_RXRTSE(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_RXRTSE_SHIFT)) & LPUART_MODIR_RXRTSE_MASK)
+#define LPUART_MODIR_TXCTSC_MASK                 (0x10U)
+#define LPUART_MODIR_TXCTSC_SHIFT                (4U)
+/*! TXCTSC - Transmit CTS Configuration
+ *  0b0..CTS input is sampled at the start of each character.
+ *  0b1..CTS input is sampled when the transmitter is idle.
+ */
+#define LPUART_MODIR_TXCTSC(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSC_SHIFT)) & LPUART_MODIR_TXCTSC_MASK)
+#define LPUART_MODIR_TXCTSSRC_MASK               (0x20U)
+#define LPUART_MODIR_TXCTSSRC_SHIFT              (5U)
+/*! TXCTSSRC - Transmit CTS Source
+ *  0b0..CTS input is the CTS_B pin.
+ *  0b1..CTS input is the inverted Receiver Match result.
+ */
+#define LPUART_MODIR_TXCTSSRC(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TXCTSSRC_SHIFT)) & LPUART_MODIR_TXCTSSRC_MASK)
+#define LPUART_MODIR_RTSWATER_MASK               (0x700U)
+#define LPUART_MODIR_RTSWATER_SHIFT              (8U)
+#define LPUART_MODIR_RTSWATER(x)                 (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_RTSWATER_SHIFT)) & LPUART_MODIR_RTSWATER_MASK)
+#define LPUART_MODIR_TNP_MASK                    (0x30000U)
+#define LPUART_MODIR_TNP_SHIFT                   (16U)
+/*! TNP - Transmitter narrow pulse
+ *  0b00..1/OSR.
+ *  0b01..2/OSR.
+ *  0b10..3/OSR.
+ *  0b11..4/OSR.
+ */
+#define LPUART_MODIR_TNP(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_TNP_SHIFT)) & LPUART_MODIR_TNP_MASK)
+#define LPUART_MODIR_IREN_MASK                   (0x40000U)
+#define LPUART_MODIR_IREN_SHIFT                  (18U)
+/*! IREN - Infrared enable
+ *  0b0..IR disabled.
+ *  0b1..IR enabled.
+ */
+#define LPUART_MODIR_IREN(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_MODIR_IREN_SHIFT)) & LPUART_MODIR_IREN_MASK)
+/*! @} */
+
+/*! @name FIFO - LPUART FIFO Register */
+/*! @{ */
+#define LPUART_FIFO_RXFIFOSIZE_MASK              (0x7U)
+#define LPUART_FIFO_RXFIFOSIZE_SHIFT             (0U)
+/*! RXFIFOSIZE - Receive FIFO. Buffer Depth
+ *  0b000..Receive FIFO/Buffer depth = 1 dataword.
+ *  0b001..Receive FIFO/Buffer depth = 4 datawords.
+ *  0b010..Receive FIFO/Buffer depth = 8 datawords.
+ *  0b011..Receive FIFO/Buffer depth = 16 datawords.
+ *  0b100..Receive FIFO/Buffer depth = 32 datawords.
+ *  0b101..Receive FIFO/Buffer depth = 64 datawords.
+ *  0b110..Receive FIFO/Buffer depth = 128 datawords.
+ *  0b111..Receive FIFO/Buffer depth = 256 datawords.
+ */
+#define LPUART_FIFO_RXFIFOSIZE(x)                (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFIFOSIZE_SHIFT)) & LPUART_FIFO_RXFIFOSIZE_MASK)
+#define LPUART_FIFO_RXFE_MASK                    (0x8U)
+#define LPUART_FIFO_RXFE_SHIFT                   (3U)
+/*! RXFE - Receive FIFO Enable
+ *  0b0..Receive FIFO is not enabled. Buffer is depth 1. (Legacy support)
+ *  0b1..Receive FIFO is enabled. Buffer is depth indicted by RXFIFOSIZE.
+ */
+#define LPUART_FIFO_RXFE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFE_SHIFT)) & LPUART_FIFO_RXFE_MASK)
+#define LPUART_FIFO_TXFIFOSIZE_MASK              (0x70U)
+#define LPUART_FIFO_TXFIFOSIZE_SHIFT             (4U)
+/*! TXFIFOSIZE - Transmit FIFO. Buffer Depth
+ *  0b000..Transmit FIFO/Buffer depth = 1 dataword.
+ *  0b001..Transmit FIFO/Buffer depth = 4 datawords.
+ *  0b010..Transmit FIFO/Buffer depth = 8 datawords.
+ *  0b011..Transmit FIFO/Buffer depth = 16 datawords.
+ *  0b100..Transmit FIFO/Buffer depth = 32 datawords.
+ *  0b101..Transmit FIFO/Buffer depth = 64 datawords.
+ *  0b110..Transmit FIFO/Buffer depth = 128 datawords.
+ *  0b111..Transmit FIFO/Buffer depth = 256 datawords
+ */
+#define LPUART_FIFO_TXFIFOSIZE(x)                (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFIFOSIZE_SHIFT)) & LPUART_FIFO_TXFIFOSIZE_MASK)
+#define LPUART_FIFO_TXFE_MASK                    (0x80U)
+#define LPUART_FIFO_TXFE_SHIFT                   (7U)
+/*! TXFE - Transmit FIFO Enable
+ *  0b0..Transmit FIFO is not enabled. Buffer is depth 1. (Legacy support).
+ *  0b1..Transmit FIFO is enabled. Buffer is depth indicated by TXFIFOSIZE.
+ */
+#define LPUART_FIFO_TXFE(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFE_SHIFT)) & LPUART_FIFO_TXFE_MASK)
+#define LPUART_FIFO_RXUFE_MASK                   (0x100U)
+#define LPUART_FIFO_RXUFE_SHIFT                  (8U)
+/*! RXUFE - Receive FIFO Underflow Interrupt Enable
+ *  0b0..RXUF flag does not generate an interrupt to the host.
+ *  0b1..RXUF flag generates an interrupt to the host.
+ */
+#define LPUART_FIFO_RXUFE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXUFE_SHIFT)) & LPUART_FIFO_RXUFE_MASK)
+#define LPUART_FIFO_TXOFE_MASK                   (0x200U)
+#define LPUART_FIFO_TXOFE_SHIFT                  (9U)
+/*! TXOFE - Transmit FIFO Overflow Interrupt Enable
+ *  0b0..TXOF flag does not generate an interrupt to the host.
+ *  0b1..TXOF flag generates an interrupt to the host.
+ */
+#define LPUART_FIFO_TXOFE(x)                     (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXOFE_SHIFT)) & LPUART_FIFO_TXOFE_MASK)
+#define LPUART_FIFO_RXIDEN_MASK                  (0x1C00U)
+#define LPUART_FIFO_RXIDEN_SHIFT                 (10U)
+/*! RXIDEN - Receiver Idle Empty Enable
+ *  0b000..Disable RDRF assertion due to partially filled FIFO when receiver is idle.
+ *  0b001..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 1 character.
+ *  0b010..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 2 characters.
+ *  0b011..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 4 characters.
+ *  0b100..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 8 characters.
+ *  0b101..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 16 characters.
+ *  0b110..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 32 characters.
+ *  0b111..Enable RDRF assertion due to partially filled FIFO when receiver is idle for 64 characters.
+ */
+#define LPUART_FIFO_RXIDEN(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXIDEN_SHIFT)) & LPUART_FIFO_RXIDEN_MASK)
+#define LPUART_FIFO_RXFLUSH_MASK                 (0x4000U)
+#define LPUART_FIFO_RXFLUSH_SHIFT                (14U)
+/*! RXFLUSH - Receive FIFO/Buffer Flush
+ *  0b0..No flush operation occurs.
+ *  0b1..All data in the receive FIFO/buffer is cleared out.
+ */
+#define LPUART_FIFO_RXFLUSH(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXFLUSH_SHIFT)) & LPUART_FIFO_RXFLUSH_MASK)
+#define LPUART_FIFO_TXFLUSH_MASK                 (0x8000U)
+#define LPUART_FIFO_TXFLUSH_SHIFT                (15U)
+/*! TXFLUSH - Transmit FIFO/Buffer Flush
+ *  0b0..No flush operation occurs.
+ *  0b1..All data in the transmit FIFO/Buffer is cleared out.
+ */
+#define LPUART_FIFO_TXFLUSH(x)                   (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXFLUSH_SHIFT)) & LPUART_FIFO_TXFLUSH_MASK)
+#define LPUART_FIFO_RXUF_MASK                    (0x10000U)
+#define LPUART_FIFO_RXUF_SHIFT                   (16U)
+/*! RXUF - Receiver Buffer Underflow Flag
+ *  0b0..No receive buffer underflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one receive buffer underflow has occurred since the last time the flag was cleared.
+ */
+#define LPUART_FIFO_RXUF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXUF_SHIFT)) & LPUART_FIFO_RXUF_MASK)
+#define LPUART_FIFO_TXOF_MASK                    (0x20000U)
+#define LPUART_FIFO_TXOF_SHIFT                   (17U)
+/*! TXOF - Transmitter Buffer Overflow Flag
+ *  0b0..No transmit buffer overflow has occurred since the last time the flag was cleared.
+ *  0b1..At least one transmit buffer overflow has occurred since the last time the flag was cleared.
+ */
+#define LPUART_FIFO_TXOF(x)                      (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXOF_SHIFT)) & LPUART_FIFO_TXOF_MASK)
+#define LPUART_FIFO_RXEMPT_MASK                  (0x400000U)
+#define LPUART_FIFO_RXEMPT_SHIFT                 (22U)
+/*! RXEMPT - Receive Buffer/FIFO Empty
+ *  0b0..Receive buffer is not empty.
+ *  0b1..Receive buffer is empty.
+ */
+#define LPUART_FIFO_RXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_RXEMPT_SHIFT)) & LPUART_FIFO_RXEMPT_MASK)
+#define LPUART_FIFO_TXEMPT_MASK                  (0x800000U)
+#define LPUART_FIFO_TXEMPT_SHIFT                 (23U)
+/*! TXEMPT - Transmit Buffer/FIFO Empty
+ *  0b0..Transmit buffer is not empty.
+ *  0b1..Transmit buffer is empty.
+ */
+#define LPUART_FIFO_TXEMPT(x)                    (((uint32_t)(((uint32_t)(x)) << LPUART_FIFO_TXEMPT_SHIFT)) & LPUART_FIFO_TXEMPT_MASK)
+/*! @} */
+
+/*! @name WATER - LPUART Watermark Register */
+/*! @{ */
+#define LPUART_WATER_TXWATER_MASK                (0x7U)
+#define LPUART_WATER_TXWATER_SHIFT               (0U)
+#define LPUART_WATER_TXWATER(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_TXWATER_SHIFT)) & LPUART_WATER_TXWATER_MASK)
+#define LPUART_WATER_TXCOUNT_MASK                (0xF00U)
+#define LPUART_WATER_TXCOUNT_SHIFT               (8U)
+#define LPUART_WATER_TXCOUNT(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_TXCOUNT_SHIFT)) & LPUART_WATER_TXCOUNT_MASK)
+#define LPUART_WATER_RXWATER_MASK                (0x70000U)
+#define LPUART_WATER_RXWATER_SHIFT               (16U)
+#define LPUART_WATER_RXWATER(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_RXWATER_SHIFT)) & LPUART_WATER_RXWATER_MASK)
+#define LPUART_WATER_RXCOUNT_MASK                (0xF000000U)
+#define LPUART_WATER_RXCOUNT_SHIFT               (24U)
+#define LPUART_WATER_RXCOUNT(x)                  (((uint32_t)(((uint32_t)(x)) << LPUART_WATER_RXCOUNT_SHIFT)) & LPUART_WATER_RXCOUNT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group LPUART_Register_Masks */
+
+
+/* LPUART - Peripheral instance base addresses */
+/** Peripheral LPUART0 base address */
+#define LPUART0_BASE                             (0x40042000u)
+/** Peripheral LPUART0 base pointer */
+#define LPUART0                                  ((LPUART_Type *)LPUART0_BASE)
+/** Peripheral LPUART1 base address */
+#define LPUART1_BASE                             (0x40043000u)
+/** Peripheral LPUART1 base pointer */
+#define LPUART1                                  ((LPUART_Type *)LPUART1_BASE)
+/** Peripheral LPUART2 base address */
+#define LPUART2_BASE                             (0x40044000u)
+/** Peripheral LPUART2 base pointer */
+#define LPUART2                                  ((LPUART_Type *)LPUART2_BASE)
+/** Peripheral LPUART3 base address */
+#define LPUART3_BASE                             (0x41036000u)
+/** Peripheral LPUART3 base pointer */
+#define LPUART3                                  ((LPUART_Type *)LPUART3_BASE)
+/** Array initializer of LPUART peripheral base addresses */
+#define LPUART_BASE_ADDRS                        { LPUART0_BASE, LPUART1_BASE, LPUART2_BASE, LPUART3_BASE }
+/** Array initializer of LPUART peripheral base pointers */
+#define LPUART_BASE_PTRS                         { LPUART0, LPUART1, LPUART2, LPUART3 }
+/** Interrupt vectors for the LPUART peripheral type */
+#define LPUART_RX_TX_IRQS                        { LPUART0_IRQn, LPUART1_IRQn, LPUART2_IRQn, LPUART3_IRQn }
+#define LPUART_ERR_IRQS                          { LPUART0_IRQn, LPUART1_IRQn, LPUART2_IRQn, LPUART3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group LPUART_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MCM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MCM_Peripheral_Access_Layer MCM Peripheral Access Layer
+ * @{
+ */
+
+/** MCM - Register Layout Typedef */
+typedef struct {
+       uint8_t RESERVED_0[8];
+  __I  uint16_t PLASC;                             /**< Crossbar Switch (AXBS) Slave Configuration, offset: 0x8 */
+  __I  uint16_t PLAMC;                             /**< Crossbar Switch (AXBS) Master Configuration, offset: 0xA */
+  __IO uint32_t CPCR;                              /**< Core Platform Control Register, offset: 0xC */
+       uint8_t RESERVED_1[36];
+  __IO uint32_t CPCR2;                             /**< Core Platform Control Register 2, offset: 0x34 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t CPO;                               /**< Compute Operation Control Register, offset: 0x40 */
+} MCM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MCM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MCM_Register_Masks MCM Register Masks
+ * @{
+ */
+
+/*! @name PLASC - Crossbar Switch (AXBS) Slave Configuration */
+/*! @{ */
+#define MCM_PLASC_ASC_MASK                       (0xFFU)
+#define MCM_PLASC_ASC_SHIFT                      (0U)
+/*! ASC - Each bit in the ASC field indicates whether there is a corresponding connection to the crossbar switch's slave input port.
+ *  0b00000000..A bus slave connection to AXBS input port n is absent
+ *  0b00000001..A bus slave connection to AXBS input port n is present
+ */
+#define MCM_PLASC_ASC(x)                         (((uint16_t)(((uint16_t)(x)) << MCM_PLASC_ASC_SHIFT)) & MCM_PLASC_ASC_MASK)
+/*! @} */
+
+/*! @name PLAMC - Crossbar Switch (AXBS) Master Configuration */
+/*! @{ */
+#define MCM_PLAMC_AMC_MASK                       (0xFFU)
+#define MCM_PLAMC_AMC_SHIFT                      (0U)
+/*! AMC - Each bit in the AMC field indicates whether there is a corresponding connection to the AXBS master input port.
+ *  0b00000000..A bus master connection to AXBS input port n is absent
+ *  0b00000001..A bus master connection to AXBS input port n is present
+ */
+#define MCM_PLAMC_AMC(x)                         (((uint16_t)(((uint16_t)(x)) << MCM_PLAMC_AMC_SHIFT)) & MCM_PLAMC_AMC_MASK)
+/*! @} */
+
+/*! @name CPCR - Core Platform Control Register */
+/*! @{ */
+#define MCM_CPCR_ARB_MASK                        (0x200U)
+#define MCM_CPCR_ARB_SHIFT                       (9U)
+/*! ARB - Arbitration select
+ *  0b0..Fixed-priority arbitration for the crossbar masters
+ *  0b1..Round-robin arbitration for the crossbar masters
+ */
+#define MCM_CPCR_ARB(x)                          (((uint32_t)(((uint32_t)(x)) << MCM_CPCR_ARB_SHIFT)) & MCM_CPCR_ARB_MASK)
+/*! @} */
+
+/*! @name CPCR2 - Core Platform Control Register 2 */
+/*! @{ */
+#define MCM_CPCR2_CCBC_MASK                      (0x1U)
+#define MCM_CPCR2_CCBC_SHIFT                     (0U)
+#define MCM_CPCR2_CCBC(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_CCBC_SHIFT)) & MCM_CPCR2_CCBC_MASK)
+#define MCM_CPCR2_DCC_MASK                       (0x8U)
+#define MCM_CPCR2_DCC_SHIFT                      (3U)
+#define MCM_CPCR2_DCC(x)                         (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_DCC_SHIFT)) & MCM_CPCR2_DCC_MASK)
+#define MCM_CPCR2_CCSIZ_MASK                     (0xF0U)
+#define MCM_CPCR2_CCSIZ_SHIFT                    (4U)
+/*! CCSIZ - Code cache size
+ *  0b0000..No cache
+ *  0b0010..2KB
+ *  0b0011..4KB
+ *  0b0100..8KB
+ */
+#define MCM_CPCR2_CCSIZ(x)                       (((uint32_t)(((uint32_t)(x)) << MCM_CPCR2_CCSIZ_SHIFT)) & MCM_CPCR2_CCSIZ_MASK)
+/*! @} */
+
+/*! @name CPO - Compute Operation Control Register */
+/*! @{ */
+#define MCM_CPO_CPOREQ_MASK                      (0x1U)
+#define MCM_CPO_CPOREQ_SHIFT                     (0U)
+/*! CPOREQ - Compute Operation request
+ *  0b0..Request is cleared.
+ *  0b1..Request Compute Operation.
+ */
+#define MCM_CPO_CPOREQ(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOREQ_SHIFT)) & MCM_CPO_CPOREQ_MASK)
+#define MCM_CPO_CPOACK_MASK                      (0x2U)
+#define MCM_CPO_CPOACK_SHIFT                     (1U)
+/*! CPOACK - Compute Operation acknowledge
+ *  0b0..Compute operation entry has not completed or compute operation exit has completed.
+ *  0b1..Compute operation entry has completed or compute operation exit has not completed.
+ */
+#define MCM_CPO_CPOACK(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOACK_SHIFT)) & MCM_CPO_CPOACK_MASK)
+#define MCM_CPO_CPOWOI_MASK                      (0x4U)
+#define MCM_CPO_CPOWOI_SHIFT                     (2U)
+/*! CPOWOI - Compute Operation wakeup on interrupt
+ *  0b0..No effect.
+ *  0b1..When set, the CPOREQ is cleared on any interrupt or exception vector fetch.
+ */
+#define MCM_CPO_CPOWOI(x)                        (((uint32_t)(((uint32_t)(x)) << MCM_CPO_CPOWOI_SHIFT)) & MCM_CPO_CPOWOI_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MCM_Register_Masks */
+
+
+/* MCM - Peripheral instance base addresses */
+/** Peripheral MCM1 base address */
+#define MCM1_BASE                                (0xF0003000u)
+/** Peripheral MCM1 base pointer */
+#define MCM1                                     ((MCM_Type *)MCM1_BASE)
+/** Array initializer of MCM peripheral base addresses */
+#define MCM_BASE_ADDRS                           { 0u, MCM1_BASE }
+/** Array initializer of MCM peripheral base pointers */
+#define MCM_BASE_PTRS                            { (MCM_Type *)0u, MCM1 }
+/* MCM compatibility definitions */
+#define MCM_BASE                  MCM1_BASE
+#define MCM                       MCM1
+
+
+/*!
+ * @}
+ */ /* end of group MCM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MMDVSQ Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MMDVSQ_Peripheral_Access_Layer MMDVSQ Peripheral Access Layer
+ * @{
+ */
+
+/** MMDVSQ - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t DEND;                              /**< Dividend Register, offset: 0x0 */
+  __IO uint32_t DSOR;                              /**< Divisor Register, offset: 0x4 */
+  __IO uint32_t CSR;                               /**< Control/Status Register, offset: 0x8 */
+  __IO uint32_t RES;                               /**< Result Register, offset: 0xC */
+  __O  uint32_t RCND;                              /**< Radicand Register, offset: 0x10 */
+} MMDVSQ_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MMDVSQ Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MMDVSQ_Register_Masks MMDVSQ Register Masks
+ * @{
+ */
+
+/*! @name DEND - Dividend Register */
+/*! @{ */
+#define MMDVSQ_DEND_DIVIDEND_MASK                (0xFFFFFFFFU)
+#define MMDVSQ_DEND_DIVIDEND_SHIFT               (0U)
+#define MMDVSQ_DEND_DIVIDEND(x)                  (((uint32_t)(((uint32_t)(x)) << MMDVSQ_DEND_DIVIDEND_SHIFT)) & MMDVSQ_DEND_DIVIDEND_MASK)
+/*! @} */
+
+/*! @name DSOR - Divisor Register */
+/*! @{ */
+#define MMDVSQ_DSOR_DIVISOR_MASK                 (0xFFFFFFFFU)
+#define MMDVSQ_DSOR_DIVISOR_SHIFT                (0U)
+#define MMDVSQ_DSOR_DIVISOR(x)                   (((uint32_t)(((uint32_t)(x)) << MMDVSQ_DSOR_DIVISOR_SHIFT)) & MMDVSQ_DSOR_DIVISOR_MASK)
+/*! @} */
+
+/*! @name CSR - Control/Status Register */
+/*! @{ */
+#define MMDVSQ_CSR_SRT_MASK                      (0x1U)
+#define MMDVSQ_CSR_SRT_SHIFT                     (0U)
+/*! SRT - Start
+ *  0b0..No operation initiated
+ *  0b1..If CSR[DFS] = 1, then initiate a divide calculation, else ignore
+ */
+#define MMDVSQ_CSR_SRT(x)                        (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_SRT_SHIFT)) & MMDVSQ_CSR_SRT_MASK)
+#define MMDVSQ_CSR_USGN_MASK                     (0x2U)
+#define MMDVSQ_CSR_USGN_SHIFT                    (1U)
+/*! USGN - Unsigned calculation
+ *  0b0..Perform a signed divide
+ *  0b1..Perform an unsigned divide
+ */
+#define MMDVSQ_CSR_USGN(x)                       (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_USGN_SHIFT)) & MMDVSQ_CSR_USGN_MASK)
+#define MMDVSQ_CSR_REM_MASK                      (0x4U)
+#define MMDVSQ_CSR_REM_SHIFT                     (2U)
+/*! REM - REMainder calculation
+ *  0b0..Return the quotient in the RES for the divide calculation
+ *  0b1..Return the remainder in the RES for the divide calculation
+ */
+#define MMDVSQ_CSR_REM(x)                        (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_REM_SHIFT)) & MMDVSQ_CSR_REM_MASK)
+#define MMDVSQ_CSR_DZE_MASK                      (0x8U)
+#define MMDVSQ_CSR_DZE_SHIFT                     (3U)
+/*! DZE - Divide-by-Zero-Enable
+ *  0b0..Reads of the RES register return the register contents
+ *  0b1..If CSR[DZ] = 1, an attempted read of RES register is error terminated to signal a divide-by-zero, else the register contents are returned
+ */
+#define MMDVSQ_CSR_DZE(x)                        (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_DZE_SHIFT)) & MMDVSQ_CSR_DZE_MASK)
+#define MMDVSQ_CSR_DZ_MASK                       (0x10U)
+#define MMDVSQ_CSR_DZ_SHIFT                      (4U)
+/*! DZ - Divide-by-Zero
+ *  0b0..The last divide operation had a non-zero divisor, that is, DSOR != 0
+ *  0b1..The last divide operation had a zero divisor, that is, DSOR = 0
+ */
+#define MMDVSQ_CSR_DZ(x)                         (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_DZ_SHIFT)) & MMDVSQ_CSR_DZ_MASK)
+#define MMDVSQ_CSR_DFS_MASK                      (0x20U)
+#define MMDVSQ_CSR_DFS_SHIFT                     (5U)
+/*! DFS - Disable Fast Start
+ *  0b0..A divide operation is initiated by a write to the DSOR register
+ *  0b1..A divide operation is initiated by a write to the CSR register with CSR[SRT] = 1
+ */
+#define MMDVSQ_CSR_DFS(x)                        (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_DFS_SHIFT)) & MMDVSQ_CSR_DFS_MASK)
+#define MMDVSQ_CSR_SQRT_MASK                     (0x20000000U)
+#define MMDVSQ_CSR_SQRT_SHIFT                    (29U)
+/*! SQRT - SQUARE ROOT
+ *  0b0..Current or last MMDVSQ operation was not a square root
+ *  0b1..Current or last MMDVSQ operation was a square root
+ */
+#define MMDVSQ_CSR_SQRT(x)                       (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_SQRT_SHIFT)) & MMDVSQ_CSR_SQRT_MASK)
+#define MMDVSQ_CSR_DIV_MASK                      (0x40000000U)
+#define MMDVSQ_CSR_DIV_SHIFT                     (30U)
+/*! DIV - DIVIDE
+ *  0b0..Current or last MMDVSQ operation was not a divide
+ *  0b1..Current or last MMDVSQ operation was a divide
+ */
+#define MMDVSQ_CSR_DIV(x)                        (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_DIV_SHIFT)) & MMDVSQ_CSR_DIV_MASK)
+#define MMDVSQ_CSR_BUSY_MASK                     (0x80000000U)
+#define MMDVSQ_CSR_BUSY_SHIFT                    (31U)
+/*! BUSY - BUSY
+ *  0b0..MMDVSQ is idle
+ *  0b1..MMDVSQ is busy performing a divide or square root calculation
+ */
+#define MMDVSQ_CSR_BUSY(x)                       (((uint32_t)(((uint32_t)(x)) << MMDVSQ_CSR_BUSY_SHIFT)) & MMDVSQ_CSR_BUSY_MASK)
+/*! @} */
+
+/*! @name RES - Result Register */
+/*! @{ */
+#define MMDVSQ_RES_RESULT_MASK                   (0xFFFFFFFFU)
+#define MMDVSQ_RES_RESULT_SHIFT                  (0U)
+#define MMDVSQ_RES_RESULT(x)                     (((uint32_t)(((uint32_t)(x)) << MMDVSQ_RES_RESULT_SHIFT)) & MMDVSQ_RES_RESULT_MASK)
+/*! @} */
+
+/*! @name RCND - Radicand Register */
+/*! @{ */
+#define MMDVSQ_RCND_RADICAND_MASK                (0xFFFFFFFFU)
+#define MMDVSQ_RCND_RADICAND_SHIFT               (0U)
+#define MMDVSQ_RCND_RADICAND(x)                  (((uint32_t)(((uint32_t)(x)) << MMDVSQ_RCND_RADICAND_SHIFT)) & MMDVSQ_RCND_RADICAND_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MMDVSQ_Register_Masks */
+
+
+/* MMDVSQ - Peripheral instance base addresses */
+/** Peripheral MMDVSQ1 base address */
+#define MMDVSQ1_BASE                             (0xF0004000u)
+/** Peripheral MMDVSQ1 base pointer */
+#define MMDVSQ1                                  ((MMDVSQ_Type *)MMDVSQ1_BASE)
+/** Array initializer of MMDVSQ peripheral base addresses */
+#define MMDVSQ_BASE_ADDRS                        { 0u, MMDVSQ1_BASE }
+/** Array initializer of MMDVSQ peripheral base pointers */
+#define MMDVSQ_BASE_PTRS                         { (MMDVSQ_Type *)0u, MMDVSQ1 }
+
+/*!
+ * @}
+ */ /* end of group MMDVSQ_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MSCM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MSCM_Peripheral_Access_Layer MSCM Peripheral Access Layer
+ * @{
+ */
+
+/** MSCM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t CPXTYPE;                           /**< Processor X Type Register, offset: 0x0 */
+  __I  uint32_t CPXNUM;                            /**< Processor X Number Register, offset: 0x4 */
+  __I  uint32_t CPXMASTER;                         /**< Processor X Master Register, offset: 0x8 */
+  __I  uint32_t CPXCOUNT;                          /**< Processor X Count Register, offset: 0xC */
+  __I  uint32_t CPXCFG0;                           /**< Processor X Configuration Register 0, offset: 0x10 */
+  __I  uint32_t CPXCFG1;                           /**< Processor X Configuration Register 1, offset: 0x14 */
+  __I  uint32_t CPXCFG2;                           /**< Processor X Configuration Register 2, offset: 0x18 */
+  __I  uint32_t CPXCFG3;                           /**< Processor X Configuration Register 3, offset: 0x1C */
+  struct {                                         /* offset: 0x20, array step: 0x20 */
+    __I  uint32_t TYPE;                              /**< Processor 0 Type Register..Processor 1 Type Register, array offset: 0x20, array step: 0x20 */
+    __I  uint32_t NUM;                               /**< Processor 0 Number Register..Processor 1 Number Register, array offset: 0x24, array step: 0x20 */
+    __I  uint32_t MASTER;                            /**< Processor 0 Master Register..Processor 1 Master Register, array offset: 0x28, array step: 0x20 */
+    __I  uint32_t COUNT;                             /**< Processor 0 Count Register..Processor 1 Count Register, array offset: 0x2C, array step: 0x20 */
+    __I  uint32_t CFG0;                              /**< Processor 0 Configuration Register 0..Processor 1 Configuration Register 0, array offset: 0x30, array step: 0x20 */
+    __I  uint32_t CFG1;                              /**< Processor 0 Configuration Register 1..Processor 1 Configuration Register 1, array offset: 0x34, array step: 0x20 */
+    __I  uint32_t CFG2;                              /**< Processor 0 Configuration Register 2..Processor 1 Configuration Register 2, array offset: 0x38, array step: 0x20 */
+    __I  uint32_t CFG3;                              /**< Processor 0 Configuration Register 3..Processor 1 Configuration Register 3, array offset: 0x3C, array step: 0x20 */
+  } CP[2];
+       uint8_t RESERVED_0[928];
+  __IO uint32_t OCMDR0;                            /**< On-Chip Memory Descriptor Register, offset: 0x400 */
+  __IO uint32_t OCMDR1;                            /**< On-Chip Memory Descriptor Register, offset: 0x404 */
+  __IO uint32_t OCMDR2;                            /**< On-Chip Memory Descriptor Register, offset: 0x408 */
+  __IO uint32_t OCMDR3;                            /**< On-Chip Memory Descriptor Register, offset: 0x40C */
+} MSCM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MSCM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MSCM_Register_Masks MSCM Register Masks
+ * @{
+ */
+
+/*! @name CPXTYPE - Processor X Type Register */
+/*! @{ */
+#define MSCM_CPXTYPE_RYPZ_MASK                   (0xFFU)
+#define MSCM_CPXTYPE_RYPZ_SHIFT                  (0U)
+#define MSCM_CPXTYPE_RYPZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXTYPE_RYPZ_SHIFT)) & MSCM_CPXTYPE_RYPZ_MASK)
+#define MSCM_CPXTYPE_PERSONALITY_MASK            (0xFFFFFF00U)
+#define MSCM_CPXTYPE_PERSONALITY_SHIFT           (8U)
+#define MSCM_CPXTYPE_PERSONALITY(x)              (((uint32_t)(((uint32_t)(x)) << MSCM_CPXTYPE_PERSONALITY_SHIFT)) & MSCM_CPXTYPE_PERSONALITY_MASK)
+/*! @} */
+
+/*! @name CPXNUM - Processor X Number Register */
+/*! @{ */
+#define MSCM_CPXNUM_CPN_MASK                     (0x1U)
+#define MSCM_CPXNUM_CPN_SHIFT                    (0U)
+#define MSCM_CPXNUM_CPN(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXNUM_CPN_SHIFT)) & MSCM_CPXNUM_CPN_MASK)
+/*! @} */
+
+/*! @name CPXMASTER - Processor X Master Register */
+/*! @{ */
+#define MSCM_CPXMASTER_PPMN_MASK                 (0x3FU)
+#define MSCM_CPXMASTER_PPMN_SHIFT                (0U)
+#define MSCM_CPXMASTER_PPMN(x)                   (((uint32_t)(((uint32_t)(x)) << MSCM_CPXMASTER_PPMN_SHIFT)) & MSCM_CPXMASTER_PPMN_MASK)
+/*! @} */
+
+/*! @name CPXCOUNT - Processor X Count Register */
+/*! @{ */
+#define MSCM_CPXCOUNT_PCNT_MASK                  (0x3U)
+#define MSCM_CPXCOUNT_PCNT_SHIFT                 (0U)
+#define MSCM_CPXCOUNT_PCNT(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCOUNT_PCNT_SHIFT)) & MSCM_CPXCOUNT_PCNT_MASK)
+/*! @} */
+
+/*! @name CPXCFG0 - Processor X Configuration Register 0 */
+/*! @{ */
+#define MSCM_CPXCFG0_DCWY_MASK                   (0xFFU)
+#define MSCM_CPXCFG0_DCWY_SHIFT                  (0U)
+#define MSCM_CPXCFG0_DCWY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_DCWY_SHIFT)) & MSCM_CPXCFG0_DCWY_MASK)
+#define MSCM_CPXCFG0_DCSZ_MASK                   (0xFF00U)
+#define MSCM_CPXCFG0_DCSZ_SHIFT                  (8U)
+#define MSCM_CPXCFG0_DCSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_DCSZ_SHIFT)) & MSCM_CPXCFG0_DCSZ_MASK)
+#define MSCM_CPXCFG0_ICWY_MASK                   (0xFF0000U)
+#define MSCM_CPXCFG0_ICWY_SHIFT                  (16U)
+#define MSCM_CPXCFG0_ICWY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_ICWY_SHIFT)) & MSCM_CPXCFG0_ICWY_MASK)
+#define MSCM_CPXCFG0_ICSZ_MASK                   (0xFF000000U)
+#define MSCM_CPXCFG0_ICSZ_SHIFT                  (24U)
+#define MSCM_CPXCFG0_ICSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG0_ICSZ_SHIFT)) & MSCM_CPXCFG0_ICSZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG1 - Processor X Configuration Register 1 */
+/*! @{ */
+#define MSCM_CPXCFG1_L2WY_MASK                   (0xFF0000U)
+#define MSCM_CPXCFG1_L2WY_SHIFT                  (16U)
+#define MSCM_CPXCFG1_L2WY(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG1_L2WY_SHIFT)) & MSCM_CPXCFG1_L2WY_MASK)
+#define MSCM_CPXCFG1_L2SZ_MASK                   (0xFF000000U)
+#define MSCM_CPXCFG1_L2SZ_SHIFT                  (24U)
+#define MSCM_CPXCFG1_L2SZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG1_L2SZ_SHIFT)) & MSCM_CPXCFG1_L2SZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG2 - Processor X Configuration Register 2 */
+/*! @{ */
+#define MSCM_CPXCFG2_TMUSZ_MASK                  (0xFF00U)
+#define MSCM_CPXCFG2_TMUSZ_SHIFT                 (8U)
+#define MSCM_CPXCFG2_TMUSZ(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG2_TMUSZ_SHIFT)) & MSCM_CPXCFG2_TMUSZ_MASK)
+#define MSCM_CPXCFG2_TMLSZ_MASK                  (0xFF000000U)
+#define MSCM_CPXCFG2_TMLSZ_SHIFT                 (24U)
+#define MSCM_CPXCFG2_TMLSZ(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG2_TMLSZ_SHIFT)) & MSCM_CPXCFG2_TMLSZ_MASK)
+/*! @} */
+
+/*! @name CPXCFG3 - Processor X Configuration Register 3 */
+/*! @{ */
+#define MSCM_CPXCFG3_FPU_MASK                    (0x1U)
+#define MSCM_CPXCFG3_FPU_SHIFT                   (0U)
+/*! FPU - Floating Point Unit
+ *  0b0..FPU support is not included.
+ *  0b1..FPU support is included.
+ */
+#define MSCM_CPXCFG3_FPU(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_FPU_SHIFT)) & MSCM_CPXCFG3_FPU_MASK)
+#define MSCM_CPXCFG3_SIMD_MASK                   (0x2U)
+#define MSCM_CPXCFG3_SIMD_SHIFT                  (1U)
+/*! SIMD - SIMD/NEON instruction support
+ *  0b0..SIMD/NEON support is not included.
+ *  0b1..SIMD/NEON support is included.
+ */
+#define MSCM_CPXCFG3_SIMD(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_SIMD_SHIFT)) & MSCM_CPXCFG3_SIMD_MASK)
+#define MSCM_CPXCFG3_JAZ_MASK                    (0x4U)
+#define MSCM_CPXCFG3_JAZ_SHIFT                   (2U)
+/*! JAZ - Jazelle support
+ *  0b0..Jazelle support is not included.
+ *  0b1..Jazelle support is included.
+ */
+#define MSCM_CPXCFG3_JAZ(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_JAZ_SHIFT)) & MSCM_CPXCFG3_JAZ_MASK)
+#define MSCM_CPXCFG3_MMU_MASK                    (0x8U)
+#define MSCM_CPXCFG3_MMU_SHIFT                   (3U)
+/*! MMU - Memory Management Unit
+ *  0b0..MMU support is not included.
+ *  0b1..MMU support is included.
+ */
+#define MSCM_CPXCFG3_MMU(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_MMU_SHIFT)) & MSCM_CPXCFG3_MMU_MASK)
+#define MSCM_CPXCFG3_TZ_MASK                     (0x10U)
+#define MSCM_CPXCFG3_TZ_SHIFT                    (4U)
+/*! TZ - Trust Zone
+ *  0b0..Trust Zone support is not included.
+ *  0b1..Trust Zone support is included.
+ */
+#define MSCM_CPXCFG3_TZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_TZ_SHIFT)) & MSCM_CPXCFG3_TZ_MASK)
+#define MSCM_CPXCFG3_CMP_MASK                    (0x20U)
+#define MSCM_CPXCFG3_CMP_SHIFT                   (5U)
+/*! CMP - Core Memory Protection unit
+ *  0b0..Core Memory Protection is not included.
+ *  0b1..Core Memory Protection is included.
+ */
+#define MSCM_CPXCFG3_CMP(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_CMP_SHIFT)) & MSCM_CPXCFG3_CMP_MASK)
+#define MSCM_CPXCFG3_BB_MASK                     (0x40U)
+#define MSCM_CPXCFG3_BB_SHIFT                    (6U)
+/*! BB - Bit Banding
+ *  0b0..Bit Banding is not supported.
+ *  0b1..Bit Banding is supported.
+ */
+#define MSCM_CPXCFG3_BB(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_BB_SHIFT)) & MSCM_CPXCFG3_BB_MASK)
+#define MSCM_CPXCFG3_SBP_MASK                    (0x300U)
+#define MSCM_CPXCFG3_SBP_SHIFT                   (8U)
+#define MSCM_CPXCFG3_SBP(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_CPXCFG3_SBP_SHIFT)) & MSCM_CPXCFG3_SBP_MASK)
+/*! @} */
+
+/*! @name TYPE - Processor 0 Type Register..Processor 1 Type Register */
+/*! @{ */
+#define MSCM_TYPE_RYPZ_MASK                      (0xFFU)
+#define MSCM_TYPE_RYPZ_SHIFT                     (0U)
+#define MSCM_TYPE_RYPZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_TYPE_RYPZ_SHIFT)) & MSCM_TYPE_RYPZ_MASK)
+#define MSCM_TYPE_PERSONALITY_MASK               (0xFFFFFF00U)
+#define MSCM_TYPE_PERSONALITY_SHIFT              (8U)
+#define MSCM_TYPE_PERSONALITY(x)                 (((uint32_t)(((uint32_t)(x)) << MSCM_TYPE_PERSONALITY_SHIFT)) & MSCM_TYPE_PERSONALITY_MASK)
+/*! @} */
+
+/* The count of MSCM_TYPE */
+#define MSCM_TYPE_COUNT                          (2U)
+
+/*! @name NUM - Processor 0 Number Register..Processor 1 Number Register */
+/*! @{ */
+#define MSCM_NUM_CPN_MASK                        (0x1U)
+#define MSCM_NUM_CPN_SHIFT                       (0U)
+#define MSCM_NUM_CPN(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_NUM_CPN_SHIFT)) & MSCM_NUM_CPN_MASK)
+/*! @} */
+
+/* The count of MSCM_NUM */
+#define MSCM_NUM_COUNT                           (2U)
+
+/*! @name MASTER - Processor 0 Master Register..Processor 1 Master Register */
+/*! @{ */
+#define MSCM_MASTER_PPMN_MASK                    (0x3FU)
+#define MSCM_MASTER_PPMN_SHIFT                   (0U)
+#define MSCM_MASTER_PPMN(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_MASTER_PPMN_SHIFT)) & MSCM_MASTER_PPMN_MASK)
+/*! @} */
+
+/* The count of MSCM_MASTER */
+#define MSCM_MASTER_COUNT                        (2U)
+
+/*! @name COUNT - Processor 0 Count Register..Processor 1 Count Register */
+/*! @{ */
+#define MSCM_COUNT_PCNT_MASK                     (0x3U)
+#define MSCM_COUNT_PCNT_SHIFT                    (0U)
+#define MSCM_COUNT_PCNT(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_COUNT_PCNT_SHIFT)) & MSCM_COUNT_PCNT_MASK)
+/*! @} */
+
+/* The count of MSCM_COUNT */
+#define MSCM_COUNT_COUNT                         (2U)
+
+/*! @name CFG0 - Processor 0 Configuration Register 0..Processor 1 Configuration Register 0 */
+/*! @{ */
+#define MSCM_CFG0_DCWY_MASK                      (0xFFU)
+#define MSCM_CFG0_DCWY_SHIFT                     (0U)
+#define MSCM_CFG0_DCWY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_DCWY_SHIFT)) & MSCM_CFG0_DCWY_MASK)
+#define MSCM_CFG0_DCSZ_MASK                      (0xFF00U)
+#define MSCM_CFG0_DCSZ_SHIFT                     (8U)
+#define MSCM_CFG0_DCSZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_DCSZ_SHIFT)) & MSCM_CFG0_DCSZ_MASK)
+#define MSCM_CFG0_ICWY_MASK                      (0xFF0000U)
+#define MSCM_CFG0_ICWY_SHIFT                     (16U)
+#define MSCM_CFG0_ICWY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_ICWY_SHIFT)) & MSCM_CFG0_ICWY_MASK)
+#define MSCM_CFG0_ICSZ_MASK                      (0xFF000000U)
+#define MSCM_CFG0_ICSZ_SHIFT                     (24U)
+#define MSCM_CFG0_ICSZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG0_ICSZ_SHIFT)) & MSCM_CFG0_ICSZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG0 */
+#define MSCM_CFG0_COUNT                          (2U)
+
+/*! @name CFG1 - Processor 0 Configuration Register 1..Processor 1 Configuration Register 1 */
+/*! @{ */
+#define MSCM_CFG1_L2WY_MASK                      (0xFF0000U)
+#define MSCM_CFG1_L2WY_SHIFT                     (16U)
+#define MSCM_CFG1_L2WY(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG1_L2WY_SHIFT)) & MSCM_CFG1_L2WY_MASK)
+#define MSCM_CFG1_L2SZ_MASK                      (0xFF000000U)
+#define MSCM_CFG1_L2SZ_SHIFT                     (24U)
+#define MSCM_CFG1_L2SZ(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG1_L2SZ_SHIFT)) & MSCM_CFG1_L2SZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG1 */
+#define MSCM_CFG1_COUNT                          (2U)
+
+/*! @name CFG2 - Processor 0 Configuration Register 2..Processor 1 Configuration Register 2 */
+/*! @{ */
+#define MSCM_CFG2_TMUSZ_MASK                     (0xFF00U)
+#define MSCM_CFG2_TMUSZ_SHIFT                    (8U)
+#define MSCM_CFG2_TMUSZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CFG2_TMUSZ_SHIFT)) & MSCM_CFG2_TMUSZ_MASK)
+#define MSCM_CFG2_TMLSZ_MASK                     (0xFF000000U)
+#define MSCM_CFG2_TMLSZ_SHIFT                    (24U)
+#define MSCM_CFG2_TMLSZ(x)                       (((uint32_t)(((uint32_t)(x)) << MSCM_CFG2_TMLSZ_SHIFT)) & MSCM_CFG2_TMLSZ_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG2 */
+#define MSCM_CFG2_COUNT                          (2U)
+
+/*! @name CFG3 - Processor 0 Configuration Register 3..Processor 1 Configuration Register 3 */
+/*! @{ */
+#define MSCM_CFG3_FPU_MASK                       (0x1U)
+#define MSCM_CFG3_FPU_SHIFT                      (0U)
+/*! FPU - Floating Point Unit
+ *  0b0..FPU support is not included.
+ *  0b1..FPU support is included.
+ */
+#define MSCM_CFG3_FPU(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_FPU_SHIFT)) & MSCM_CFG3_FPU_MASK)
+#define MSCM_CFG3_SIMD_MASK                      (0x2U)
+#define MSCM_CFG3_SIMD_SHIFT                     (1U)
+/*! SIMD - SIMD/NEON instruction support
+ *  0b0..SIMD/NEON support is not included.
+ *  0b1..SIMD/NEON support is included.
+ */
+#define MSCM_CFG3_SIMD(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_SIMD_SHIFT)) & MSCM_CFG3_SIMD_MASK)
+#define MSCM_CFG3_JAZ_MASK                       (0x4U)
+#define MSCM_CFG3_JAZ_SHIFT                      (2U)
+/*! JAZ - Jazelle support
+ *  0b0..Jazelle support is not included.
+ *  0b1..Jazelle support is included.
+ */
+#define MSCM_CFG3_JAZ(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_JAZ_SHIFT)) & MSCM_CFG3_JAZ_MASK)
+#define MSCM_CFG3_MMU_MASK                       (0x8U)
+#define MSCM_CFG3_MMU_SHIFT                      (3U)
+/*! MMU - Memory Management Unit
+ *  0b0..MMU support is not included.
+ *  0b1..MMU support is included.
+ */
+#define MSCM_CFG3_MMU(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_MMU_SHIFT)) & MSCM_CFG3_MMU_MASK)
+#define MSCM_CFG3_TZ_MASK                        (0x10U)
+#define MSCM_CFG3_TZ_SHIFT                       (4U)
+/*! TZ - Trust Zone
+ *  0b0..Trust Zone support is not included.
+ *  0b1..Trust Zone support is included.
+ */
+#define MSCM_CFG3_TZ(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_TZ_SHIFT)) & MSCM_CFG3_TZ_MASK)
+#define MSCM_CFG3_CMP_MASK                       (0x20U)
+#define MSCM_CFG3_CMP_SHIFT                      (5U)
+/*! CMP - Core Memory Protection unit
+ *  0b0..Core Memory Protection is not included.
+ *  0b1..Core Memory Protection is included.
+ */
+#define MSCM_CFG3_CMP(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_CMP_SHIFT)) & MSCM_CFG3_CMP_MASK)
+#define MSCM_CFG3_BB_MASK                        (0x40U)
+#define MSCM_CFG3_BB_SHIFT                       (6U)
+/*! BB - Bit Banding
+ *  0b0..Bit Banding is not supported.
+ *  0b1..Bit Banding is supported.
+ */
+#define MSCM_CFG3_BB(x)                          (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_BB_SHIFT)) & MSCM_CFG3_BB_MASK)
+#define MSCM_CFG3_SBP_MASK                       (0x300U)
+#define MSCM_CFG3_SBP_SHIFT                      (8U)
+#define MSCM_CFG3_SBP(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_CFG3_SBP_SHIFT)) & MSCM_CFG3_SBP_MASK)
+/*! @} */
+
+/* The count of MSCM_CFG3 */
+#define MSCM_CFG3_COUNT                          (2U)
+
+/*! @name OCMDR0 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR0_OCM1_MASK                    (0x30U)
+#define MSCM_OCMDR0_OCM1_SHIFT                   (4U)
+#define MSCM_OCMDR0_OCM1(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCM1_SHIFT)) & MSCM_OCMDR0_OCM1_MASK)
+#define MSCM_OCMDR0_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR0_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR0_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMPU_SHIFT)) & MSCM_OCMDR0_OCMPU_MASK)
+#define MSCM_OCMDR0_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR0_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR0_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMT_SHIFT)) & MSCM_OCMDR0_OCMT_MASK)
+#define MSCM_OCMDR0_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR0_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR0_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_RO_SHIFT)) & MSCM_OCMDR0_RO_MASK)
+#define MSCM_OCMDR0_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR0_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR0_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMW_SHIFT)) & MSCM_OCMDR0_OCMW_MASK)
+#define MSCM_OCMDR0_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR0_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR0_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMSZ_SHIFT)) & MSCM_OCMDR0_OCMSZ_MASK)
+#define MSCM_OCMDR0_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR0_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR0_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_OCMSZH_SHIFT)) & MSCM_OCMDR0_OCMSZH_MASK)
+#define MSCM_OCMDR0_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR0_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR0_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR0_V_SHIFT)) & MSCM_OCMDR0_V_MASK)
+/*! @} */
+
+/*! @name OCMDR1 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR1_OCM1_MASK                    (0x30U)
+#define MSCM_OCMDR1_OCM1_SHIFT                   (4U)
+#define MSCM_OCMDR1_OCM1(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCM1_SHIFT)) & MSCM_OCMDR1_OCM1_MASK)
+#define MSCM_OCMDR1_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR1_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR1_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMPU_SHIFT)) & MSCM_OCMDR1_OCMPU_MASK)
+#define MSCM_OCMDR1_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR1_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR1_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMT_SHIFT)) & MSCM_OCMDR1_OCMT_MASK)
+#define MSCM_OCMDR1_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR1_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR1_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_RO_SHIFT)) & MSCM_OCMDR1_RO_MASK)
+#define MSCM_OCMDR1_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR1_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR1_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMW_SHIFT)) & MSCM_OCMDR1_OCMW_MASK)
+#define MSCM_OCMDR1_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR1_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR1_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMSZ_SHIFT)) & MSCM_OCMDR1_OCMSZ_MASK)
+#define MSCM_OCMDR1_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR1_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR1_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_OCMSZH_SHIFT)) & MSCM_OCMDR1_OCMSZH_MASK)
+#define MSCM_OCMDR1_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR1_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR1_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR1_V_SHIFT)) & MSCM_OCMDR1_V_MASK)
+/*! @} */
+
+/*! @name OCMDR2 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR2_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR2_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR2_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMPU_SHIFT)) & MSCM_OCMDR2_OCMPU_MASK)
+#define MSCM_OCMDR2_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR2_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR2_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMT_SHIFT)) & MSCM_OCMDR2_OCMT_MASK)
+#define MSCM_OCMDR2_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR2_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR2_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_RO_SHIFT)) & MSCM_OCMDR2_RO_MASK)
+#define MSCM_OCMDR2_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR2_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR2_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMW_SHIFT)) & MSCM_OCMDR2_OCMW_MASK)
+#define MSCM_OCMDR2_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR2_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR2_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMSZ_SHIFT)) & MSCM_OCMDR2_OCMSZ_MASK)
+#define MSCM_OCMDR2_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR2_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR2_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_OCMSZH_SHIFT)) & MSCM_OCMDR2_OCMSZH_MASK)
+#define MSCM_OCMDR2_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR2_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR2_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR2_V_SHIFT)) & MSCM_OCMDR2_V_MASK)
+/*! @} */
+
+/*! @name OCMDR3 - On-Chip Memory Descriptor Register */
+/*! @{ */
+#define MSCM_OCMDR3_OCMPU_MASK                   (0x1000U)
+#define MSCM_OCMDR3_OCMPU_SHIFT                  (12U)
+#define MSCM_OCMDR3_OCMPU(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMPU_SHIFT)) & MSCM_OCMDR3_OCMPU_MASK)
+#define MSCM_OCMDR3_OCMT_MASK                    (0xE000U)
+#define MSCM_OCMDR3_OCMT_SHIFT                   (13U)
+/*! OCMT - OCMT
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..Reserved
+ *  0b011..OCMEMn is a ROM.
+ *  0b100..OCMEMn is a Program Flash.
+ *  0b101..Reserved
+ *  0b110..OCMEMn is an EEE.
+ *  0b111..Reserved
+ */
+#define MSCM_OCMDR3_OCMT(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMT_SHIFT)) & MSCM_OCMDR3_OCMT_MASK)
+#define MSCM_OCMDR3_RO_MASK                      (0x10000U)
+#define MSCM_OCMDR3_RO_SHIFT                     (16U)
+/*! RO - RO
+ *  0b0..Writes to the OCMDRn[11:0] are allowed
+ *  0b1..Writes to the OCMDRn[11:0] are ignored
+ */
+#define MSCM_OCMDR3_RO(x)                        (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_RO_SHIFT)) & MSCM_OCMDR3_RO_MASK)
+#define MSCM_OCMDR3_OCMW_MASK                    (0xE0000U)
+#define MSCM_OCMDR3_OCMW_SHIFT                   (17U)
+/*! OCMW - OCMW
+ *  0b000-0b001..Reserved
+ *  0b010..OCMEMn 32-bits wide
+ *  0b011..OCMEMn 64-bits wide
+ *  0b100..OCMEMn 128-bits wide
+ *  0b101..OCMEMn 256-bits wide
+ *  0b110-0b111..Reserved
+ */
+#define MSCM_OCMDR3_OCMW(x)                      (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMW_SHIFT)) & MSCM_OCMDR3_OCMW_MASK)
+#define MSCM_OCMDR3_OCMSZ_MASK                   (0xF000000U)
+#define MSCM_OCMDR3_OCMSZ_SHIFT                  (24U)
+/*! OCMSZ - OCMSZ
+ *  0b0000..no OCMEMn
+ *  0b0001..1KB OCMEMn
+ *  0b0010..2KB OCMEMn
+ *  0b0011..4KB OCMEMn
+ *  0b0100..8KB OCMEMn
+ *  0b0101..16KB OCMEMn
+ *  0b0110..32KB OCMEMn
+ *  0b0111..64KB OCMEMn
+ *  0b1000..128KB OCMEMn
+ *  0b1001..256KB OCMEMn
+ *  0b1010..512KB OCMEMn
+ *  0b1011..1MB OCMEMn
+ *  0b1100..2MB OCMEMn
+ *  0b1101..4MB OCMEMn
+ *  0b1110..8MB OCMEMn
+ *  0b1111..16MB OCMEMn
+ */
+#define MSCM_OCMDR3_OCMSZ(x)                     (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMSZ_SHIFT)) & MSCM_OCMDR3_OCMSZ_MASK)
+#define MSCM_OCMDR3_OCMSZH_MASK                  (0x10000000U)
+#define MSCM_OCMDR3_OCMSZH_SHIFT                 (28U)
+/*! OCMSZH - OCMSZH
+ *  0b0..OCMEMn is a power-of-2 capacity.
+ *  0b1..OCMEMn is not a power-of-2, with a capacity is 0.75 * OCMSZ.
+ */
+#define MSCM_OCMDR3_OCMSZH(x)                    (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_OCMSZH_SHIFT)) & MSCM_OCMDR3_OCMSZH_MASK)
+#define MSCM_OCMDR3_V_MASK                       (0x80000000U)
+#define MSCM_OCMDR3_V_SHIFT                      (31U)
+/*! V - V
+ *  0b0..OCMEMn is not present.
+ *  0b1..OCMEMn is present.
+ */
+#define MSCM_OCMDR3_V(x)                         (((uint32_t)(((uint32_t)(x)) << MSCM_OCMDR3_V_SHIFT)) & MSCM_OCMDR3_V_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MSCM_Register_Masks */
+
+
+/* MSCM - Peripheral instance base addresses */
+/** Peripheral MSCM base address */
+#define MSCM_BASE                                (0x40001000u)
+/** Peripheral MSCM base pointer */
+#define MSCM                                     ((MSCM_Type *)MSCM_BASE)
+/** Array initializer of MSCM peripheral base addresses */
+#define MSCM_BASE_ADDRS                          { MSCM_BASE }
+/** Array initializer of MSCM peripheral base pointers */
+#define MSCM_BASE_PTRS                           { MSCM }
+
+/*!
+ * @}
+ */ /* end of group MSCM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MTB Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MTB_Peripheral_Access_Layer MTB Peripheral Access Layer
+ * @{
+ */
+
+/** MTB - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t POSITION;                          /**< MTB Position Register, offset: 0x0 */
+  __IO uint32_t MASTER;                            /**< MTB Master Register, offset: 0x4 */
+  __IO uint32_t FLOW;                              /**< MTB Flow Register, offset: 0x8 */
+  __I  uint32_t BASE;                              /**< MTB Base Register, offset: 0xC */
+       uint8_t RESERVED_0[3824];
+  __I  uint32_t MODECTRL;                          /**< Integration Mode Control Register, offset: 0xF00 */
+       uint8_t RESERVED_1[156];
+  __I  uint32_t TAGSET;                            /**< Claim TAG Set Register, offset: 0xFA0 */
+  __I  uint32_t TAGCLEAR;                          /**< Claim TAG Clear Register, offset: 0xFA4 */
+       uint8_t RESERVED_2[8];
+  __I  uint32_t LOCKACCESS;                        /**< Lock Access Register, offset: 0xFB0 */
+  __I  uint32_t LOCKSTAT;                          /**< Lock Status Register, offset: 0xFB4 */
+  __I  uint32_t AUTHSTAT;                          /**< Authentication Status Register, offset: 0xFB8 */
+  __I  uint32_t DEVICEARCH;                        /**< Device Architecture Register, offset: 0xFBC */
+       uint8_t RESERVED_3[8];
+  __I  uint32_t DEVICECFG;                         /**< Device Configuration Register, offset: 0xFC8 */
+  __I  uint32_t DEVICETYPID;                       /**< Device Type Identifier Register, offset: 0xFCC */
+  __I  uint32_t PERIPHID4;                         /**< Peripheral ID Register, offset: 0xFD0 */
+  __I  uint32_t PERIPHID5;                         /**< Peripheral ID Register, offset: 0xFD4 */
+  __I  uint32_t PERIPHID6;                         /**< Peripheral ID Register, offset: 0xFD8 */
+  __I  uint32_t PERIPHID7;                         /**< Peripheral ID Register, offset: 0xFDC */
+  __I  uint32_t PERIPHID0;                         /**< Peripheral ID Register, offset: 0xFE0 */
+  __I  uint32_t PERIPHID1;                         /**< Peripheral ID Register, offset: 0xFE4 */
+  __I  uint32_t PERIPHID2;                         /**< Peripheral ID Register, offset: 0xFE8 */
+  __I  uint32_t PERIPHID3;                         /**< Peripheral ID Register, offset: 0xFEC */
+  __I  uint32_t COMPID[4];                         /**< Component ID Register, array offset: 0xFF0, array step: 0x4 */
+} MTB_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MTB Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MTB_Register_Masks MTB Register Masks
+ * @{
+ */
+
+/*! @name POSITION - MTB Position Register */
+/*! @{ */
+#define MTB_POSITION_WRAP_MASK                   (0x4U)
+#define MTB_POSITION_WRAP_SHIFT                  (2U)
+#define MTB_POSITION_WRAP(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_POSITION_WRAP_SHIFT)) & MTB_POSITION_WRAP_MASK)
+#define MTB_POSITION_POINTER_MASK                (0xFFF8U)
+#define MTB_POSITION_POINTER_SHIFT               (3U)
+#define MTB_POSITION_POINTER(x)                  (((uint32_t)(((uint32_t)(x)) << MTB_POSITION_POINTER_SHIFT)) & MTB_POSITION_POINTER_MASK)
+/*! @} */
+
+/*! @name MASTER - MTB Master Register */
+/*! @{ */
+#define MTB_MASTER_MASK_MASK                     (0x1FU)
+#define MTB_MASTER_MASK_SHIFT                    (0U)
+#define MTB_MASTER_MASK(x)                       (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_MASK_SHIFT)) & MTB_MASTER_MASK_MASK)
+#define MTB_MASTER_TSTARTEN_MASK                 (0x20U)
+#define MTB_MASTER_TSTARTEN_SHIFT                (5U)
+#define MTB_MASTER_TSTARTEN(x)                   (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_TSTARTEN_SHIFT)) & MTB_MASTER_TSTARTEN_MASK)
+#define MTB_MASTER_TSTOPEN_MASK                  (0x40U)
+#define MTB_MASTER_TSTOPEN_SHIFT                 (6U)
+#define MTB_MASTER_TSTOPEN(x)                    (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_TSTOPEN_SHIFT)) & MTB_MASTER_TSTOPEN_MASK)
+#define MTB_MASTER_SFRWPRIV_MASK                 (0x80U)
+#define MTB_MASTER_SFRWPRIV_SHIFT                (7U)
+#define MTB_MASTER_SFRWPRIV(x)                   (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_SFRWPRIV_SHIFT)) & MTB_MASTER_SFRWPRIV_MASK)
+#define MTB_MASTER_RAMPRIV_MASK                  (0x100U)
+#define MTB_MASTER_RAMPRIV_SHIFT                 (8U)
+#define MTB_MASTER_RAMPRIV(x)                    (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_RAMPRIV_SHIFT)) & MTB_MASTER_RAMPRIV_MASK)
+#define MTB_MASTER_HALTREQ_MASK                  (0x200U)
+#define MTB_MASTER_HALTREQ_SHIFT                 (9U)
+#define MTB_MASTER_HALTREQ(x)                    (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_HALTREQ_SHIFT)) & MTB_MASTER_HALTREQ_MASK)
+#define MTB_MASTER_EN_MASK                       (0x80000000U)
+#define MTB_MASTER_EN_SHIFT                      (31U)
+#define MTB_MASTER_EN(x)                         (((uint32_t)(((uint32_t)(x)) << MTB_MASTER_EN_SHIFT)) & MTB_MASTER_EN_MASK)
+/*! @} */
+
+/*! @name FLOW - MTB Flow Register */
+/*! @{ */
+#define MTB_FLOW_AUTOSTOP_MASK                   (0x1U)
+#define MTB_FLOW_AUTOSTOP_SHIFT                  (0U)
+#define MTB_FLOW_AUTOSTOP(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_FLOW_AUTOSTOP_SHIFT)) & MTB_FLOW_AUTOSTOP_MASK)
+#define MTB_FLOW_AUTOHALT_MASK                   (0x2U)
+#define MTB_FLOW_AUTOHALT_SHIFT                  (1U)
+#define MTB_FLOW_AUTOHALT(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_FLOW_AUTOHALT_SHIFT)) & MTB_FLOW_AUTOHALT_MASK)
+#define MTB_FLOW_WATERMARK_MASK                  (0xFFFFFFF8U)
+#define MTB_FLOW_WATERMARK_SHIFT                 (3U)
+#define MTB_FLOW_WATERMARK(x)                    (((uint32_t)(((uint32_t)(x)) << MTB_FLOW_WATERMARK_SHIFT)) & MTB_FLOW_WATERMARK_MASK)
+/*! @} */
+
+/*! @name BASE - MTB Base Register */
+/*! @{ */
+#define MTB_BASE_BASEADDR_MASK                   (0xFFFFFFFFU)
+#define MTB_BASE_BASEADDR_SHIFT                  (0U)
+#define MTB_BASE_BASEADDR(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_BASE_BASEADDR_SHIFT)) & MTB_BASE_BASEADDR_MASK)
+/*! @} */
+
+/*! @name MODECTRL - Integration Mode Control Register */
+/*! @{ */
+#define MTB_MODECTRL_MODECTRL_MASK               (0xFFFFFFFFU)
+#define MTB_MODECTRL_MODECTRL_SHIFT              (0U)
+#define MTB_MODECTRL_MODECTRL(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_MODECTRL_MODECTRL_SHIFT)) & MTB_MODECTRL_MODECTRL_MASK)
+/*! @} */
+
+/*! @name TAGSET - Claim TAG Set Register */
+/*! @{ */
+#define MTB_TAGSET_TAGSET_MASK                   (0xFFFFFFFFU)
+#define MTB_TAGSET_TAGSET_SHIFT                  (0U)
+#define MTB_TAGSET_TAGSET(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_TAGSET_TAGSET_SHIFT)) & MTB_TAGSET_TAGSET_MASK)
+/*! @} */
+
+/*! @name TAGCLEAR - Claim TAG Clear Register */
+/*! @{ */
+#define MTB_TAGCLEAR_TAGCLEAR_MASK               (0xFFFFFFFFU)
+#define MTB_TAGCLEAR_TAGCLEAR_SHIFT              (0U)
+#define MTB_TAGCLEAR_TAGCLEAR(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_TAGCLEAR_TAGCLEAR_SHIFT)) & MTB_TAGCLEAR_TAGCLEAR_MASK)
+/*! @} */
+
+/*! @name LOCKACCESS - Lock Access Register */
+/*! @{ */
+#define MTB_LOCKACCESS_LOCKACCESS_MASK           (0xFFFFFFFFU)
+#define MTB_LOCKACCESS_LOCKACCESS_SHIFT          (0U)
+#define MTB_LOCKACCESS_LOCKACCESS(x)             (((uint32_t)(((uint32_t)(x)) << MTB_LOCKACCESS_LOCKACCESS_SHIFT)) & MTB_LOCKACCESS_LOCKACCESS_MASK)
+/*! @} */
+
+/*! @name LOCKSTAT - Lock Status Register */
+/*! @{ */
+#define MTB_LOCKSTAT_LOCKSTAT_MASK               (0xFFFFFFFFU)
+#define MTB_LOCKSTAT_LOCKSTAT_SHIFT              (0U)
+#define MTB_LOCKSTAT_LOCKSTAT(x)                 (((uint32_t)(((uint32_t)(x)) << MTB_LOCKSTAT_LOCKSTAT_SHIFT)) & MTB_LOCKSTAT_LOCKSTAT_MASK)
+/*! @} */
+
+/*! @name AUTHSTAT - Authentication Status Register */
+/*! @{ */
+#define MTB_AUTHSTAT_BIT0_MASK                   (0x1U)
+#define MTB_AUTHSTAT_BIT0_SHIFT                  (0U)
+#define MTB_AUTHSTAT_BIT0(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_AUTHSTAT_BIT0_SHIFT)) & MTB_AUTHSTAT_BIT0_MASK)
+#define MTB_AUTHSTAT_BIT1_MASK                   (0x2U)
+#define MTB_AUTHSTAT_BIT1_SHIFT                  (1U)
+#define MTB_AUTHSTAT_BIT1(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_AUTHSTAT_BIT1_SHIFT)) & MTB_AUTHSTAT_BIT1_MASK)
+#define MTB_AUTHSTAT_BIT2_MASK                   (0x4U)
+#define MTB_AUTHSTAT_BIT2_SHIFT                  (2U)
+#define MTB_AUTHSTAT_BIT2(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_AUTHSTAT_BIT2_SHIFT)) & MTB_AUTHSTAT_BIT2_MASK)
+#define MTB_AUTHSTAT_BIT3_MASK                   (0x8U)
+#define MTB_AUTHSTAT_BIT3_SHIFT                  (3U)
+#define MTB_AUTHSTAT_BIT3(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_AUTHSTAT_BIT3_SHIFT)) & MTB_AUTHSTAT_BIT3_MASK)
+/*! @} */
+
+/*! @name DEVICEARCH - Device Architecture Register */
+/*! @{ */
+#define MTB_DEVICEARCH_DEVICEARCH_MASK           (0xFFFFFFFFU)
+#define MTB_DEVICEARCH_DEVICEARCH_SHIFT          (0U)
+#define MTB_DEVICEARCH_DEVICEARCH(x)             (((uint32_t)(((uint32_t)(x)) << MTB_DEVICEARCH_DEVICEARCH_SHIFT)) & MTB_DEVICEARCH_DEVICEARCH_MASK)
+/*! @} */
+
+/*! @name DEVICECFG - Device Configuration Register */
+/*! @{ */
+#define MTB_DEVICECFG_DEVICECFG_MASK             (0xFFFFFFFFU)
+#define MTB_DEVICECFG_DEVICECFG_SHIFT            (0U)
+#define MTB_DEVICECFG_DEVICECFG(x)               (((uint32_t)(((uint32_t)(x)) << MTB_DEVICECFG_DEVICECFG_SHIFT)) & MTB_DEVICECFG_DEVICECFG_MASK)
+/*! @} */
+
+/*! @name DEVICETYPID - Device Type Identifier Register */
+/*! @{ */
+#define MTB_DEVICETYPID_DEVICETYPID_MASK         (0xFFFFFFFFU)
+#define MTB_DEVICETYPID_DEVICETYPID_SHIFT        (0U)
+#define MTB_DEVICETYPID_DEVICETYPID(x)           (((uint32_t)(((uint32_t)(x)) << MTB_DEVICETYPID_DEVICETYPID_SHIFT)) & MTB_DEVICETYPID_DEVICETYPID_MASK)
+/*! @} */
+
+/*! @name PERIPHID4 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID4_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID4_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID4_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID4_PERIPHID_SHIFT)) & MTB_PERIPHID4_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID5 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID5_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID5_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID5_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID5_PERIPHID_SHIFT)) & MTB_PERIPHID5_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID6 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID6_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID6_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID6_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID6_PERIPHID_SHIFT)) & MTB_PERIPHID6_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID7 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID7_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID7_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID7_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID7_PERIPHID_SHIFT)) & MTB_PERIPHID7_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID0 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID0_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID0_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID0_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID0_PERIPHID_SHIFT)) & MTB_PERIPHID0_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID1 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID1_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID1_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID1_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID1_PERIPHID_SHIFT)) & MTB_PERIPHID1_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID2 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID2_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID2_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID2_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID2_PERIPHID_SHIFT)) & MTB_PERIPHID2_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID3 - Peripheral ID Register */
+/*! @{ */
+#define MTB_PERIPHID3_PERIPHID_MASK              (0xFFFFFFFFU)
+#define MTB_PERIPHID3_PERIPHID_SHIFT             (0U)
+#define MTB_PERIPHID3_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << MTB_PERIPHID3_PERIPHID_SHIFT)) & MTB_PERIPHID3_PERIPHID_MASK)
+/*! @} */
+
+/*! @name COMPID - Component ID Register */
+/*! @{ */
+#define MTB_COMPID_COMPID_MASK                   (0xFFFFFFFFU)
+#define MTB_COMPID_COMPID_SHIFT                  (0U)
+#define MTB_COMPID_COMPID(x)                     (((uint32_t)(((uint32_t)(x)) << MTB_COMPID_COMPID_SHIFT)) & MTB_COMPID_COMPID_MASK)
+/*! @} */
+
+/* The count of MTB_COMPID */
+#define MTB_COMPID_COUNT                         (4U)
+
+
+/*!
+ * @}
+ */ /* end of group MTB_Register_Masks */
+
+
+/* MTB - Peripheral instance base addresses */
+/** Peripheral MTB base address */
+#define MTB_BASE                                 (0xF0000000u)
+/** Peripheral MTB base pointer */
+#define MTB                                      ((MTB_Type *)MTB_BASE)
+/** Array initializer of MTB peripheral base addresses */
+#define MTB_BASE_ADDRS                           { MTB_BASE }
+/** Array initializer of MTB peripheral base pointers */
+#define MTB_BASE_PTRS                            { MTB }
+
+/*!
+ * @}
+ */ /* end of group MTB_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- MTBDWT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MTBDWT_Peripheral_Access_Layer MTBDWT Peripheral Access Layer
+ * @{
+ */
+
+/** MTBDWT - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t CTRL;                              /**< DWT Control Register, offset: 0x0 */
+       uint8_t RESERVED_0[28];
+  struct {                                         /* offset: 0x20, array step: 0x10 */
+    __IO uint32_t COMP;                              /**< DWT Comparator Register, array offset: 0x20, array step: 0x10 */
+    __IO uint32_t MASK;                              /**< DWT Comparator Mask Register, array offset: 0x24, array step: 0x10 */
+    __IO uint32_t FCT;                               /**< DWT Comparator Function Register 0..DWT Comparator Function Register 1, array offset: 0x28, array step: 0x10 */
+         uint8_t RESERVED_0[4];
+  } COMPARATOR[2];
+       uint8_t RESERVED_1[448];
+  __IO uint32_t TBCTRL;                            /**< DWT Trace Buffer Control Register, offset: 0x200 */
+       uint8_t RESERVED_2[3524];
+  __I  uint32_t DEVICECFG;                         /**< Device Configuration Register, offset: 0xFC8 */
+  __I  uint32_t DEVICETYPID;                       /**< Device Type Identifier Register, offset: 0xFCC */
+  __I  uint32_t PERIPHID4;                         /**< Peripheral ID Register, offset: 0xFD0 */
+  __I  uint32_t PERIPHID5;                         /**< Peripheral ID Register, offset: 0xFD4 */
+  __I  uint32_t PERIPHID6;                         /**< Peripheral ID Register, offset: 0xFD8 */
+  __I  uint32_t PERIPHID7;                         /**< Peripheral ID Register, offset: 0xFDC */
+  __I  uint32_t PERIPHID0;                         /**< Peripheral ID Register, offset: 0xFE0 */
+  __I  uint32_t PERIPHID1;                         /**< Peripheral ID Register, offset: 0xFE4 */
+  __I  uint32_t PERIPHID2;                         /**< Peripheral ID Register, offset: 0xFE8 */
+  __I  uint32_t PERIPHID3;                         /**< Peripheral ID Register, offset: 0xFEC */
+  __I  uint32_t COMPID[4];                         /**< Component ID Register, array offset: 0xFF0, array step: 0x4 */
+} MTBDWT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MTBDWT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MTBDWT_Register_Masks MTBDWT Register Masks
+ * @{
+ */
+
+/*! @name CTRL - DWT Control Register */
+/*! @{ */
+#define MTBDWT_CTRL_DWTCFGCTRL_MASK              (0xFFFFFFFU)
+#define MTBDWT_CTRL_DWTCFGCTRL_SHIFT             (0U)
+#define MTBDWT_CTRL_DWTCFGCTRL(x)                (((uint32_t)(((uint32_t)(x)) << MTBDWT_CTRL_DWTCFGCTRL_SHIFT)) & MTBDWT_CTRL_DWTCFGCTRL_MASK)
+#define MTBDWT_CTRL_NUMCMP_MASK                  (0xF0000000U)
+#define MTBDWT_CTRL_NUMCMP_SHIFT                 (28U)
+#define MTBDWT_CTRL_NUMCMP(x)                    (((uint32_t)(((uint32_t)(x)) << MTBDWT_CTRL_NUMCMP_SHIFT)) & MTBDWT_CTRL_NUMCMP_MASK)
+/*! @} */
+
+/*! @name COMP - DWT Comparator Register */
+/*! @{ */
+#define MTBDWT_COMP_COMP_MASK                    (0xFFFFFFFFU)
+#define MTBDWT_COMP_COMP_SHIFT                   (0U)
+#define MTBDWT_COMP_COMP(x)                      (((uint32_t)(((uint32_t)(x)) << MTBDWT_COMP_COMP_SHIFT)) & MTBDWT_COMP_COMP_MASK)
+/*! @} */
+
+/* The count of MTBDWT_COMP */
+#define MTBDWT_COMP_COUNT                        (2U)
+
+/*! @name MASK - DWT Comparator Mask Register */
+/*! @{ */
+#define MTBDWT_MASK_MASK_MASK                    (0x1FU)
+#define MTBDWT_MASK_MASK_SHIFT                   (0U)
+#define MTBDWT_MASK_MASK(x)                      (((uint32_t)(((uint32_t)(x)) << MTBDWT_MASK_MASK_SHIFT)) & MTBDWT_MASK_MASK_MASK)
+/*! @} */
+
+/* The count of MTBDWT_MASK */
+#define MTBDWT_MASK_COUNT                        (2U)
+
+/*! @name FCT - DWT Comparator Function Register 0..DWT Comparator Function Register 1 */
+/*! @{ */
+#define MTBDWT_FCT_FUNCTION_MASK                 (0xFU)
+#define MTBDWT_FCT_FUNCTION_SHIFT                (0U)
+/*! FUNCTION - Function
+ *  0b0000..Disabled.
+ *  0b0001-0b0011..Reserved. Any attempts to use this value results in UNPREDICTABLE behavior.
+ *  0b0100..Instruction fetch.
+ *  0b0101..Data operand read.
+ *  0b0110..Data operand write.
+ *  0b0111..Data operand (read + write).
+ *  0b1000-0b1111..Reserved. Any attempts to use this value results in UNPREDICTABLE behavior.
+ */
+#define MTBDWT_FCT_FUNCTION(x)                   (((uint32_t)(((uint32_t)(x)) << MTBDWT_FCT_FUNCTION_SHIFT)) & MTBDWT_FCT_FUNCTION_MASK)
+#define MTBDWT_FCT_DATAVMATCH_MASK               (0x100U)
+#define MTBDWT_FCT_DATAVMATCH_SHIFT              (8U)
+/*! DATAVMATCH - Data Value Match
+ *  0b0..Perform address comparison.
+ *  0b1..Perform data value comparison.
+ */
+#define MTBDWT_FCT_DATAVMATCH(x)                 (((uint32_t)(((uint32_t)(x)) << MTBDWT_FCT_DATAVMATCH_SHIFT)) & MTBDWT_FCT_DATAVMATCH_MASK)
+#define MTBDWT_FCT_DATAVSIZE_MASK                (0xC00U)
+#define MTBDWT_FCT_DATAVSIZE_SHIFT               (10U)
+/*! DATAVSIZE - Data Value Size
+ *  0b00..Byte.
+ *  0b01..Halfword.
+ *  0b10..Word.
+ *  0b11..Reserved. Any attempts to use this value results in UNPREDICTABLE behavior.
+ */
+#define MTBDWT_FCT_DATAVSIZE(x)                  (((uint32_t)(((uint32_t)(x)) << MTBDWT_FCT_DATAVSIZE_SHIFT)) & MTBDWT_FCT_DATAVSIZE_MASK)
+#define MTBDWT_FCT_DATAVADDR0_MASK               (0xF000U)
+#define MTBDWT_FCT_DATAVADDR0_SHIFT              (12U)
+#define MTBDWT_FCT_DATAVADDR0(x)                 (((uint32_t)(((uint32_t)(x)) << MTBDWT_FCT_DATAVADDR0_SHIFT)) & MTBDWT_FCT_DATAVADDR0_MASK)
+#define MTBDWT_FCT_MATCHED_MASK                  (0x1000000U)
+#define MTBDWT_FCT_MATCHED_SHIFT                 (24U)
+/*! MATCHED - Comparator match
+ *  0b0..No match.
+ *  0b1..Match occurred.
+ */
+#define MTBDWT_FCT_MATCHED(x)                    (((uint32_t)(((uint32_t)(x)) << MTBDWT_FCT_MATCHED_SHIFT)) & MTBDWT_FCT_MATCHED_MASK)
+/*! @} */
+
+/* The count of MTBDWT_FCT */
+#define MTBDWT_FCT_COUNT                         (2U)
+
+/*! @name TBCTRL - DWT Trace Buffer Control Register */
+/*! @{ */
+#define MTBDWT_TBCTRL_ACOMP0_MASK                (0x1U)
+#define MTBDWT_TBCTRL_ACOMP0_SHIFT               (0U)
+/*! ACOMP0 - Action based on Comparator 0 match
+ *  0b0..Trigger TSTOP based on the assertion of FCT0[MATCHED].
+ *  0b1..Trigger TSTART based on the assertion of FCT0[MATCHED].
+ */
+#define MTBDWT_TBCTRL_ACOMP0(x)                  (((uint32_t)(((uint32_t)(x)) << MTBDWT_TBCTRL_ACOMP0_SHIFT)) & MTBDWT_TBCTRL_ACOMP0_MASK)
+#define MTBDWT_TBCTRL_ACOMP1_MASK                (0x2U)
+#define MTBDWT_TBCTRL_ACOMP1_SHIFT               (1U)
+/*! ACOMP1 - Action based on Comparator 1 match
+ *  0b0..Trigger TSTOP based on the assertion of FCT1[MATCHED].
+ *  0b1..Trigger TSTART based on the assertion of FCT1[MATCHED].
+ */
+#define MTBDWT_TBCTRL_ACOMP1(x)                  (((uint32_t)(((uint32_t)(x)) << MTBDWT_TBCTRL_ACOMP1_SHIFT)) & MTBDWT_TBCTRL_ACOMP1_MASK)
+#define MTBDWT_TBCTRL_NUMCOMP_MASK               (0xF0000000U)
+#define MTBDWT_TBCTRL_NUMCOMP_SHIFT              (28U)
+#define MTBDWT_TBCTRL_NUMCOMP(x)                 (((uint32_t)(((uint32_t)(x)) << MTBDWT_TBCTRL_NUMCOMP_SHIFT)) & MTBDWT_TBCTRL_NUMCOMP_MASK)
+/*! @} */
+
+/*! @name DEVICECFG - Device Configuration Register */
+/*! @{ */
+#define MTBDWT_DEVICECFG_DEVICECFG_MASK          (0xFFFFFFFFU)
+#define MTBDWT_DEVICECFG_DEVICECFG_SHIFT         (0U)
+#define MTBDWT_DEVICECFG_DEVICECFG(x)            (((uint32_t)(((uint32_t)(x)) << MTBDWT_DEVICECFG_DEVICECFG_SHIFT)) & MTBDWT_DEVICECFG_DEVICECFG_MASK)
+/*! @} */
+
+/*! @name DEVICETYPID - Device Type Identifier Register */
+/*! @{ */
+#define MTBDWT_DEVICETYPID_DEVICETYPID_MASK      (0xFFFFFFFFU)
+#define MTBDWT_DEVICETYPID_DEVICETYPID_SHIFT     (0U)
+#define MTBDWT_DEVICETYPID_DEVICETYPID(x)        (((uint32_t)(((uint32_t)(x)) << MTBDWT_DEVICETYPID_DEVICETYPID_SHIFT)) & MTBDWT_DEVICETYPID_DEVICETYPID_MASK)
+/*! @} */
+
+/*! @name PERIPHID4 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID4_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID4_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID4_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID4_PERIPHID_SHIFT)) & MTBDWT_PERIPHID4_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID5 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID5_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID5_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID5_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID5_PERIPHID_SHIFT)) & MTBDWT_PERIPHID5_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID6 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID6_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID6_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID6_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID6_PERIPHID_SHIFT)) & MTBDWT_PERIPHID6_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID7 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID7_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID7_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID7_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID7_PERIPHID_SHIFT)) & MTBDWT_PERIPHID7_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID0 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID0_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID0_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID0_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID0_PERIPHID_SHIFT)) & MTBDWT_PERIPHID0_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID1 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID1_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID1_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID1_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID1_PERIPHID_SHIFT)) & MTBDWT_PERIPHID1_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID2 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID2_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID2_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID2_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID2_PERIPHID_SHIFT)) & MTBDWT_PERIPHID2_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID3 - Peripheral ID Register */
+/*! @{ */
+#define MTBDWT_PERIPHID3_PERIPHID_MASK           (0xFFFFFFFFU)
+#define MTBDWT_PERIPHID3_PERIPHID_SHIFT          (0U)
+#define MTBDWT_PERIPHID3_PERIPHID(x)             (((uint32_t)(((uint32_t)(x)) << MTBDWT_PERIPHID3_PERIPHID_SHIFT)) & MTBDWT_PERIPHID3_PERIPHID_MASK)
+/*! @} */
+
+/*! @name COMPID - Component ID Register */
+/*! @{ */
+#define MTBDWT_COMPID_COMPID_MASK                (0xFFFFFFFFU)
+#define MTBDWT_COMPID_COMPID_SHIFT               (0U)
+#define MTBDWT_COMPID_COMPID(x)                  (((uint32_t)(((uint32_t)(x)) << MTBDWT_COMPID_COMPID_SHIFT)) & MTBDWT_COMPID_COMPID_MASK)
+/*! @} */
+
+/* The count of MTBDWT_COMPID */
+#define MTBDWT_COMPID_COUNT                      (4U)
+
+
+/*!
+ * @}
+ */ /* end of group MTBDWT_Register_Masks */
+
+
+/* MTBDWT - Peripheral instance base addresses */
+/** Peripheral MTBDWT base address */
+#define MTBDWT_BASE                              (0xF0001000u)
+/** Peripheral MTBDWT base pointer */
+#define MTBDWT                                   ((MTBDWT_Type *)MTBDWT_BASE)
+/** Array initializer of MTBDWT peripheral base addresses */
+#define MTBDWT_BASE_ADDRS                        { MTBDWT_BASE }
+/** Array initializer of MTBDWT peripheral base pointers */
+#define MTBDWT_BASE_PTRS                         { MTBDWT }
+
+/*!
+ * @}
+ */ /* end of group MTBDWT_Peripheral_Access_Layer */
+
+/*!
+ * @brief Core boot mode.
+ */
+typedef enum _mu_core_boot_mode
+{
+    kMU_CoreBootFromPflashBase = 0x00U, /*!< Boot from pflash base.  */
+    kMU_CoreBootFromCore0RamBase = 0x02U, /*!< Boot from RI5CY RAM base. */
+} mu_core_boot_mode_t;
+/*!
+ * @brief Power mode on the other side definition.
+ */
+typedef enum _mu_power_mode
+{
+    kMU_PowerModeRun = 0x00U,  /*!< Run mode.           */
+    kMU_PowerModeCoo = 0x01U,  /*!< COO mode.           */
+    kMU_PowerModeWait = 0x02U, /*!< WAIT mode.          */
+    kMU_PowerModeStop = 0x03U, /*!< STOP/VLPS mode.     */
+    kMU_PowerModeDsm = 0x04U   /*!< DSM: LLS/VLLS mode. */
+} mu_power_mode_t;
+
+
+/* ----------------------------------------------------------------------------
+   -- MU Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MU_Peripheral_Access_Layer MU Peripheral Access Layer
+ * @{
+ */
+
+/** MU - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VER;                               /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PAR;                               /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[24];
+  __IO uint32_t TR[4];                             /**< Transmit Register, array offset: 0x20, array step: 0x4 */
+       uint8_t RESERVED_1[16];
+  __I  uint32_t RR[4];                             /**< Receive Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_2[16];
+  __IO uint32_t SR;                                /**< Status Register, offset: 0x60 */
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x64 */
+  __IO uint32_t CCR;                               /**< Core Control Register, offset: 0x68 */
+} MU_Type;
+
+/* ----------------------------------------------------------------------------
+   -- MU Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup MU_Register_Masks MU Register Masks
+ * @{
+ */
+
+/*! @name VER - Version ID Register */
+/*! @{ */
+#define MU_VER_FEATURE_MASK                      (0xFFFFU)
+#define MU_VER_FEATURE_SHIFT                     (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b000000000000x1xx..Core Control and Status Registers are implemented in both MUA and MUB.
+ *  0b000000000000xx1x..RAIP/RAIE register bits are implemented.
+ *  0b000000000000xxx0..Standard features implemented
+ */
+#define MU_VER_FEATURE(x)                        (((uint32_t)(((uint32_t)(x)) << MU_VER_FEATURE_SHIFT)) & MU_VER_FEATURE_MASK)
+#define MU_VER_MINOR_MASK                        (0xFF0000U)
+#define MU_VER_MINOR_SHIFT                       (16U)
+#define MU_VER_MINOR(x)                          (((uint32_t)(((uint32_t)(x)) << MU_VER_MINOR_SHIFT)) & MU_VER_MINOR_MASK)
+#define MU_VER_MAJOR_MASK                        (0xFF000000U)
+#define MU_VER_MAJOR_SHIFT                       (24U)
+#define MU_VER_MAJOR(x)                          (((uint32_t)(((uint32_t)(x)) << MU_VER_MAJOR_SHIFT)) & MU_VER_MAJOR_MASK)
+/*! @} */
+
+/*! @name PAR - Parameter Register */
+/*! @{ */
+#define MU_PAR_PARAMETER_MASK                    (0xFFFFFFFFU)
+#define MU_PAR_PARAMETER_SHIFT                   (0U)
+#define MU_PAR_PARAMETER(x)                      (((uint32_t)(((uint32_t)(x)) << MU_PAR_PARAMETER_SHIFT)) & MU_PAR_PARAMETER_MASK)
+/*! @} */
+
+/*! @name TR - Transmit Register */
+/*! @{ */
+#define MU_TR_DATA_MASK                          (0xFFFFFFFFU)
+#define MU_TR_DATA_SHIFT                         (0U)
+#define MU_TR_DATA(x)                            (((uint32_t)(((uint32_t)(x)) << MU_TR_DATA_SHIFT)) & MU_TR_DATA_MASK)
+/*! @} */
+
+/* The count of MU_TR */
+#define MU_TR_COUNT                              (4U)
+
+/*! @name RR - Receive Register */
+/*! @{ */
+#define MU_RR_DATA_MASK                          (0xFFFFFFFFU)
+#define MU_RR_DATA_SHIFT                         (0U)
+#define MU_RR_DATA(x)                            (((uint32_t)(((uint32_t)(x)) << MU_RR_DATA_SHIFT)) & MU_RR_DATA_MASK)
+/*! @} */
+
+/* The count of MU_RR */
+#define MU_RR_COUNT                              (4U)
+
+/*! @name SR - Status Register */
+/*! @{ */
+#define MU_SR_Fn_MASK                            (0x7U)
+#define MU_SR_Fn_SHIFT                           (0U)
+/*! Fn - Fn
+ *  0b000..Fn bit in the MUA CR register is written 0 (default).
+ *  0b001..Fn bit in the MUA CR register is written 1.
+ */
+#define MU_SR_Fn(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_Fn_SHIFT)) & MU_SR_Fn_MASK)
+#define MU_SR_NMIC_MASK                          (0x8U)
+#define MU_SR_NMIC_SHIFT                         (3U)
+/*! NMIC - NMIC
+ *  0b0..Default
+ *  0b1..Writing "1" clears the NMI bit in the MUA CR register.
+ */
+#define MU_SR_NMIC(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_NMIC_SHIFT)) & MU_SR_NMIC_MASK)
+#define MU_SR_EP_MASK                            (0x10U)
+#define MU_SR_EP_SHIFT                           (4U)
+/*! EP - EP
+ *  0b0..The MUB side event is not pending (default).
+ *  0b1..The MUB side event is pending.
+ */
+#define MU_SR_EP(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_EP_SHIFT)) & MU_SR_EP_MASK)
+#define MU_SR_HRIP_MASK                          (0x80U)
+#define MU_SR_HRIP_SHIFT                         (7U)
+/*! HRIP - HRIP
+ *  0b0..MUA didn't issue hardware reset to Processor B
+ *  0b1..MUA had initiated a hardware reset to Processor B through HR bit.
+ */
+#define MU_SR_HRIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_HRIP_SHIFT)) & MU_SR_HRIP_MASK)
+#define MU_SR_FUP_MASK                           (0x100U)
+#define MU_SR_FUP_SHIFT                          (8U)
+/*! FUP - FUP
+ *  0b0..No flags updated, initiated by the MUB, in progress (default)
+ *  0b1..MUB initiated flags update, processing
+ */
+#define MU_SR_FUP(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_FUP_SHIFT)) & MU_SR_FUP_MASK)
+#define MU_SR_RDIP_MASK                          (0x200U)
+#define MU_SR_RDIP_SHIFT                         (9U)
+/*! RDIP - RDIP
+ *  0b0..Processor A did not exit reset
+ *  0b1..Processor A exited from reset
+ */
+#define MU_SR_RDIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_RDIP_SHIFT)) & MU_SR_RDIP_MASK)
+#define MU_SR_RAIP_MASK                          (0x400U)
+#define MU_SR_RAIP_SHIFT                         (10U)
+/*! RAIP - RAIP
+ *  0b0..Processor A did not enter reset
+ *  0b1..Processor A entered reset
+ */
+#define MU_SR_RAIP(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_RAIP_SHIFT)) & MU_SR_RAIP_MASK)
+#define MU_SR_MURIP_MASK                         (0x800U)
+#define MU_SR_MURIP_SHIFT                        (11U)
+/*! MURIP - MURIP
+ *  0b0..Processor A did not issue MU reset
+ *  0b1..Processor A issued MU reset
+ */
+#define MU_SR_MURIP(x)                           (((uint32_t)(((uint32_t)(x)) << MU_SR_MURIP_SHIFT)) & MU_SR_MURIP_MASK)
+#define MU_SR_PM_MASK                            (0x7000U)
+#define MU_SR_PM_SHIFT                           (12U)
+/*! PM - PM
+ *  0b000..The MUA processor is in Run Mode.
+ *  0b001..The MUA processor is in COO Mode.
+ *  0b010..The MUA processor is in WAIT Mode.
+ *  0b011..The MUA processor is in STOP/VLPS Mode.
+ *  0b100..The MUA processor is in LLS/VLLS Mode.
+ */
+#define MU_SR_PM(x)                              (((uint32_t)(((uint32_t)(x)) << MU_SR_PM_SHIFT)) & MU_SR_PM_MASK)
+#define MU_SR_TEn_MASK                           (0xF00000U)
+#define MU_SR_TEn_SHIFT                          (20U)
+/*! TEn - TEn
+ *  0b0000..MUB TRn register is not empty.
+ *  0b0001..MUB TRn register is empty (default).
+ */
+#define MU_SR_TEn(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_TEn_SHIFT)) & MU_SR_TEn_MASK)
+#define MU_SR_RFn_MASK                           (0xF000000U)
+#define MU_SR_RFn_SHIFT                          (24U)
+/*! RFn - RFn
+ *  0b0000..MUB RRn register is not full (default).
+ *  0b0001..MUB RRn register has received data from MUA TRn register and is ready to be read by the MUB.
+ */
+#define MU_SR_RFn(x)                             (((uint32_t)(((uint32_t)(x)) << MU_SR_RFn_SHIFT)) & MU_SR_RFn_MASK)
+#define MU_SR_GIPn_MASK                          (0xF0000000U)
+#define MU_SR_GIPn_SHIFT                         (28U)
+/*! GIPn - GIPn
+ *  0b0000..MUB general purpose interrupt n is not pending. (default)
+ *  0b0001..MUB general purpose interrupt n is pending.
+ */
+#define MU_SR_GIPn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_SR_GIPn_SHIFT)) & MU_SR_GIPn_MASK)
+/*! @} */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define MU_CR_Fn_MASK                            (0x7U)
+#define MU_CR_Fn_SHIFT                           (0U)
+/*! Fn - Fn
+ *  0b000..Clears the Fn bit in the SR register.
+ *  0b001..Sets the Fn bit in the SR register.
+ */
+#define MU_CR_Fn(x)                              (((uint32_t)(((uint32_t)(x)) << MU_CR_Fn_SHIFT)) & MU_CR_Fn_MASK)
+#define MU_CR_NMI_MASK                           (0x8U)
+#define MU_CR_NMI_SHIFT                          (3U)
+/*! NMI - NMI
+ *  0b0..Non-maskable interrupt is not issued to the Processor A by the Processor B (default).
+ *  0b1..Non-maskable interrupt is issued to the Processor A by the Processor B.
+ */
+#define MU_CR_NMI(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CR_NMI_SHIFT)) & MU_CR_NMI_MASK)
+#define MU_CR_MUR_MASK                           (0x20U)
+#define MU_CR_MUR_SHIFT                          (5U)
+/*! MUR - MUR
+ *  0b0..N/A. Self clearing bit (default).
+ *  0b1..Asserts the MU reset.
+ */
+#define MU_CR_MUR(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CR_MUR_SHIFT)) & MU_CR_MUR_MASK)
+#define MU_CR_RDIE_MASK                          (0x40U)
+#define MU_CR_RDIE_SHIFT                         (6U)
+/*! RDIE - RDIE
+ *  0b0..Disables Processor B General Purpose Interrupt 3 request due to Processor A reset de-assertion.
+ *  0b1..Enables Processor B General Purpose Interrupt 3 request due to Processor A reset de-assertion.
+ */
+#define MU_CR_RDIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RDIE_SHIFT)) & MU_CR_RDIE_MASK)
+#define MU_CR_HRIE_MASK                          (0x80U)
+#define MU_CR_HRIE_SHIFT                         (7U)
+/*! HRIE - Processor B hardware reset interrupt enable
+ *  0b0..Disables Processor B General Purpose Interrupt 3 request due to Processor A issued HR to Processor B.
+ *  0b1..Enables Processor B General Purpose Interrupt 3 request due to Processor A issued HR to Processor B.
+ */
+#define MU_CR_HRIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_HRIE_SHIFT)) & MU_CR_HRIE_MASK)
+#define MU_CR_MURIE_MASK                         (0x800U)
+#define MU_CR_MURIE_SHIFT                        (11U)
+/*! MURIE - MURIE
+ *  0b0..Disables Processor B-side General Purpose Interrupt 3 request due to MU reset issued by MUA.
+ *  0b1..Enables Processor B-side General Purpose Interrupt 3 request due to MU reset issued by MUA.
+ */
+#define MU_CR_MURIE(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CR_MURIE_SHIFT)) & MU_CR_MURIE_MASK)
+#define MU_CR_RAIE_MASK                          (0x1000U)
+#define MU_CR_RAIE_SHIFT                         (12U)
+/*! RAIE - RAIE
+ *  0b0..Disables Processor B-side General Purpose Interrupt 3 request due to Processor A reset assertion.
+ *  0b1..Enables Processor B-side General Purpose Interrupt 3 request due to Processor A reset assertion.
+ */
+#define MU_CR_RAIE(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RAIE_SHIFT)) & MU_CR_RAIE_MASK)
+#define MU_CR_GIRn_MASK                          (0xF0000U)
+#define MU_CR_GIRn_SHIFT                         (16U)
+/*! GIRn - GIRn
+ *  0b0000..MUB General Interrupt n is not requested to the MUA (default).
+ *  0b0001..MUB General Interrupt n is requested to the MUA.
+ */
+#define MU_CR_GIRn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_GIRn_SHIFT)) & MU_CR_GIRn_MASK)
+#define MU_CR_TIEn_MASK                          (0xF00000U)
+#define MU_CR_TIEn_SHIFT                         (20U)
+/*! TIEn - TIEn
+ *  0b0000..Disables MUB Transmit Interrupt n. (default)
+ *  0b0001..Enables MUB Transmit Interrupt n.
+ */
+#define MU_CR_TIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_TIEn_SHIFT)) & MU_CR_TIEn_MASK)
+#define MU_CR_RIEn_MASK                          (0xF000000U)
+#define MU_CR_RIEn_SHIFT                         (24U)
+/*! RIEn - RIEn
+ *  0b0000..Disables MUB Receive Interrupt n. (default)
+ *  0b0001..Enables MUB Receive Interrupt n.
+ */
+#define MU_CR_RIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_RIEn_SHIFT)) & MU_CR_RIEn_MASK)
+#define MU_CR_GIEn_MASK                          (0xF0000000U)
+#define MU_CR_GIEn_SHIFT                         (28U)
+/*! GIEn - GIEn
+ *  0b0000..Disables MUB General Interrupt n. (default)
+ *  0b0001..Enables MUB General Interrupt n.
+ */
+#define MU_CR_GIEn(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CR_GIEn_SHIFT)) & MU_CR_GIEn_MASK)
+/*! @} */
+
+/*! @name CCR - Core Control Register */
+/*! @{ */
+#define MU_CCR_HR_MASK                           (0x1U)
+#define MU_CCR_HR_SHIFT                          (0U)
+/*! HR - HR
+ *  0b0..De-assert Hardware reset to the Processor A. (default)
+ *  0b1..Assert Hardware reset to the Processor A.
+ */
+#define MU_CCR_HR(x)                             (((uint32_t)(((uint32_t)(x)) << MU_CCR_HR_SHIFT)) & MU_CCR_HR_MASK)
+#define MU_CCR_HRM_MASK                          (0x2U)
+#define MU_CCR_HRM_SHIFT                         (1U)
+/*! HRM - When set, HR bit in MUA CCR has no effect
+ *  0b0..HR bit in MUA CCR is not masked, enables the hardware reset to the Processor B (default after hardware reset).
+ *  0b1..HR bit in MUA CCR is masked, disables the hardware reset request to the Processor B.
+ */
+#define MU_CCR_HRM(x)                            (((uint32_t)(((uint32_t)(x)) << MU_CCR_HRM_SHIFT)) & MU_CCR_HRM_MASK)
+#define MU_CCR_RSTH_MASK                         (0x4U)
+#define MU_CCR_RSTH_SHIFT                        (2U)
+/*! RSTH - Processor A Reset Hold
+ *  0b0..Release Processor A from reset
+ *  0b1..Hold Processor A in reset
+ */
+#define MU_CCR_RSTH(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_RSTH_SHIFT)) & MU_CCR_RSTH_MASK)
+#define MU_CCR_CLKE_MASK                         (0x8U)
+#define MU_CCR_CLKE_SHIFT                        (3U)
+/*! CLKE - MUA clock enable
+ *  0b0..MUA platform clock gated when MUA-side enters a stop mode.
+ *  0b1..MUA platform clock kept running after MUA-side enters a stop mode, until MUB also enters a stop mode.
+ */
+#define MU_CCR_CLKE(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_CLKE_SHIFT)) & MU_CCR_CLKE_MASK)
+#define MU_CCR_BOOT_MASK                         (0x30U)
+#define MU_CCR_BOOT_SHIFT                        (4U)
+/*! BOOT - Slave Processor A Boot Config.
+ *  0b00..Boot from Pflash base
+ *  0b01..Reserved
+ *  0b10..Boot from CM4 RAM base
+ *  0b11..Reserved
+ */
+#define MU_CCR_BOOT(x)                           (((uint32_t)(((uint32_t)(x)) << MU_CCR_BOOT_SHIFT)) & MU_CCR_BOOT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group MU_Register_Masks */
+
+
+/* MU - Peripheral instance base addresses */
+/** Peripheral MUB base address */
+#define MUB_BASE                                 (0x41024000u)
+/** Peripheral MUB base pointer */
+#define MUB                                      ((MU_Type *)MUB_BASE)
+/** Array initializer of MU peripheral base addresses */
+#define MU_BASE_ADDRS                            { MUB_BASE }
+/** Array initializer of MU peripheral base pointers */
+#define MU_BASE_PTRS                             { MUB }
+/** Interrupt vectors for the MU peripheral type */
+#define MU_IRQS                                  { MUB_IRQn }
+
+/*!
+ * @}
+ */ /* end of group MU_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- PCC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PCC_Peripheral_Access_Layer PCC Peripheral Access Layer
+ * @{
+ */
+
+/** PCC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CLKCFG[130];                       /**< PCC MSCM Register..PCC EXT_CLK Register, array offset: 0x0, array step: 0x4 */
+} PCC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- PCC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PCC_Register_Masks PCC Register Masks
+ * @{
+ */
+
+/*! @name CLKCFG - PCC MSCM Register..PCC EXT_CLK Register */
+/*! @{ */
+#define PCC_CLKCFG_PCD_MASK                      (0x7U)
+#define PCC_CLKCFG_PCD_SHIFT                     (0U)
+/*! PCD - Peripheral Clock Divider Select
+ *  0b000..Divide by 1.
+ *  0b001..Divide by 2.
+ *  0b010..Divide by 3.
+ *  0b011..Divide by 4.
+ *  0b100..Divide by 5.
+ *  0b101..Divide by 6.
+ *  0b110..Divide by 7.
+ *  0b111..Divide by 8.
+ */
+#define PCC_CLKCFG_PCD(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PCD_SHIFT)) & PCC_CLKCFG_PCD_MASK)
+#define PCC_CLKCFG_FRAC_MASK                     (0x8U)
+#define PCC_CLKCFG_FRAC_SHIFT                    (3U)
+/*! FRAC - Peripheral Clock Divider Fraction
+ *  0b0..Fractional value is 0.
+ *  0b1..Fractional value is 1.
+ */
+#define PCC_CLKCFG_FRAC(x)                       (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_FRAC_SHIFT)) & PCC_CLKCFG_FRAC_MASK)
+#define PCC_CLKCFG_PCS_MASK                      (0x7000000U)
+#define PCC_CLKCFG_PCS_SHIFT                     (24U)
+/*! PCS - Peripheral Clock Source Select
+ *  0b000..Clock is off. An external clock can be enabled for this peripheral.
+ *  0b001..Clock option 1
+ *  0b010..Clock option 2
+ *  0b011..Clock option 3
+ *  0b100..Clock option 4
+ *  0b101..Clock option 5
+ *  0b110..Clock option 6
+ *  0b111..Clock option 7
+ */
+#define PCC_CLKCFG_PCS(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PCS_SHIFT)) & PCC_CLKCFG_PCS_MASK)
+#define PCC_CLKCFG_INUSE_MASK                    (0x20000000U)
+#define PCC_CLKCFG_INUSE_SHIFT                   (29U)
+/*! INUSE - In use flag
+ *  0b0..Peripheral is not being used.
+ *  0b1..Peripheral is being used. Software cannot modify the existing clocking configuration.
+ */
+#define PCC_CLKCFG_INUSE(x)                      (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_INUSE_SHIFT)) & PCC_CLKCFG_INUSE_MASK)
+#define PCC_CLKCFG_CGC_MASK                      (0x40000000U)
+#define PCC_CLKCFG_CGC_SHIFT                     (30U)
+/*! CGC - Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled. The current clock selection and divider options are locked.
+ */
+#define PCC_CLKCFG_CGC(x)                        (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_CGC_SHIFT)) & PCC_CLKCFG_CGC_MASK)
+#define PCC_CLKCFG_PR_MASK                       (0x80000000U)
+#define PCC_CLKCFG_PR_SHIFT                      (31U)
+/*! PR - Present
+ *  0b0..Peripheral is not present.
+ *  0b1..Peripheral is present.
+ */
+#define PCC_CLKCFG_PR(x)                         (((uint32_t)(((uint32_t)(x)) << PCC_CLKCFG_PR_SHIFT)) & PCC_CLKCFG_PR_MASK)
+/*! @} */
+
+/* The count of PCC_CLKCFG */
+#define PCC_CLKCFG_COUNT                         (130U)
+
+
+/*!
+ * @}
+ */ /* end of group PCC_Register_Masks */
+
+
+/* PCC - Peripheral instance base addresses */
+/** Peripheral PCC0 base address */
+#define PCC0_BASE                                (0x4002B000u)
+/** Peripheral PCC0 base pointer */
+#define PCC0                                     ((PCC_Type *)PCC0_BASE)
+/** Peripheral PCC1 base address */
+#define PCC1_BASE                                (0x41027000u)
+/** Peripheral PCC1 base pointer */
+#define PCC1                                     ((PCC_Type *)PCC1_BASE)
+/** Array initializer of PCC peripheral base addresses */
+#define PCC_BASE_ADDRS                           { PCC0_BASE, PCC1_BASE }
+/** Array initializer of PCC peripheral base pointers */
+#define PCC_BASE_PTRS                            { PCC0, PCC1 }
+#define    PCC_INSTANCE_MASK            (0xFu)
+#define    PCC_INSTANCE_SHIFT           (12u)
+#define    PCC_PERIPHERAL_MASK          (0xFFFu)
+#define    PCC_PERIPHERAL_SHIFT         (0u)
+#define    PCC_INSTANCE_0               (0u)
+#define    PCC_INSTANCE_1               (1u)
+
+#define    PCC_MSCM_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 1U)
+#define    PCC_AXBS0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 4U)
+#define    PCC_DMA0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 8U)
+#define    PCC_FLEXBUS_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 12U)
+#define    PCC_XRDC_MGR_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 20U)
+#define    PCC0_XRDC_PAC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 22U)
+#define    PCC0_XRDC_MRC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 23U)
+#define    PCC_SEMA42_0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 27U)
+#define    PCC_DMAMUX0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 33U)
+#define    PCC_EWM_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 34U)
+#define    PCC_MUA_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 37U)
+#define    PCC_CRC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 47U)
+#define    PCC_LPIT0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 48U)
+#define    PCC_TPM0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 53U)
+#define    PCC_TPM1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 54U)
+#define    PCC_TPM2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 55U)
+#define    PCC_EMVSIM0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 56U)
+#define    PCC_FLEXIO0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 57U)
+#define    PCC_LPI2C0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 58U)
+#define    PCC_LPI2C1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 59U)
+#define    PCC_LPI2C2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 60U)
+#define    PCC_I2S0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 61U)
+#define    PCC_USDHC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 62U)
+#define    PCC_LPSPI0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 63U)
+#define    PCC_LPSPI1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 64U)
+#define    PCC_LPSPI2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 65U)
+#define    PCC_LPUART0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 66U)
+#define    PCC_LPUART1_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 67U)
+#define    PCC_LPUART2_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 68U)
+#define    PCC_USB0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 69U)
+#define    PCC_PORTA_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 70U)
+#define    PCC_PORTB_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 71U)
+#define    PCC_PORTC_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 72U)
+#define    PCC_PORTD_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 73U)
+#define    PCC_ADC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 74U)
+#define    PCC_LPDAC0_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 76U)
+#define    PCC_VREF_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 77U)
+#define    PCC_TRACE_INDEX            ((uint16_t)((PCC_INSTANCE_0 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 128U)
+#define    PCC_DMA1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 8U)
+#define    PCC_GPIOE_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 15U)
+#define    PCC1_XRDC_PAC_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 22U)
+#define    PCC1_XRDC_MRC_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 23U)
+#define    PCC_SEMA42_1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 27U)
+#define    PCC_DMAMUX1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 33U)
+#define    PCC_INTMUX1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 34U)
+#define    PCC_MUB_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 36U)
+#define    PCC_CAU3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 40U)
+#define    PCC_TRNG_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 41U)
+#define    PCC_LPIT1_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 42U)
+#define    PCC_TPM3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 45U)
+#define    PCC_LPI2C3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 46U)
+#define    PCC_LPSPI3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 53U)
+#define    PCC_LPUART3_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 54U)
+#define    PCC_PORTE_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 55U)
+#define    PCC_MTB_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 128U)
+#define    PCC_EXT_CLK_INDEX            ((uint16_t)((PCC_INSTANCE_1 & PCC_INSTANCE_MASK) << PCC_INSTANCE_SHIFT) | 129U)
+#define    PCC_MSCM              (PCC0->CLKCFG[1])
+#define    PCC_AXBS0              (PCC0->CLKCFG[4])
+#define    PCC_DMA0              (PCC0->CLKCFG[8])
+#define    PCC_FLEXBUS              (PCC0->CLKCFG[12])
+#define    PCC_XRDC_MGR              (PCC0->CLKCFG[20])
+#define    PCC0_XRDC_PAC              (PCC0->CLKCFG[22])
+#define    PCC0_XRDC_MRC              (PCC0->CLKCFG[23])
+#define    PCC_SEMA42_0              (PCC0->CLKCFG[27])
+#define    PCC_DMAMUX0              (PCC0->CLKCFG[33])
+#define    PCC_EWM              (PCC0->CLKCFG[34])
+#define    PCC_MUA              (PCC0->CLKCFG[37])
+#define    PCC_CRC0              (PCC0->CLKCFG[47])
+#define    PCC_LPIT0              (PCC0->CLKCFG[48])
+#define    PCC_TPM0              (PCC0->CLKCFG[53])
+#define    PCC_TPM1              (PCC0->CLKCFG[54])
+#define    PCC_TPM2              (PCC0->CLKCFG[55])
+#define    PCC_EMVSIM0              (PCC0->CLKCFG[56])
+#define    PCC_FLEXIO0              (PCC0->CLKCFG[57])
+#define    PCC_LPI2C0              (PCC0->CLKCFG[58])
+#define    PCC_LPI2C1              (PCC0->CLKCFG[59])
+#define    PCC_LPI2C2              (PCC0->CLKCFG[60])
+#define    PCC_I2S0              (PCC0->CLKCFG[61])
+#define    PCC_USDHC0              (PCC0->CLKCFG[62])
+#define    PCC_LPSPI0              (PCC0->CLKCFG[63])
+#define    PCC_LPSPI1              (PCC0->CLKCFG[64])
+#define    PCC_LPSPI2              (PCC0->CLKCFG[65])
+#define    PCC_LPUART0              (PCC0->CLKCFG[66])
+#define    PCC_LPUART1              (PCC0->CLKCFG[67])
+#define    PCC_LPUART2              (PCC0->CLKCFG[68])
+#define    PCC_USB0              (PCC0->CLKCFG[69])
+#define    PCC_PORTA              (PCC0->CLKCFG[70])
+#define    PCC_PORTB              (PCC0->CLKCFG[71])
+#define    PCC_PORTC              (PCC0->CLKCFG[72])
+#define    PCC_PORTD              (PCC0->CLKCFG[73])
+#define    PCC_ADC0              (PCC0->CLKCFG[74])
+#define    PCC_LPDAC0              (PCC0->CLKCFG[76])
+#define    PCC_VREF              (PCC0->CLKCFG[77])
+#define    PCC_TRACE              (PCC0->CLKCFG[128])
+#define    PCC_DMA1              (PCC1->CLKCFG[8])
+#define    PCC_GPIOE              (PCC1->CLKCFG[15])
+#define    PCC1_XRDC_PAC              (PCC1->CLKCFG[22])
+#define    PCC1_XRDC_MRC              (PCC1->CLKCFG[23])
+#define    PCC_SEMA42_1              (PCC1->CLKCFG[27])
+#define    PCC_DMAMUX1              (PCC1->CLKCFG[33])
+#define    PCC_INTMUX1              (PCC1->CLKCFG[34])
+#define    PCC_MUB              (PCC1->CLKCFG[36])
+#define    PCC_CAU3              (PCC1->CLKCFG[40])
+#define    PCC_TRNG              (PCC1->CLKCFG[41])
+#define    PCC_LPIT1              (PCC1->CLKCFG[42])
+#define    PCC_TPM3              (PCC1->CLKCFG[45])
+#define    PCC_LPI2C3              (PCC1->CLKCFG[46])
+#define    PCC_LPSPI3              (PCC1->CLKCFG[53])
+#define    PCC_LPUART3              (PCC1->CLKCFG[54])
+#define    PCC_PORTE              (PCC1->CLKCFG[55])
+#define    PCC_MTB              (PCC1->CLKCFG[128])
+#define    PCC_EXT_CLK              (PCC1->CLKCFG[129])
+
+
+/*!
+ * @}
+ */ /* end of group PCC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- PORT Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PORT_Peripheral_Access_Layer PORT Peripheral Access Layer
+ * @{
+ */
+
+/** PORT - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PCR[32];                           /**< Pin Control Register 0..Pin Control Register 30, array offset: 0x0, array step: 0x4 */
+  __O  uint32_t GPCLR;                             /**< Global Pin Control Low Register, offset: 0x80 */
+  __O  uint32_t GPCHR;                             /**< Global Pin Control High Register, offset: 0x84 */
+  __O  uint32_t GICLR;                             /**< Global Interrupt Control Low Register, offset: 0x88 */
+  __O  uint32_t GICHR;                             /**< Global Interrupt Control High Register, offset: 0x8C */
+       uint8_t RESERVED_0[16];
+  __IO uint32_t ISFR;                              /**< Interrupt Status Flag Register, offset: 0xA0 */
+       uint8_t RESERVED_1[28];
+  __IO uint32_t DFER;                              /**< Digital Filter Enable Register, offset: 0xC0 */
+  __IO uint32_t DFCR;                              /**< Digital Filter Clock Register, offset: 0xC4 */
+  __IO uint32_t DFWR;                              /**< Digital Filter Width Register, offset: 0xC8 */
+} PORT_Type;
+
+/* ----------------------------------------------------------------------------
+   -- PORT Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup PORT_Register_Masks PORT Register Masks
+ * @{
+ */
+
+/*! @name PCR - Pin Control Register 0..Pin Control Register 30 */
+/*! @{ */
+#define PORT_PCR_PS_MASK                         (0x1U)
+#define PORT_PCR_PS_SHIFT                        (0U)
+/*! PS - Pull Select
+ *  0b0..Internal pulldown resistor is enabled on the corresponding pin, if the corresponding PE field is set.
+ *  0b1..Internal pullup resistor is enabled on the corresponding pin, if the corresponding PE field is set.
+ */
+#define PORT_PCR_PS(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PS_SHIFT)) & PORT_PCR_PS_MASK)
+#define PORT_PCR_PE_MASK                         (0x2U)
+#define PORT_PCR_PE_SHIFT                        (1U)
+/*! PE - Pull Enable
+ *  0b0..Internal pull resistor is not enabled on the corresponding pin.
+ *  0b1..Internal pull resistor is enabled on the corresponding pin, if the pin is configured as a digital input.
+ */
+#define PORT_PCR_PE(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PE_SHIFT)) & PORT_PCR_PE_MASK)
+#define PORT_PCR_SRE_MASK                        (0x4U)
+#define PORT_PCR_SRE_SHIFT                       (2U)
+/*! SRE - Slew Rate Enable
+ *  0b0..Fast slew rate is configured on the corresponding pin, if the pin is configured as a digital output.
+ *  0b1..Slow slew rate is configured on the corresponding pin, if the pin is configured as a digital output.
+ */
+#define PORT_PCR_SRE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_SRE_SHIFT)) & PORT_PCR_SRE_MASK)
+#define PORT_PCR_PFE_MASK                        (0x10U)
+#define PORT_PCR_PFE_SHIFT                       (4U)
+/*! PFE - Passive Filter Enable
+ *  0b0..Passive input filter is disabled on the corresponding pin.
+ *  0b1..Passive input filter is enabled on the corresponding pin, if the pin is configured as a digital input. Refer to the device data sheet for filter characteristics.
+ */
+#define PORT_PCR_PFE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_PFE_SHIFT)) & PORT_PCR_PFE_MASK)
+#define PORT_PCR_ODE_MASK                        (0x20U)
+#define PORT_PCR_ODE_SHIFT                       (5U)
+/*! ODE - Open Drain Enable
+ *  0b0..Open drain output is disabled on the corresponding pin.
+ *  0b1..Open drain output is enabled on the corresponding pin, if the pin is configured as a digital output.
+ */
+#define PORT_PCR_ODE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ODE_SHIFT)) & PORT_PCR_ODE_MASK)
+#define PORT_PCR_DSE_MASK                        (0x40U)
+#define PORT_PCR_DSE_SHIFT                       (6U)
+/*! DSE - Drive Strength Enable
+ *  0b0..Low drive strength is configured on the corresponding pin, if pin is configured as a digital output.
+ *  0b1..High drive strength is configured on the corresponding pin, if pin is configured as a digital output.
+ */
+#define PORT_PCR_DSE(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_DSE_SHIFT)) & PORT_PCR_DSE_MASK)
+#define PORT_PCR_MUX_MASK                        (0x700U)
+#define PORT_PCR_MUX_SHIFT                       (8U)
+/*! MUX - Pin Mux Control
+ *  0b000..Pin disabled (Alternative 0) (analog).
+ *  0b001..Alternative 1 (GPIO).
+ *  0b010..Alternative 2 (chip-specific).
+ *  0b011..Alternative 3 (chip-specific).
+ *  0b100..Alternative 4 (chip-specific).
+ *  0b101..Alternative 5 (chip-specific).
+ *  0b110..Alternative 6 (chip-specific).
+ *  0b111..Alternative 7 (chip-specific).
+ */
+#define PORT_PCR_MUX(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_MUX_SHIFT)) & PORT_PCR_MUX_MASK)
+#define PORT_PCR_LK_MASK                         (0x8000U)
+#define PORT_PCR_LK_SHIFT                        (15U)
+/*! LK - Lock Register
+ *  0b0..Pin Control Register is not locked.
+ *  0b1..Pin Control Register is locked and cannot be updated until the next system reset.
+ */
+#define PORT_PCR_LK(x)                           (((uint32_t)(((uint32_t)(x)) << PORT_PCR_LK_SHIFT)) & PORT_PCR_LK_MASK)
+#define PORT_PCR_IRQC_MASK                       (0xF0000U)
+#define PORT_PCR_IRQC_SHIFT                      (16U)
+/*! IRQC - Interrupt Configuration
+ *  0b0000..Interrupt Status Flag (ISF) is disabled.
+ *  0b0001..ISF flag and DMA request on rising edge.
+ *  0b0010..ISF flag and DMA request on falling edge.
+ *  0b0011..ISF flag and DMA request on either edge.
+ *  0b0100..Reserved.
+ *  0b0101..Flag sets on rising edge.
+ *  0b0110..Flag sets on falling edge.
+ *  0b0111..Flag sets on either edge.
+ *  0b1000..ISF flag and Interrupt when logic 0.
+ *  0b1001..ISF flag and Interrupt on rising-edge.
+ *  0b1010..ISF flag and Interrupt on falling-edge.
+ *  0b1011..ISF flag and Interrupt on either edge.
+ *  0b1100..ISF flag and Interrupt when logic 1.
+ *  0b1101..Enable active high trigger output, flag is disabled. [The trigger output goes to the trigger mux, which allows pins to trigger other peripherals (configurable polarity; 1 pin per port; if multiple pins are configured, then they are ORed together to create the trigger)]
+ *  0b1110..Enable active low trigger output, flag is disabled.
+ *  0b1111..Reserved.
+ */
+#define PORT_PCR_IRQC(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_PCR_IRQC_SHIFT)) & PORT_PCR_IRQC_MASK)
+#define PORT_PCR_ISF_MASK                        (0x1000000U)
+#define PORT_PCR_ISF_SHIFT                       (24U)
+/*! ISF - Interrupt Status Flag
+ *  0b0..Configured interrupt is not detected.
+ *  0b1..Configured interrupt is detected. If the pin is configured to generate a DMA request, then the corresponding flag will be cleared automatically at the completion of the requested DMA transfer. Otherwise, the flag remains set until a logic 1 is written to the flag. If the pin is configured for a level sensitive interrupt and the pin remains asserted, then the flag is set again immediately after it is cleared.
+ */
+#define PORT_PCR_ISF(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_PCR_ISF_SHIFT)) & PORT_PCR_ISF_MASK)
+/*! @} */
+
+/* The count of PORT_PCR */
+#define PORT_PCR_COUNT                           (32U)
+
+/*! @name GPCLR - Global Pin Control Low Register */
+/*! @{ */
+#define PORT_GPCLR_GPWD_MASK                     (0xFFFFU)
+#define PORT_GPCLR_GPWD_SHIFT                    (0U)
+#define PORT_GPCLR_GPWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWD_SHIFT)) & PORT_GPCLR_GPWD_MASK)
+#define PORT_GPCLR_GPWE_MASK                     (0xFFFF0000U)
+#define PORT_GPCLR_GPWE_SHIFT                    (16U)
+#define PORT_GPCLR_GPWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCLR_GPWE_SHIFT)) & PORT_GPCLR_GPWE_MASK)
+/*! @} */
+
+/*! @name GPCHR - Global Pin Control High Register */
+/*! @{ */
+#define PORT_GPCHR_GPWD_MASK                     (0xFFFFU)
+#define PORT_GPCHR_GPWD_SHIFT                    (0U)
+#define PORT_GPCHR_GPWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWD_SHIFT)) & PORT_GPCHR_GPWD_MASK)
+#define PORT_GPCHR_GPWE_MASK                     (0xFFFF0000U)
+#define PORT_GPCHR_GPWE_SHIFT                    (16U)
+#define PORT_GPCHR_GPWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GPCHR_GPWE_SHIFT)) & PORT_GPCHR_GPWE_MASK)
+/*! @} */
+
+/*! @name GICLR - Global Interrupt Control Low Register */
+/*! @{ */
+#define PORT_GICLR_GIWE_MASK                     (0xFFFFU)
+#define PORT_GICLR_GIWE_SHIFT                    (0U)
+#define PORT_GICLR_GIWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICLR_GIWE_SHIFT)) & PORT_GICLR_GIWE_MASK)
+#define PORT_GICLR_GIWD_MASK                     (0xFFFF0000U)
+#define PORT_GICLR_GIWD_SHIFT                    (16U)
+#define PORT_GICLR_GIWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICLR_GIWD_SHIFT)) & PORT_GICLR_GIWD_MASK)
+/*! @} */
+
+/*! @name GICHR - Global Interrupt Control High Register */
+/*! @{ */
+#define PORT_GICHR_GIWE_MASK                     (0xFFFFU)
+#define PORT_GICHR_GIWE_SHIFT                    (0U)
+#define PORT_GICHR_GIWE(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICHR_GIWE_SHIFT)) & PORT_GICHR_GIWE_MASK)
+#define PORT_GICHR_GIWD_MASK                     (0xFFFF0000U)
+#define PORT_GICHR_GIWD_SHIFT                    (16U)
+#define PORT_GICHR_GIWD(x)                       (((uint32_t)(((uint32_t)(x)) << PORT_GICHR_GIWD_SHIFT)) & PORT_GICHR_GIWD_MASK)
+/*! @} */
+
+/*! @name ISFR - Interrupt Status Flag Register */
+/*! @{ */
+#define PORT_ISFR_ISF_MASK                       (0xFFFFFFFFU)
+#define PORT_ISFR_ISF_SHIFT                      (0U)
+#define PORT_ISFR_ISF(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_ISFR_ISF_SHIFT)) & PORT_ISFR_ISF_MASK)
+/*! @} */
+
+/*! @name DFER - Digital Filter Enable Register */
+/*! @{ */
+#define PORT_DFER_DFE_MASK                       (0xFFFFFFFFU)
+#define PORT_DFER_DFE_SHIFT                      (0U)
+#define PORT_DFER_DFE(x)                         (((uint32_t)(((uint32_t)(x)) << PORT_DFER_DFE_SHIFT)) & PORT_DFER_DFE_MASK)
+/*! @} */
+
+/*! @name DFCR - Digital Filter Clock Register */
+/*! @{ */
+#define PORT_DFCR_CS_MASK                        (0x1U)
+#define PORT_DFCR_CS_SHIFT                       (0U)
+/*! CS - Clock Source
+ *  0b0..Digital filters are clocked by the bus clock.
+ *  0b1..Digital filters are clocked by the 8 clock.
+ */
+#define PORT_DFCR_CS(x)                          (((uint32_t)(((uint32_t)(x)) << PORT_DFCR_CS_SHIFT)) & PORT_DFCR_CS_MASK)
+/*! @} */
+
+/*! @name DFWR - Digital Filter Width Register */
+/*! @{ */
+#define PORT_DFWR_FILT_MASK                      (0x1FU)
+#define PORT_DFWR_FILT_SHIFT                     (0U)
+#define PORT_DFWR_FILT(x)                        (((uint32_t)(((uint32_t)(x)) << PORT_DFWR_FILT_SHIFT)) & PORT_DFWR_FILT_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group PORT_Register_Masks */
+
+
+/* PORT - Peripheral instance base addresses */
+/** Peripheral PORTA base address */
+#define PORTA_BASE                               (0x40046000u)
+/** Peripheral PORTA base pointer */
+#define PORTA                                    ((PORT_Type *)PORTA_BASE)
+/** Peripheral PORTB base address */
+#define PORTB_BASE                               (0x40047000u)
+/** Peripheral PORTB base pointer */
+#define PORTB                                    ((PORT_Type *)PORTB_BASE)
+/** Peripheral PORTC base address */
+#define PORTC_BASE                               (0x40048000u)
+/** Peripheral PORTC base pointer */
+#define PORTC                                    ((PORT_Type *)PORTC_BASE)
+/** Peripheral PORTD base address */
+#define PORTD_BASE                               (0x40049000u)
+/** Peripheral PORTD base pointer */
+#define PORTD                                    ((PORT_Type *)PORTD_BASE)
+/** Peripheral PORTE base address */
+#define PORTE_BASE                               (0x41037000u)
+/** Peripheral PORTE base pointer */
+#define PORTE                                    ((PORT_Type *)PORTE_BASE)
+/** Array initializer of PORT peripheral base addresses */
+#define PORT_BASE_ADDRS                          { PORTA_BASE, PORTB_BASE, PORTC_BASE, PORTD_BASE, PORTE_BASE }
+/** Array initializer of PORT peripheral base pointers */
+#define PORT_BASE_PTRS                           { PORTA, PORTB, PORTC, PORTD, PORTE }
+/** Interrupt vectors for the PORT peripheral type */
+#define PORT_IRQS                                { PORTA_IRQn, PORTB_IRQn, PORTC_IRQn, PORTD_IRQn, PORTE_IRQn }
+
+/*!
+ * @}
+ */ /* end of group PORT_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- ROM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ROM_Peripheral_Access_Layer ROM Peripheral Access Layer
+ * @{
+ */
+
+/** ROM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t ENTRY[4];                          /**< Entry, array offset: 0x0, array step: 0x4 */
+  __I  uint32_t TABLEMARK;                         /**< End of Table Marker Register, offset: 0x10 */
+       uint8_t RESERVED_0[4024];
+  __I  uint32_t SYSACCESS;                         /**< System Access Register, offset: 0xFCC */
+  __I  uint32_t PERIPHID4;                         /**< Peripheral ID Register, offset: 0xFD0 */
+  __I  uint32_t PERIPHID5;                         /**< Peripheral ID Register, offset: 0xFD4 */
+  __I  uint32_t PERIPHID6;                         /**< Peripheral ID Register, offset: 0xFD8 */
+  __I  uint32_t PERIPHID7;                         /**< Peripheral ID Register, offset: 0xFDC */
+  __I  uint32_t PERIPHID0;                         /**< Peripheral ID Register, offset: 0xFE0 */
+  __I  uint32_t PERIPHID1;                         /**< Peripheral ID Register, offset: 0xFE4 */
+  __I  uint32_t PERIPHID2;                         /**< Peripheral ID Register, offset: 0xFE8 */
+  __I  uint32_t PERIPHID3;                         /**< Peripheral ID Register, offset: 0xFEC */
+  __I  uint32_t COMPID[4];                         /**< Component ID Register, array offset: 0xFF0, array step: 0x4 */
+} ROM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- ROM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ROM_Register_Masks ROM Register Masks
+ * @{
+ */
+
+/*! @name ENTRY - Entry */
+/*! @{ */
+#define ROM_ENTRY_ENTRY_MASK                     (0xFFFFFFFFU)
+#define ROM_ENTRY_ENTRY_SHIFT                    (0U)
+#define ROM_ENTRY_ENTRY(x)                       (((uint32_t)(((uint32_t)(x)) << ROM_ENTRY_ENTRY_SHIFT)) & ROM_ENTRY_ENTRY_MASK)
+/*! @} */
+
+/* The count of ROM_ENTRY */
+#define ROM_ENTRY_COUNT                          (4U)
+
+/*! @name TABLEMARK - End of Table Marker Register */
+/*! @{ */
+#define ROM_TABLEMARK_MARK_MASK                  (0xFFFFFFFFU)
+#define ROM_TABLEMARK_MARK_SHIFT                 (0U)
+#define ROM_TABLEMARK_MARK(x)                    (((uint32_t)(((uint32_t)(x)) << ROM_TABLEMARK_MARK_SHIFT)) & ROM_TABLEMARK_MARK_MASK)
+/*! @} */
+
+/*! @name SYSACCESS - System Access Register */
+/*! @{ */
+#define ROM_SYSACCESS_SYSACCESS_MASK             (0xFFFFFFFFU)
+#define ROM_SYSACCESS_SYSACCESS_SHIFT            (0U)
+#define ROM_SYSACCESS_SYSACCESS(x)               (((uint32_t)(((uint32_t)(x)) << ROM_SYSACCESS_SYSACCESS_SHIFT)) & ROM_SYSACCESS_SYSACCESS_MASK)
+/*! @} */
+
+/*! @name PERIPHID4 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID4_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID4_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID4_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID4_PERIPHID_SHIFT)) & ROM_PERIPHID4_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID5 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID5_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID5_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID5_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID5_PERIPHID_SHIFT)) & ROM_PERIPHID5_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID6 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID6_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID6_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID6_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID6_PERIPHID_SHIFT)) & ROM_PERIPHID6_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID7 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID7_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID7_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID7_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID7_PERIPHID_SHIFT)) & ROM_PERIPHID7_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID0 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID0_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID0_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID0_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID0_PERIPHID_SHIFT)) & ROM_PERIPHID0_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID1 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID1_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID1_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID1_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID1_PERIPHID_SHIFT)) & ROM_PERIPHID1_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID2 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID2_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID2_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID2_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID2_PERIPHID_SHIFT)) & ROM_PERIPHID2_PERIPHID_MASK)
+/*! @} */
+
+/*! @name PERIPHID3 - Peripheral ID Register */
+/*! @{ */
+#define ROM_PERIPHID3_PERIPHID_MASK              (0xFFFFFFFFU)
+#define ROM_PERIPHID3_PERIPHID_SHIFT             (0U)
+#define ROM_PERIPHID3_PERIPHID(x)                (((uint32_t)(((uint32_t)(x)) << ROM_PERIPHID3_PERIPHID_SHIFT)) & ROM_PERIPHID3_PERIPHID_MASK)
+/*! @} */
+
+/*! @name COMPID - Component ID Register */
+/*! @{ */
+#define ROM_COMPID_COMPID_MASK                   (0xFFFFFFFFU)
+#define ROM_COMPID_COMPID_SHIFT                  (0U)
+#define ROM_COMPID_COMPID(x)                     (((uint32_t)(((uint32_t)(x)) << ROM_COMPID_COMPID_SHIFT)) & ROM_COMPID_COMPID_MASK)
+/*! @} */
+
+/* The count of ROM_COMPID */
+#define ROM_COMPID_COUNT                         (4U)
+
+
+/*!
+ * @}
+ */ /* end of group ROM_Register_Masks */
+
+
+/* ROM - Peripheral instance base addresses */
+/** Peripheral ROM base address */
+#define ROM_BASE                                 (0xF0002000u)
+/** Peripheral ROM base pointer */
+#define ROM                                      ((ROM_Type *)ROM_BASE)
+/** Array initializer of ROM peripheral base addresses */
+#define ROM_BASE_ADDRS                           { ROM_BASE }
+/** Array initializer of ROM peripheral base pointers */
+#define ROM_BASE_PTRS                            { ROM }
+
+/*!
+ * @}
+ */ /* end of group ROM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- RSIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RSIM_Peripheral_Access_Layer RSIM Peripheral Access Layer
+ * @{
+ */
+
+/** RSIM - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CONTROL;                           /**< Radio System Control, offset: 0x0 */
+       uint8_t RESERVED_0[12];
+  __IO uint32_t MISC;                              /**< Radio Miscellaneous, offset: 0x10 */
+  __IO uint32_t POWER;                             /**< RSIM Power Control, offset: 0x14 */
+  __IO uint32_t SW_CONFIG;                         /**< Radio Software Configuration, offset: 0x18 */
+       uint8_t RESERVED_1[228];
+  __I  uint32_t DSM_TIMER;                         /**< Deep Sleep Timer, offset: 0x100 */
+  __IO uint32_t DSM_CONTROL;                       /**< Deep Sleep Timer Control, offset: 0x104 */
+  __IO uint32_t DSM_WAKEUP;                        /**< Deep Sleep Wakeup Sequence, offset: 0x108 */
+  __I  uint32_t WOR_DURATION;                      /**< WOR Deep Sleep Duration, offset: 0x10C */
+  __IO uint32_t WOR_WAKE;                          /**< WOR Deep Sleep Wake Time, offset: 0x110 */
+       uint8_t RESERVED_2[8];
+  __IO uint32_t MAN_SLEEP;                         /**< MAN Deep Sleep Time, offset: 0x11C */
+  __IO uint32_t MAN_WAKE;                          /**< MAN Deep Sleep Wake Time, offset: 0x120 */
+  __IO uint32_t RF_OSC_CTRL;                       /**< Radio Oscillator Control, offset: 0x124 */
+  __IO uint32_t ANA_TEST;                          /**< Radio Analog Test Registers, offset: 0x128 */
+  __IO uint32_t ANA_TRIM;                          /**< Radio Analog Trim Registers, offset: 0x12C */
+} RSIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- RSIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RSIM_Register_Masks RSIM Register Masks
+ * @{
+ */
+
+/*! @name CONTROL - Radio System Control */
+/*! @{ */
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN_MASK    (0x1U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN_SHIFT   (0U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_EN_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_EN_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_MASK  (0x2U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_SHIFT (1U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_STAT(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_STAT_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_MASK (0x10U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_SHIFT (4U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_INT_EN_MASK)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_MASK   (0x20U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT_SHIFT  (5U)
+#define RSIM_CONTROL_BLE_RF_POWER_REQ_INT(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_RF_POWER_REQ_INT_SHIFT)) & RSIM_CONTROL_BLE_RF_POWER_REQ_INT_MASK)
+#define RSIM_CONTROL_RF_OSC_EN_MASK              (0x100U)
+#define RSIM_CONTROL_RF_OSC_EN_SHIFT             (8U)
+#define RSIM_CONTROL_RF_OSC_EN(x)                (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_EN_SHIFT)) & RSIM_CONTROL_RF_OSC_EN_MASK)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_MASK (0x1000U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_SHIFT (12U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_SHIFT)) & RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_EN_MASK)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_MASK (0x2000U)
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_SHIFT (13U)
+/*! RADIO_GASKET_BYPASS_OVRD - Radio Gasket Bypass Override
+ *  0b0..XCVR and Link Layer Register Clock is the RF Ref Osc Clock
+ *  0b1..XCVR and Link Layer Register Clock is the SoC IPG Clock
+ */
+#define RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_SHIFT)) & RSIM_CONTROL_RADIO_GASKET_BYPASS_OVRD_MASK)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_MASK (0x4000U)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_SHIFT (14U)
+#define RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING(x) (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_SHIFT)) & RSIM_CONTROL_IPP_OBE_BLE_EARLY_WARNING_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE_MASK      (0x8000U)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE_SHIFT     (15U)
+#define RSIM_CONTROL_IPP_OBE_RF_ACTIVE(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_ACTIVE_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_ACTIVE_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN_MASK      (0x10000U)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN_SHIFT     (16U)
+#define RSIM_CONTROL_IPP_OBE_RF_OSC_EN(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_OSC_EN_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_OSC_EN_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS_MASK      (0x40000U)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS_SHIFT     (18U)
+#define RSIM_CONTROL_IPP_OBE_RF_STATUS(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_STATUS_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_STATUS_MASK)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY_MASK    (0x80000U)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY_SHIFT   (19U)
+#define RSIM_CONTROL_IPP_OBE_RF_PRIORITY(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_IPP_OBE_RF_PRIORITY_SHIFT)) & RSIM_CONTROL_IPP_OBE_RF_PRIORITY_MASK)
+#define RSIM_CONTROL_BLE_DSM_EXIT_MASK           (0x100000U)
+#define RSIM_CONTROL_BLE_DSM_EXIT_SHIFT          (20U)
+#define RSIM_CONTROL_BLE_DSM_EXIT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_BLE_DSM_EXIT_SHIFT)) & RSIM_CONTROL_BLE_DSM_EXIT_MASK)
+#define RSIM_CONTROL_WOR_DSM_EXIT_MASK           (0x200000U)
+#define RSIM_CONTROL_WOR_DSM_EXIT_SHIFT          (21U)
+#define RSIM_CONTROL_WOR_DSM_EXIT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_WOR_DSM_EXIT_SHIFT)) & RSIM_CONTROL_WOR_DSM_EXIT_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_MASK           (0x1000000U)
+#define RSIM_CONTROL_RF_OSC_READY_SHIFT          (24U)
+#define RSIM_CONTROL_RF_OSC_READY(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN_MASK   (0x2000000U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN_SHIFT  (25U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_EN(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_OVRD_EN_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_OVRD_EN_MASK)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_MASK      (0x4000000U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD_SHIFT     (26U)
+#define RSIM_CONTROL_RF_OSC_READY_OVRD(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RF_OSC_READY_OVRD_SHIFT)) & RSIM_CONTROL_RF_OSC_READY_OVRD_MASK)
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN_MASK        (0x8000000U)
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN_SHIFT       (27U)
+/*! RSIM_CGC_BLE_EN - BLE Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_BLE_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_BLE_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_BLE_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN_MASK       (0x10000000U)
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN_SHIFT      (28U)
+/*! RSIM_CGC_XCVR_EN - XCVR Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_XCVR_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_XCVR_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_XCVR_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN_MASK        (0x20000000U)
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN_SHIFT       (29U)
+/*! RSIM_CGC_ZIG_EN - ZIG Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_ZIG_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_ZIG_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_ZIG_EN_MASK)
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN_MASK        (0x80000000U)
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN_SHIFT       (31U)
+/*! RSIM_CGC_GEN_EN - GEN Clock Gate Control
+ *  0b0..Clock disabled
+ *  0b1..Clock enabled
+ */
+#define RSIM_CONTROL_RSIM_CGC_GEN_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_CONTROL_RSIM_CGC_GEN_EN_SHIFT)) & RSIM_CONTROL_RSIM_CGC_GEN_EN_MASK)
+/*! @} */
+
+/*! @name MISC - Radio Miscellaneous */
+/*! @{ */
+#define RSIM_MISC_RADIO_VERSION_MASK             (0xFF000000U)
+#define RSIM_MISC_RADIO_VERSION_SHIFT            (24U)
+#define RSIM_MISC_RADIO_VERSION(x)               (((uint32_t)(((uint32_t)(x)) << RSIM_MISC_RADIO_VERSION_SHIFT)) & RSIM_MISC_RADIO_VERSION_MASK)
+/*! @} */
+
+/*! @name POWER - RSIM Power Control */
+/*! @{ */
+#define RSIM_POWER_RADIO_STOP_MODE_STAT_MASK     (0x7U)
+#define RSIM_POWER_RADIO_STOP_MODE_STAT_SHIFT    (0U)
+#define RSIM_POWER_RADIO_STOP_MODE_STAT(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_STAT_MASK)
+#define RSIM_POWER_SPM_STOP_ACK_STAT_MASK        (0x8U)
+#define RSIM_POWER_SPM_STOP_ACK_STAT_SHIFT       (3U)
+#define RSIM_POWER_SPM_STOP_ACK_STAT(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_ACK_STAT_SHIFT)) & RSIM_POWER_SPM_STOP_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_MASK     (0x70U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_SHIFT    (4U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_OVRD_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_OVRD_MASK)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_MASK  (0x80U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_SHIFT (7U)
+#define RSIM_POWER_RADIO_STOP_MODE_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_SHIFT)) & RSIM_POWER_RADIO_STOP_MODE_OVRD_EN_MASK)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT_MASK      (0x100U)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT_SHIFT     (8U)
+#define RSIM_POWER_RADIO_STOP_ACK_STAT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_ACK_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT_MASK      (0x200U)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT_SHIFT     (9U)
+#define RSIM_POWER_RADIO_STOP_REQ_STAT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_STOP_REQ_STAT_SHIFT)) & RSIM_POWER_RADIO_STOP_REQ_STAT_MASK)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_MASK       (0x400U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_SHIFT      (10U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_REQ_OVRD_SHIFT)) & RSIM_POWER_RSIM_STOP_REQ_OVRD_MASK)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_MASK    (0x800U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_SHIFT   (11U)
+#define RSIM_POWER_RSIM_STOP_REQ_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_STOP_REQ_OVRD_EN_MASK)
+#define RSIM_POWER_RF_OSC_EN_OVRD_MASK           (0x1000U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_SHIFT          (12U)
+#define RSIM_POWER_RF_OSC_EN_OVRD(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_OSC_EN_OVRD_SHIFT)) & RSIM_POWER_RF_OSC_EN_OVRD_MASK)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN_MASK        (0x2000U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN_SHIFT       (13U)
+#define RSIM_POWER_RF_OSC_EN_OVRD_EN(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_OSC_EN_OVRD_EN_SHIFT)) & RSIM_POWER_RF_OSC_EN_OVRD_EN_MASK)
+#define RSIM_POWER_RF_POWER_EN_OVRD_MASK         (0x4000U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_SHIFT        (14U)
+#define RSIM_POWER_RF_POWER_EN_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_POWER_EN_OVRD_SHIFT)) & RSIM_POWER_RF_POWER_EN_OVRD_MASK)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN_MASK      (0x8000U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN_SHIFT     (15U)
+#define RSIM_POWER_RF_POWER_EN_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RF_POWER_EN_OVRD_EN_SHIFT)) & RSIM_POWER_RF_POWER_EN_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_ISO_STAT_MASK             (0x10000U)
+#define RSIM_POWER_SPM_ISO_STAT_SHIFT            (16U)
+#define RSIM_POWER_SPM_ISO_STAT(x)               (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_ISO_STAT_SHIFT)) & RSIM_POWER_SPM_ISO_STAT_MASK)
+#define RSIM_POWER_RADIO_ISO_STAT_MASK           (0x20000U)
+#define RSIM_POWER_RADIO_ISO_STAT_SHIFT          (17U)
+#define RSIM_POWER_RADIO_ISO_STAT(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_ISO_STAT_SHIFT)) & RSIM_POWER_RADIO_ISO_STAT_MASK)
+#define RSIM_POWER_RSIM_ISO_OVRD_MASK            (0x40000U)
+#define RSIM_POWER_RSIM_ISO_OVRD_SHIFT           (18U)
+#define RSIM_POWER_RSIM_ISO_OVRD(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_ISO_OVRD_SHIFT)) & RSIM_POWER_RSIM_ISO_OVRD_MASK)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN_MASK         (0x80000U)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN_SHIFT        (19U)
+#define RSIM_POWER_RSIM_ISO_OVRD_EN(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_ISO_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_ISO_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_RUN_ACK_STAT_MASK         (0x100000U)
+#define RSIM_POWER_SPM_RUN_ACK_STAT_SHIFT        (20U)
+#define RSIM_POWER_SPM_RUN_ACK_STAT(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_ACK_STAT_SHIFT)) & RSIM_POWER_SPM_RUN_ACK_STAT_MASK)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT_MASK       (0x200000U)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT_SHIFT      (21U)
+#define RSIM_POWER_RADIO_RUN_REQ_STAT(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RADIO_RUN_REQ_STAT_SHIFT)) & RSIM_POWER_RADIO_RUN_REQ_STAT_MASK)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_MASK        (0x400000U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_SHIFT       (22U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQ_OVRD_SHIFT)) & RSIM_POWER_RSIM_RUN_REQ_OVRD_MASK)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_MASK     (0x800000U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_SHIFT    (23U)
+#define RSIM_POWER_RSIM_RUN_REQ_OVRD_EN(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_SHIFT)) & RSIM_POWER_RSIM_RUN_REQ_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_MASK    (0x1000000U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_SHIFT   (24U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_SHIFT)) & RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_MASK)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_MASK (0x2000000U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_SHIFT (25U)
+#define RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_SHIFT)) & RSIM_POWER_SPM_STOP_REQ_ACK_OVRD_EN_MASK)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_MASK     (0x4000000U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_SHIFT    (26U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_SHIFT)) & RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_MASK)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_MASK  (0x8000000U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_SHIFT (27U)
+#define RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_SHIFT)) & RSIM_POWER_SPM_RUN_REQ_ACK_OVRD_EN_MASK)
+#define RSIM_POWER_RSIM_STOP_MODE_MASK           (0x70000000U)
+#define RSIM_POWER_RSIM_STOP_MODE_SHIFT          (28U)
+/*! RSIM_STOP_MODE - RSIM lowest allowed Stop Mode
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b011..RLLS mode (Radio State Retention mode)
+ *  0b111..RVLLS mode (This is the POR setting)
+ */
+#define RSIM_POWER_RSIM_STOP_MODE(x)             (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_STOP_MODE_SHIFT)) & RSIM_POWER_RSIM_STOP_MODE_MASK)
+#define RSIM_POWER_RSIM_RUN_REQUEST_MASK         (0x80000000U)
+#define RSIM_POWER_RSIM_RUN_REQUEST_SHIFT        (31U)
+#define RSIM_POWER_RSIM_RUN_REQUEST(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_POWER_RSIM_RUN_REQUEST_SHIFT)) & RSIM_POWER_RSIM_RUN_REQUEST_MASK)
+/*! @} */
+
+/*! @name SW_CONFIG - Radio Software Configuration */
+/*! @{ */
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_MASK (0x1U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_SHIFT (0U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_SHIFT)) & RSIM_SW_CONFIG_RADIO_CONFIGURED_POR_RESET_MASK)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_MASK (0x2U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_SHIFT (1U)
+#define RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_SHIFT)) & RSIM_SW_CONFIG_RADIO_CONFIGURED_SYS_RESET_MASK)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_MASK  (0x10U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_SHIFT (4U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_SHIFT)) & RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_MASK)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_MASK (0x20U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_SHIFT (5U)
+#define RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_SHIFT)) & RSIM_SW_CONFIG_RSIM_RF_ACTIVE_OVRD_EN_MASK)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT_MASK        (0x100U)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT_SHIFT       (8U)
+#define RSIM_SW_CONFIG_RADIO_POR_BIT(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_POR_BIT_SHIFT)) & RSIM_SW_CONFIG_RADIO_POR_BIT_MASK)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_MASK (0x1000U)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_SHIFT (12U)
+#define RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_SHIFT)) & RSIM_SW_CONFIG_RSIM_RADIO_ISO_POR_OVRD_MASK)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT_MASK      (0x10000U)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT_SHIFT     (16U)
+#define RSIM_SW_CONFIG_RADIO_RESET_BIT(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO_RESET_BIT_SHIFT)) & RSIM_SW_CONFIG_RADIO_RESET_BIT_MASK)
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_MASK (0x300000U)
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_SHIFT (20U)
+/*! WAKEUP_INTERRUPT_SOURCE - RSIM Wakeup Interrupt Source Selector
+ *  0b00..No Radio Power-On Sequence interrupt will be generated.
+ *  0b01..A Power-On Sequence interrupt will be generated when the RF Power Request occurs, including unblocked requests from an external source to use the RF OSC.
+ *  0b10..A Power-On Sequence interrupt will be generated when the RF OSC Request occurs, but not if the RF OSC request was from an external source.
+ *  0b11..A Power-On Sequence interrupt will be generated when the RSIM RF Active Warning occurs
+ */
+#define RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE(x) (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_SHIFT)) & RSIM_SW_CONFIG_WAKEUP_INTERRUPT_SOURCE_MASK)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_MASK  (0x1000000U)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_SHIFT (24U)
+#define RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_SHIFT)) & RSIM_SW_CONFIG_RADIO0_INTERRUPT_EN_MASK)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_MASK  (0x2000000U)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_SHIFT (25U)
+#define RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_SHIFT)) & RSIM_SW_CONFIG_RADIO1_INTERRUPT_EN_MASK)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS_MASK     (0x10000000U)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS_SHIFT    (28U)
+#define RSIM_SW_CONFIG_BLOCK_SOC_RESETS(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_SOC_RESETS_SHIFT)) & RSIM_SW_CONFIG_BLOCK_SOC_RESETS_MASK)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_MASK  (0x20000000U)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_SHIFT (29U)
+#define RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_SHIFT)) & RSIM_SW_CONFIG_BLOCK_RADIO_OUTPUTS_MASK)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS_MASK     (0x40000000U)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS_SHIFT    (30U)
+#define RSIM_SW_CONFIG_ALLOW_DFT_RESETS(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_ALLOW_DFT_RESETS_SHIFT)) & RSIM_SW_CONFIG_ALLOW_DFT_RESETS_MASK)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_MASK (0x80000000U)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_SHIFT (31U)
+#define RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_SHIFT)) & RSIM_SW_CONFIG_BLOCK_EXT_OSC_PWR_REQ_MASK)
+/*! @} */
+
+/*! @name DSM_TIMER - Deep Sleep Timer */
+/*! @{ */
+#define RSIM_DSM_TIMER_DSM_TIMER_MASK            (0xFFFFFFU)
+#define RSIM_DSM_TIMER_DSM_TIMER_SHIFT           (0U)
+#define RSIM_DSM_TIMER_DSM_TIMER(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_TIMER_DSM_TIMER_SHIFT)) & RSIM_DSM_TIMER_DSM_TIMER_MASK)
+/*! @} */
+
+/*! @name DSM_CONTROL - Deep Sleep Timer Control */
+/*! @{ */
+#define RSIM_DSM_CONTROL_DSM_WOR_READY_MASK      (0x1U)
+#define RSIM_DSM_CONTROL_DSM_WOR_READY_SHIFT     (0U)
+#define RSIM_DSM_CONTROL_DSM_WOR_READY(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_WOR_READY_SHIFT)) & RSIM_DSM_CONTROL_DSM_WOR_READY_MASK)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_MASK (0x2U)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_SHIFT (1U)
+#define RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_SHIFT)) & RSIM_DSM_CONTROL_WOR_DEEP_SLEEP_STATUS_MASK)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED_MASK   (0x4U)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED_SHIFT  (2U)
+#define RSIM_DSM_CONTROL_DSM_WOR_FINISHED(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_WOR_FINISHED_SHIFT)) & RSIM_DSM_CONTROL_DSM_WOR_FINISHED_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_MASK (0x8U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_SHIFT (3U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQUEST_EN_MASK)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_MASK  (0x10U)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_SHIFT (4U)
+#define RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_SHIFT)) & RSIM_DSM_CONTROL_WOR_SLEEP_REQUEST_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_MASK     (0x20U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_SHIFT    (5U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_MASK (0x40U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_SHIFT (6U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_INTERRUPT_EN_MASK)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_MASK (0x80U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_SHIFT (7U)
+#define RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_SHIFT)) & RSIM_DSM_CONTROL_WOR_WAKEUP_REQ_INT_MASK)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY_MASK      (0x100U)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY_SHIFT     (8U)
+#define RSIM_DSM_CONTROL_DSM_MAN_READY(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_MAN_READY_SHIFT)) & RSIM_DSM_CONTROL_DSM_MAN_READY_MASK)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_MASK (0x200U)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_SHIFT (9U)
+#define RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_SHIFT)) & RSIM_DSM_CONTROL_MAN_DEEP_SLEEP_STATUS_MASK)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED_MASK   (0x400U)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED_SHIFT  (10U)
+#define RSIM_DSM_CONTROL_DSM_MAN_FINISHED(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_MAN_FINISHED_SHIFT)) & RSIM_DSM_CONTROL_DSM_MAN_FINISHED_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_MASK (0x800U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_SHIFT (11U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQUEST_EN_MASK)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_MASK  (0x1000U)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_SHIFT (12U)
+#define RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_SHIFT)) & RSIM_DSM_CONTROL_MAN_SLEEP_REQUEST_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_MASK     (0x2000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_SHIFT    (13U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_MASK (0x4000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_SHIFT (14U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_INTERRUPT_EN_MASK)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_MASK (0x8000U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_SHIFT (15U)
+#define RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_SHIFT)) & RSIM_DSM_CONTROL_MAN_WAKEUP_REQ_INT_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1_MASK     (0x10000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1_SHIFT    (16U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_1(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_1_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_1_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2_MASK     (0x20000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2_SHIFT    (17U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_2(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_2_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_2_MASK)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3_MASK     (0x40000U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3_SHIFT    (18U)
+#define RSIM_DSM_CONTROL_WIFI_COEXIST_3(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_WIFI_COEXIST_3_SHIFT)) & RSIM_DSM_CONTROL_WIFI_COEXIST_3_MASK)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_MASK (0x100000U)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_SHIFT (20U)
+#define RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_SHIFT)) & RSIM_DSM_CONTROL_RF_ACTIVE_ENDS_WITH_TSM_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_MASK (0x200000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_SHIFT (21U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_ENDS_WITH_TSM_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_MASK   (0x400000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_SHIFT  (22U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_BIT_MASK)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_MASK    (0x800000U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_SHIFT   (23U)
+#define RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_SHIFT)) & RSIM_DSM_CONTROL_SW_RF_ACTIVE_EN_MASK)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR_MASK      (0x8000000U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR_SHIFT     (27U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_CLR(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_TIMER_CLR_SHIFT)) & RSIM_DSM_CONTROL_DSM_TIMER_CLR_MASK)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN_MASK       (0x80000000U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN_SHIFT      (31U)
+#define RSIM_DSM_CONTROL_DSM_TIMER_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_CONTROL_DSM_TIMER_EN_SHIFT)) & RSIM_DSM_CONTROL_DSM_TIMER_EN_MASK)
+/*! @} */
+
+/*! @name DSM_WAKEUP - Deep Sleep Wakeup Sequence */
+/*! @{ */
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_MASK (0x3FFU)
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_SHIFT (0U)
+#define RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME(x) (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_SHIFT)) & RSIM_DSM_WAKEUP_DSM_POWER_OFFSET_TIME_MASK)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING_MASK      (0x3F000U)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING_SHIFT     (12U)
+#define RSIM_DSM_WAKEUP_ACTIVE_WARNING(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_ACTIVE_WARNING_SHIFT)) & RSIM_DSM_WAKEUP_ACTIVE_WARNING_MASK)
+#define RSIM_DSM_WAKEUP_FINE_DELAY_MASK          (0x3F00000U)
+#define RSIM_DSM_WAKEUP_FINE_DELAY_SHIFT         (20U)
+#define RSIM_DSM_WAKEUP_FINE_DELAY(x)            (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_FINE_DELAY_SHIFT)) & RSIM_DSM_WAKEUP_FINE_DELAY_MASK)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY_MASK        (0xF0000000U)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY_SHIFT       (28U)
+#define RSIM_DSM_WAKEUP_COARSE_DELAY(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_DSM_WAKEUP_COARSE_DELAY_SHIFT)) & RSIM_DSM_WAKEUP_COARSE_DELAY_MASK)
+/*! @} */
+
+/*! @name WOR_DURATION - WOR Deep Sleep Duration */
+/*! @{ */
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION_MASK  (0xFFFFFFU)
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION_SHIFT (0U)
+#define RSIM_WOR_DURATION_WOR_DSM_DURATION(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_DURATION_WOR_DSM_DURATION_SHIFT)) & RSIM_WOR_DURATION_WOR_DSM_DURATION_MASK)
+/*! @} */
+
+/*! @name WOR_WAKE - WOR Deep Sleep Wake Time */
+/*! @{ */
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME_MASK         (0xFFFFFFU)
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME_SHIFT        (0U)
+#define RSIM_WOR_WAKE_WOR_WAKE_TIME(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_WAKE_WOR_WAKE_TIME_SHIFT)) & RSIM_WOR_WAKE_WOR_WAKE_TIME_MASK)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE_MASK         (0x70000000U)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE_SHIFT        (28U)
+#define RSIM_WOR_WAKE_WOR_FSM_STATE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_WOR_WAKE_WOR_FSM_STATE_SHIFT)) & RSIM_WOR_WAKE_WOR_FSM_STATE_MASK)
+/*! @} */
+
+/*! @name MAN_SLEEP - MAN Deep Sleep Time */
+/*! @{ */
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME_MASK       (0xFFFFFFU)
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME_SHIFT      (0U)
+#define RSIM_MAN_SLEEP_MAN_SLEEP_TIME(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_SLEEP_MAN_SLEEP_TIME_SHIFT)) & RSIM_MAN_SLEEP_MAN_SLEEP_TIME_MASK)
+/*! @} */
+
+/*! @name MAN_WAKE - MAN Deep Sleep Wake Time */
+/*! @{ */
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME_MASK         (0xFFFFFFU)
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME_SHIFT        (0U)
+#define RSIM_MAN_WAKE_MAN_WAKE_TIME(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_WAKE_MAN_WAKE_TIME_SHIFT)) & RSIM_MAN_WAKE_MAN_WAKE_TIME_MASK)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE_MASK         (0x70000000U)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE_SHIFT        (28U)
+#define RSIM_MAN_WAKE_MAN_FSM_STATE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_MAN_WAKE_MAN_FSM_STATE_SHIFT)) & RSIM_MAN_WAKE_MAN_FSM_STATE_MASK)
+/*! @} */
+
+/*! @name RF_OSC_CTRL - Radio Oscillator Control */
+/*! @{ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_MASK (0x3U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_SHIFT (0U)
+/*! BB_XTAL_ALC_COUNT_SEL - rmap_bb_xtal_alc_count_sel_hv[1:0]
+ *  0b00..2048 (64 us @ 32 MHz)
+ *  0b01..4096 (128 us @ 32 MHz)
+ *  0b10..8192 (256 us @ 32 MHz)
+ *  0b11..16384 (512 us @ 32 MHz)
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ALC_COUNT_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_MASK     (0x4U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_SHIFT    (2U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON(x)       (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ALC_ON_MASK)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_MASK   (0x8U)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_SHIFT  (3U)
+#define RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN(x)     (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RF_OSC_BYPASS_EN_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_MASK  (0x1F0U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_SHIFT (4U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS(x)    (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_COMP_BIAS_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_MASK (0x200U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_SHIFT (9U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DC_COUP_MODE_EN_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_MASK    (0x400U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_SHIFT   (10U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DIAGSEL_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_MASK (0x800U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_SHIFT (11U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_DIG_CLK_ON_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM_MASK         (0x1F000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM_SHIFT        (12U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_GM(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_GM_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_GM_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_MASK    (0x20000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_SHIFT   (17U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_MASK (0x40000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_SHIFT (18U)
+/*! BB_XTAL_ON_OVRD_ON - rmap_bb_xtal_on_ovrd_on_hv
+ *  0b0..rfctrl_bb_xtal_on_hv is asserted
+ *  0b1..rfctrl_bb_xtal_on_ovrd_hv is asserted
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_ON_OVRD_ON_MASK)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_MASK (0x300000U)
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_SHIFT (20U)
+/*! BB_XTAL_READY_COUNT_SEL - rmap_bb_xtal_ready_count_sel_hv[1:0]
+ *  0b00..1024 counts (32 us @ 32 MHz)
+ *  0b01..2048 (64 us @ 32 MHz)
+ *  0b10..4096 (128 us @ 32 MHz)
+ *  0b11..8192 (256 us @ 32 MHz)
+ */
+#define RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_BB_XTAL_READY_COUNT_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_MASK (0x8000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_SHIFT (27U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_RF_EN_SEL_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_MASK (0x10000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_SHIFT (28U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_MASK (0x20000000U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_SHIFT (29U)
+#define RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RADIO_EXT_OSC_OVRD_EN_MASK)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_MASK (0x40000000U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_SHIFT (30U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD(x)  (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_SHIFT)) & RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_MASK)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_MASK (0x80000000U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_SHIFT (31U)
+#define RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_SHIFT)) & RSIM_RF_OSC_CTRL_RF_NOT_ALLOWED_OVRD_EN_MASK)
+/*! @} */
+
+/*! @name ANA_TEST - Radio Analog Test Registers */
+/*! @{ */
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN_MASK       (0x10U)
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN_SHIFT      (4U)
+#define RSIM_ANA_TEST_XTAL_OUT_BUF_EN(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TEST_XTAL_OUT_BUF_EN_SHIFT)) & RSIM_ANA_TEST_XTAL_OUT_BUF_EN_MASK)
+/*! @} */
+
+/*! @name ANA_TRIM - Radio Analog Trim Registers */
+/*! @{ */
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE_MASK       (0x3U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE_SHIFT      (0U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_SPARE(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_LS_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_LS_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM_MASK        (0x38U)
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM_SHIFT       (3U)
+/*! BB_LDO_LS_TRIM - rmap_bb_ldo_ls_trim_hv[2:0]
+ *  0b000..1.20 V (Default)
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define RSIM_ANA_TRIM_BB_LDO_LS_TRIM(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_LS_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_LS_TRIM_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE_MASK       (0xC0U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE_SHIFT      (6U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_SPARE(x)         (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_XO_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_XO_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM_MASK        (0x700U)
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM_SHIFT       (8U)
+/*! BB_LDO_XO_TRIM - rmap_bb_ldo_xo_trim_hv[2:0]
+ *  0b000..1.20 V (Default)
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define RSIM_ANA_TRIM_BB_LDO_XO_TRIM(x)          (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_LDO_XO_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_LDO_XO_TRIM_MASK)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE_MASK         (0xF800U)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE_SHIFT        (11U)
+#define RSIM_ANA_TRIM_BB_XTAL_SPARE(x)           (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_XTAL_SPARE_SHIFT)) & RSIM_ANA_TRIM_BB_XTAL_SPARE_MASK)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM_MASK          (0xFF0000U)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM_SHIFT         (16U)
+#define RSIM_ANA_TRIM_BB_XTAL_TRIM(x)            (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BB_XTAL_TRIM_SHIFT)) & RSIM_ANA_TRIM_BB_XTAL_TRIM_MASK)
+#define RSIM_ANA_TRIM_BG_1V_TRIM_MASK            (0xF000000U)
+#define RSIM_ANA_TRIM_BG_1V_TRIM_SHIFT           (24U)
+/*! BG_1V_TRIM - rmap_bg_1v_trim_hv[3:0]
+ *  0b0000..954.14 mV
+ *  0b0001..959.26 mV
+ *  0b0010..964.38 mV
+ *  0b0011..969.5 mV
+ *  0b0100..974.6 mV
+ *  0b0101..979.7 mV
+ *  0b0110..984.8 mV
+ *  0b0111..989.9 mV
+ *  0b1000..995 mV (Default)
+ *  0b1001..1 V
+ *  0b1010..1.005 V
+ *  0b1011..1.01 V
+ *  0b1100..1.015 V
+ *  0b1101..1.02 V
+ *  0b1110..1.025 V
+ *  0b1111..1.031 V
+ */
+#define RSIM_ANA_TRIM_BG_1V_TRIM(x)              (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BG_1V_TRIM_SHIFT)) & RSIM_ANA_TRIM_BG_1V_TRIM_MASK)
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_MASK      (0xF0000000U)
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_SHIFT     (28U)
+/*! BG_IBIAS_5U_TRIM - rmap_bg_ibias_5u_trim_hv[3:0]
+ *  0b0000..3.55 uA
+ *  0b0001..3.73 uA
+ *  0b0010..4.04 uA
+ *  0b0011..4.22 uA
+ *  0b0100..4.39 uA
+ *  0b0101..4.57 uA
+ *  0b0110..4.89 uA
+ *  0b0111..5.06 (Default)
+ *  0b1000..5.23 uA
+ *  0b1001..5.41 uA
+ *  0b1010..5.72 uA
+ *  0b1011..5.9 uA
+ *  0b1100..6.07 uA
+ *  0b1101..6.25 uA
+ *  0b1110..6.56 uA
+ *  0b1111..6.74 uA
+ */
+#define RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM(x)        (((uint32_t)(((uint32_t)(x)) << RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_SHIFT)) & RSIM_ANA_TRIM_BG_IBIAS_5U_TRIM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group RSIM_Register_Masks */
+
+
+/* RSIM - Peripheral instance base addresses */
+/** Peripheral RSIM base address */
+#define RSIM_BASE                                (0x4102F000u)
+/** Peripheral RSIM base pointer */
+#define RSIM                                     ((RSIM_Type *)RSIM_BASE)
+/** Array initializer of RSIM peripheral base addresses */
+#define RSIM_BASE_ADDRS                          { RSIM_BASE }
+/** Array initializer of RSIM peripheral base pointers */
+#define RSIM_BASE_PTRS                           { RSIM }
+
+/*!
+ * @}
+ */ /* end of group RSIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- RTC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RTC_Peripheral_Access_Layer RTC Peripheral Access Layer
+ * @{
+ */
+
+/** RTC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t TSR;                               /**< RTC Time Seconds Register, offset: 0x0 */
+  __IO uint32_t TPR;                               /**< RTC Time Prescaler Register, offset: 0x4 */
+  __IO uint32_t TAR;                               /**< RTC Time Alarm Register, offset: 0x8 */
+  __IO uint32_t TCR;                               /**< RTC Time Compensation Register, offset: 0xC */
+  __IO uint32_t CR;                                /**< RTC Control Register, offset: 0x10 */
+  __IO uint32_t SR;                                /**< RTC Status Register, offset: 0x14 */
+  __IO uint32_t LR;                                /**< RTC Lock Register, offset: 0x18 */
+  __IO uint32_t IER;                               /**< RTC Interrupt Enable Register, offset: 0x1C */
+  __I  uint32_t TTSR;                              /**< RTC Tamper Time Seconds Register, offset: 0x20 */
+  __IO uint32_t MER;                               /**< RTC Monotonic Enable Register, offset: 0x24 */
+  __IO uint32_t MCLR;                              /**< RTC Monotonic Counter Low Register, offset: 0x28 */
+  __IO uint32_t MCHR;                              /**< RTC Monotonic Counter High Register, offset: 0x2C */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t TDR;                               /**< RTC Tamper Detect Register, offset: 0x34 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t TIR;                               /**< RTC Tamper Interrupt Register, offset: 0x3C */
+  __IO uint32_t PCR[4];                            /**< RTC Pin Configuration Register, array offset: 0x40, array step: 0x4 */
+       uint8_t RESERVED_2[1968];
+  __IO uint32_t WAR;                               /**< RTC Write Access Register, offset: 0x800 */
+  __IO uint32_t RAR;                               /**< RTC Read Access Register, offset: 0x804 */
+} RTC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- RTC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup RTC_Register_Masks RTC Register Masks
+ * @{
+ */
+
+/*! @name TSR - RTC Time Seconds Register */
+/*! @{ */
+#define RTC_TSR_TSR_MASK                         (0xFFFFFFFFU)
+#define RTC_TSR_TSR_SHIFT                        (0U)
+#define RTC_TSR_TSR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TSR_TSR_SHIFT)) & RTC_TSR_TSR_MASK)
+/*! @} */
+
+/*! @name TPR - RTC Time Prescaler Register */
+/*! @{ */
+#define RTC_TPR_TPR_MASK                         (0xFFFFU)
+#define RTC_TPR_TPR_SHIFT                        (0U)
+#define RTC_TPR_TPR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TPR_TPR_SHIFT)) & RTC_TPR_TPR_MASK)
+/*! @} */
+
+/*! @name TAR - RTC Time Alarm Register */
+/*! @{ */
+#define RTC_TAR_TAR_MASK                         (0xFFFFFFFFU)
+#define RTC_TAR_TAR_SHIFT                        (0U)
+#define RTC_TAR_TAR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TAR_TAR_SHIFT)) & RTC_TAR_TAR_MASK)
+/*! @} */
+
+/*! @name TCR - RTC Time Compensation Register */
+/*! @{ */
+#define RTC_TCR_TCR_MASK                         (0xFFU)
+#define RTC_TCR_TCR_SHIFT                        (0U)
+/*! TCR - Time Compensation Register
+ *  0b10000000..Time Prescaler Register overflows every 32896 clock cycles.
+ *  0b10000001..Time Prescaler Register overflows every 32895 clock cycles.
+ *  0b11111111..Time Prescaler Register overflows every 32769 clock cycles.
+ *  0b00000000..Time Prescaler Register overflows every 32768 clock cycles.
+ *  0b00000001..Time Prescaler Register overflows every 32767 clock cycles.
+ *  0b01111110..Time Prescaler Register overflows every 32642 clock cycles.
+ *  0b01111111..Time Prescaler Register overflows every 32641 clock cycles.
+ */
+#define RTC_TCR_TCR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCR_SHIFT)) & RTC_TCR_TCR_MASK)
+#define RTC_TCR_CIR_MASK                         (0xFF00U)
+#define RTC_TCR_CIR_SHIFT                        (8U)
+#define RTC_TCR_CIR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIR_SHIFT)) & RTC_TCR_CIR_MASK)
+#define RTC_TCR_TCV_MASK                         (0xFF0000U)
+#define RTC_TCR_TCV_SHIFT                        (16U)
+#define RTC_TCR_TCV(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_TCV_SHIFT)) & RTC_TCR_TCV_MASK)
+#define RTC_TCR_CIC_MASK                         (0xFF000000U)
+#define RTC_TCR_CIC_SHIFT                        (24U)
+#define RTC_TCR_CIC(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TCR_CIC_SHIFT)) & RTC_TCR_CIC_MASK)
+/*! @} */
+
+/*! @name CR - RTC Control Register */
+/*! @{ */
+#define RTC_CR_SWR_MASK                          (0x1U)
+#define RTC_CR_SWR_SHIFT                         (0U)
+/*! SWR - Software Reset
+ *  0b0..No effect.
+ *  0b1..Resets all RTC registers except for the SWR bit and the RTC_WAR and RTC_RAR registers . The SWR bit is cleared by VBAT POR and by software explicitly clearing it.
+ */
+#define RTC_CR_SWR(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_SWR_SHIFT)) & RTC_CR_SWR_MASK)
+#define RTC_CR_WPE_MASK                          (0x2U)
+#define RTC_CR_WPE_SHIFT                         (1U)
+/*! WPE - Wakeup Pin Enable
+ *  0b0..RTC_WAKEUP pin is disabled.
+ *  0b1..RTC_WAKEUP pin is enabled and asserts if the RTC interrupt asserts or if the wakeup pin is forced on.
+ */
+#define RTC_CR_WPE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPE_SHIFT)) & RTC_CR_WPE_MASK)
+#define RTC_CR_SUP_MASK                          (0x4U)
+#define RTC_CR_SUP_SHIFT                         (2U)
+/*! SUP - Supervisor Access
+ *  0b0..Non-supervisor mode write accesses are not supported and generate a bus error.
+ *  0b1..Non-supervisor mode write accesses are supported.
+ */
+#define RTC_CR_SUP(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_SUP_SHIFT)) & RTC_CR_SUP_MASK)
+#define RTC_CR_UM_MASK                           (0x8U)
+#define RTC_CR_UM_SHIFT                          (3U)
+/*! UM - Update Mode
+ *  0b0..Registers cannot be written when locked.
+ *  0b1..Registers can be written when locked under limited conditions.
+ */
+#define RTC_CR_UM(x)                             (((uint32_t)(((uint32_t)(x)) << RTC_CR_UM_SHIFT)) & RTC_CR_UM_MASK)
+#define RTC_CR_WPS_MASK                          (0x10U)
+#define RTC_CR_WPS_SHIFT                         (4U)
+/*! WPS - Wakeup Pin Select
+ *  0b0..RTC_WAKEUP pin asserts (active low, open drain) if the RTC interrupt asserts or the wakeup pin is turned on.
+ *  0b1..RTC_WAKEUP pin outputs the RTC 32kHz clock, provided the wakeup pin is turned on and the 32kHz clock is output to other peripherals.
+ */
+#define RTC_CR_WPS(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_WPS_SHIFT)) & RTC_CR_WPS_MASK)
+#define RTC_CR_CPS_MASK                          (0x20U)
+#define RTC_CR_CPS_SHIFT                         (5U)
+/*! CPS - Clock Pin Select
+ *  0b0..The prescaler output clock (as configured by TSIC) is output on RTC_CLKOUT.
+ *  0b1..The RTC 32.768 kHz clock is output on RTC_CLKOUT, provided it is output to other peripherals.
+ */
+#define RTC_CR_CPS(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_CPS_SHIFT)) & RTC_CR_CPS_MASK)
+#define RTC_CR_LPOS_MASK                         (0x80U)
+#define RTC_CR_LPOS_SHIFT                        (7U)
+/*! LPOS - LPO Select
+ *  0b0..RTC prescaler increments using 32.768 kHz clock.
+ *  0b1..RTC prescaler increments using 1 kHz LPO, bits [4:0] of the prescaler are ignored.
+ */
+#define RTC_CR_LPOS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_LPOS_SHIFT)) & RTC_CR_LPOS_MASK)
+#define RTC_CR_OSCE_MASK                         (0x100U)
+#define RTC_CR_OSCE_SHIFT                        (8U)
+/*! OSCE - Oscillator Enable
+ *  0b0..32.768 kHz oscillator is disabled.
+ *  0b1..32.768 kHz oscillator is enabled. After setting this bit, wait the oscillator startup time before enabling the time counter to allow the 32.768 kHz clock time to stabilize.
+ */
+#define RTC_CR_OSCE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_OSCE_SHIFT)) & RTC_CR_OSCE_MASK)
+#define RTC_CR_CLKO_MASK                         (0x200U)
+#define RTC_CR_CLKO_SHIFT                        (9U)
+/*! CLKO - Clock Output
+ *  0b0..The 32 kHz clock is output to other peripherals.
+ *  0b1..The 32 kHz clock is not output to other peripherals.
+ */
+#define RTC_CR_CLKO(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_CLKO_SHIFT)) & RTC_CR_CLKO_MASK)
+#define RTC_CR_SC16P_MASK                        (0x400U)
+#define RTC_CR_SC16P_SHIFT                       (10U)
+/*! SC16P - Oscillator 16pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC16P(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC16P_SHIFT)) & RTC_CR_SC16P_MASK)
+#define RTC_CR_SC8P_MASK                         (0x800U)
+#define RTC_CR_SC8P_SHIFT                        (11U)
+/*! SC8P - Oscillator 8pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC8P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC8P_SHIFT)) & RTC_CR_SC8P_MASK)
+#define RTC_CR_SC4P_MASK                         (0x1000U)
+#define RTC_CR_SC4P_SHIFT                        (12U)
+/*! SC4P - Oscillator 4pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC4P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC4P_SHIFT)) & RTC_CR_SC4P_MASK)
+#define RTC_CR_SC2P_MASK                         (0x2000U)
+#define RTC_CR_SC2P_SHIFT                        (13U)
+/*! SC2P - Oscillator 2pF Load Configure
+ *  0b0..Disable the load.
+ *  0b1..Enable the additional load.
+ */
+#define RTC_CR_SC2P(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_SC2P_SHIFT)) & RTC_CR_SC2P_MASK)
+#define RTC_CR_OSCM_MASK                         (0x8000U)
+#define RTC_CR_OSCM_SHIFT                        (15U)
+/*! OSCM - Oscillator Mode Select
+ *  0b0..Configures the 32.768kHz crystal oscillator for robust operation supporting a wide range of crystals.
+ *  0b1..Configures the 32.768kHz crystal oscillator for low power operation supporting a more limited range of crystals.
+ */
+#define RTC_CR_OSCM(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_OSCM_SHIFT)) & RTC_CR_OSCM_MASK)
+#define RTC_CR_PORS_MASK                         (0x30000U)
+#define RTC_CR_PORS_SHIFT                        (16U)
+/*! PORS - POR Select
+ *  0b00..POR brownout enabled for 120us every 128ms.
+ *  0b01..POR brownout enabled for 120us every 64ms.
+ *  0b10..POR brownout enabled for 120us every 32ms.
+ *  0b11..POR brownout always enabled.
+ */
+#define RTC_CR_PORS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_CR_PORS_SHIFT)) & RTC_CR_PORS_MASK)
+#define RTC_CR_CPE_MASK                          (0x3000000U)
+#define RTC_CR_CPE_SHIFT                         (24U)
+/*! CPE - Clock Pin Enable
+ *  0b00..The RTC_CLKOUT function is disabled.
+ *  0b01..Enable RTC_CLKOUT pin on pin 1.
+ *  0b10..Enable RTC_CLKOUT pin on pin 2.
+ *  0b11..Enable RTC_CLKOUT pin on pin 3.
+ */
+#define RTC_CR_CPE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_CR_CPE_SHIFT)) & RTC_CR_CPE_MASK)
+/*! @} */
+
+/*! @name SR - RTC Status Register */
+/*! @{ */
+#define RTC_SR_TIF_MASK                          (0x1U)
+#define RTC_SR_TIF_SHIFT                         (0U)
+/*! TIF - Time Invalid Flag
+ *  0b0..Time is valid.
+ *  0b1..Time is invalid and time counter is read as zero.
+ */
+#define RTC_SR_TIF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TIF_SHIFT)) & RTC_SR_TIF_MASK)
+#define RTC_SR_TOF_MASK                          (0x2U)
+#define RTC_SR_TOF_SHIFT                         (1U)
+/*! TOF - Time Overflow Flag
+ *  0b0..Time overflow has not occurred.
+ *  0b1..Time overflow has occurred and time counter is read as zero.
+ */
+#define RTC_SR_TOF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TOF_SHIFT)) & RTC_SR_TOF_MASK)
+#define RTC_SR_TAF_MASK                          (0x4U)
+#define RTC_SR_TAF_SHIFT                         (2U)
+/*! TAF - Time Alarm Flag
+ *  0b0..Time alarm has not occurred.
+ *  0b1..Time alarm has occurred.
+ */
+#define RTC_SR_TAF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TAF_SHIFT)) & RTC_SR_TAF_MASK)
+#define RTC_SR_MOF_MASK                          (0x8U)
+#define RTC_SR_MOF_SHIFT                         (3U)
+/*! MOF - Monotonic Overflow Flag
+ *  0b0..Monotonic counter overflow has not occurred.
+ *  0b1..Monotonic counter overflow has occurred and monotonic counter is read as zero.
+ */
+#define RTC_SR_MOF(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_MOF_SHIFT)) & RTC_SR_MOF_MASK)
+#define RTC_SR_TCE_MASK                          (0x10U)
+#define RTC_SR_TCE_SHIFT                         (4U)
+/*! TCE - Time Counter Enable
+ *  0b0..Time counter is disabled.
+ *  0b1..Time counter is enabled.
+ */
+#define RTC_SR_TCE(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_SR_TCE_SHIFT)) & RTC_SR_TCE_MASK)
+#define RTC_SR_TIDF_MASK                         (0x80U)
+#define RTC_SR_TIDF_SHIFT                        (7U)
+/*! TIDF - Tamper Interrupt Detect Flag
+ *  0b0..Tamper interrupt has not asserted.
+ *  0b1..Tamper interrupt has asserted.
+ */
+#define RTC_SR_TIDF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_SR_TIDF_SHIFT)) & RTC_SR_TIDF_MASK)
+/*! @} */
+
+/*! @name LR - RTC Lock Register */
+/*! @{ */
+#define RTC_LR_TCL_MASK                          (0x8U)
+#define RTC_LR_TCL_SHIFT                         (3U)
+/*! TCL - Time Compensation Lock
+ *  0b0..Time Compensation Register is locked and writes are ignored.
+ *  0b1..Time Compensation Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TCL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TCL_SHIFT)) & RTC_LR_TCL_MASK)
+#define RTC_LR_CRL_MASK                          (0x10U)
+#define RTC_LR_CRL_SHIFT                         (4U)
+/*! CRL - Control Register Lock
+ *  0b0..Control Register is locked and writes are ignored.
+ *  0b1..Control Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_CRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_CRL_SHIFT)) & RTC_LR_CRL_MASK)
+#define RTC_LR_SRL_MASK                          (0x20U)
+#define RTC_LR_SRL_SHIFT                         (5U)
+/*! SRL - Status Register Lock
+ *  0b0..Status Register is locked and writes are ignored.
+ *  0b1..Status Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_SRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_SRL_SHIFT)) & RTC_LR_SRL_MASK)
+#define RTC_LR_LRL_MASK                          (0x40U)
+#define RTC_LR_LRL_SHIFT                         (6U)
+/*! LRL - Lock Register Lock
+ *  0b0..Lock Register is locked and writes are ignored.
+ *  0b1..Lock Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_LRL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_LRL_SHIFT)) & RTC_LR_LRL_MASK)
+#define RTC_LR_TTSL_MASK                         (0x100U)
+#define RTC_LR_TTSL_SHIFT                        (8U)
+/*! TTSL - Tamper Time Seconds Lock
+ *  0b0..Tamper Time Seconds Register is locked and writes are ignored.
+ *  0b1..Tamper Time Seconds Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TTSL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_TTSL_SHIFT)) & RTC_LR_TTSL_MASK)
+#define RTC_LR_MEL_MASK                          (0x200U)
+#define RTC_LR_MEL_SHIFT                         (9U)
+/*! MEL - Monotonic Enable Lock
+ *  0b0..Monotonic Enable Register is locked and writes are ignored.
+ *  0b1..Monotonic Enable Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MEL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_MEL_SHIFT)) & RTC_LR_MEL_MASK)
+#define RTC_LR_MCLL_MASK                         (0x400U)
+#define RTC_LR_MCLL_SHIFT                        (10U)
+/*! MCLL - Monotonic Counter Low Lock
+ *  0b0..Monotonic Counter Low Register is locked and writes are ignored.
+ *  0b1..Monotonic Counter Low Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MCLL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_MCLL_SHIFT)) & RTC_LR_MCLL_MASK)
+#define RTC_LR_MCHL_MASK                         (0x800U)
+#define RTC_LR_MCHL_SHIFT                        (11U)
+/*! MCHL - Monotonic Counter High Lock
+ *  0b0..Monotonic Counter High Register is locked and writes are ignored.
+ *  0b1..Monotonic Counter High Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_MCHL(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_LR_MCHL_SHIFT)) & RTC_LR_MCHL_MASK)
+#define RTC_LR_TDL_MASK                          (0x2000U)
+#define RTC_LR_TDL_SHIFT                         (13U)
+/*! TDL - Tamper Detect Lock
+ *  0b0..Tamper Detect Register is locked and writes are ignored.
+ *  0b1..Tamper Detect Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TDL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TDL_SHIFT)) & RTC_LR_TDL_MASK)
+#define RTC_LR_TIL_MASK                          (0x8000U)
+#define RTC_LR_TIL_SHIFT                         (15U)
+/*! TIL - Tamper Interrupt Lock
+ *  0b0..Tamper Interrupt Register is locked and writes are ignored.
+ *  0b1..Tamper Interrupt Register is not locked and writes complete as normal.
+ */
+#define RTC_LR_TIL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_TIL_SHIFT)) & RTC_LR_TIL_MASK)
+#define RTC_LR_PCL_MASK                          (0xF0000U)
+#define RTC_LR_PCL_SHIFT                         (16U)
+#define RTC_LR_PCL(x)                            (((uint32_t)(((uint32_t)(x)) << RTC_LR_PCL_SHIFT)) & RTC_LR_PCL_MASK)
+/*! @} */
+
+/*! @name IER - RTC Interrupt Enable Register */
+/*! @{ */
+#define RTC_IER_TIIE_MASK                        (0x1U)
+#define RTC_IER_TIIE_SHIFT                       (0U)
+/*! TIIE - Time Invalid Interrupt Enable
+ *  0b0..Time invalid flag does not generate an interrupt.
+ *  0b1..Time invalid flag does generate an interrupt.
+ */
+#define RTC_IER_TIIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TIIE_SHIFT)) & RTC_IER_TIIE_MASK)
+#define RTC_IER_TOIE_MASK                        (0x2U)
+#define RTC_IER_TOIE_SHIFT                       (1U)
+/*! TOIE - Time Overflow Interrupt Enable
+ *  0b0..Time overflow flag does not generate an interrupt.
+ *  0b1..Time overflow flag does generate an interrupt.
+ */
+#define RTC_IER_TOIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TOIE_SHIFT)) & RTC_IER_TOIE_MASK)
+#define RTC_IER_TAIE_MASK                        (0x4U)
+#define RTC_IER_TAIE_SHIFT                       (2U)
+/*! TAIE - Time Alarm Interrupt Enable
+ *  0b0..Time alarm flag does not generate an interrupt.
+ *  0b1..Time alarm flag does generate an interrupt.
+ */
+#define RTC_IER_TAIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TAIE_SHIFT)) & RTC_IER_TAIE_MASK)
+#define RTC_IER_MOIE_MASK                        (0x8U)
+#define RTC_IER_MOIE_SHIFT                       (3U)
+/*! MOIE - Monotonic Overflow Interrupt Enable
+ *  0b0..Monotonic overflow flag does not generate an interrupt.
+ *  0b1..Monotonic overflow flag does generate an interrupt.
+ */
+#define RTC_IER_MOIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_MOIE_SHIFT)) & RTC_IER_MOIE_MASK)
+#define RTC_IER_TSIE_MASK                        (0x10U)
+#define RTC_IER_TSIE_SHIFT                       (4U)
+/*! TSIE - Time Seconds Interrupt Enable
+ *  0b0..Seconds interrupt is disabled.
+ *  0b1..Seconds interrupt is enabled.
+ */
+#define RTC_IER_TSIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TSIE_SHIFT)) & RTC_IER_TSIE_MASK)
+#define RTC_IER_WPON_MASK                        (0x80U)
+#define RTC_IER_WPON_SHIFT                       (7U)
+/*! WPON - Wakeup Pin On
+ *  0b0..No effect.
+ *  0b1..If the RTC_WAKEUP pin is enabled, then the pin will assert.
+ */
+#define RTC_IER_WPON(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_WPON_SHIFT)) & RTC_IER_WPON_MASK)
+#define RTC_IER_TSIC_MASK                        (0x70000U)
+#define RTC_IER_TSIC_SHIFT                       (16U)
+/*! TSIC - Timer Seconds Interrupt Configuration
+ *  0b000..1 Hz.
+ *  0b001..2 Hz.
+ *  0b010..4 Hz.
+ *  0b011..8 Hz.
+ *  0b100..16 Hz.
+ *  0b101..32 Hz.
+ *  0b110..64 Hz.
+ *  0b111..128 Hz.
+ */
+#define RTC_IER_TSIC(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_IER_TSIC_SHIFT)) & RTC_IER_TSIC_MASK)
+/*! @} */
+
+/*! @name TTSR - RTC Tamper Time Seconds Register */
+/*! @{ */
+#define RTC_TTSR_TTS_MASK                        (0xFFFFFFFFU)
+#define RTC_TTSR_TTS_SHIFT                       (0U)
+#define RTC_TTSR_TTS(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TTSR_TTS_SHIFT)) & RTC_TTSR_TTS_MASK)
+/*! @} */
+
+/*! @name MER - RTC Monotonic Enable Register */
+/*! @{ */
+#define RTC_MER_MCE_MASK                         (0x10U)
+#define RTC_MER_MCE_SHIFT                        (4U)
+/*! MCE - Monotonic Counter Enable
+ *  0b0..Writes to the monotonic counter load the counter with the value written.
+ *  0b1..Writes to the monotonic counter increment the counter.
+ */
+#define RTC_MER_MCE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_MER_MCE_SHIFT)) & RTC_MER_MCE_MASK)
+/*! @} */
+
+/*! @name MCLR - RTC Monotonic Counter Low Register */
+/*! @{ */
+#define RTC_MCLR_MCL_MASK                        (0xFFFFFFFFU)
+#define RTC_MCLR_MCL_SHIFT                       (0U)
+#define RTC_MCLR_MCL(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_MCLR_MCL_SHIFT)) & RTC_MCLR_MCL_MASK)
+/*! @} */
+
+/*! @name MCHR - RTC Monotonic Counter High Register */
+/*! @{ */
+#define RTC_MCHR_MCH_MASK                        (0xFFFFFFFFU)
+#define RTC_MCHR_MCH_SHIFT                       (0U)
+#define RTC_MCHR_MCH(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_MCHR_MCH_SHIFT)) & RTC_MCHR_MCH_MASK)
+/*! @} */
+
+/*! @name TDR - RTC Tamper Detect Register */
+/*! @{ */
+#define RTC_TDR_LCTF_MASK                        (0x10U)
+#define RTC_TDR_LCTF_SHIFT                       (4U)
+/*! LCTF - Loss of Clock Tamper Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Loss of Clock tamper detected.
+ */
+#define RTC_TDR_LCTF(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TDR_LCTF_SHIFT)) & RTC_TDR_LCTF_MASK)
+#define RTC_TDR_STF_MASK                         (0x20U)
+#define RTC_TDR_STF_SHIFT                        (5U)
+/*! STF - Security Tamper Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Security module tamper detected.
+ */
+#define RTC_TDR_STF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_STF_SHIFT)) & RTC_TDR_STF_MASK)
+#define RTC_TDR_FSF_MASK                         (0x40U)
+#define RTC_TDR_FSF_SHIFT                        (6U)
+/*! FSF - Flash Security Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Flash security tamper detected.
+ */
+#define RTC_TDR_FSF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_FSF_SHIFT)) & RTC_TDR_FSF_MASK)
+#define RTC_TDR_TMF_MASK                         (0x80U)
+#define RTC_TDR_TMF_SHIFT                        (7U)
+/*! TMF - Test Mode Flag
+ *  0b0..Tamper not detected.
+ *  0b1..Test mode tamper detected.
+ */
+#define RTC_TDR_TMF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_TMF_SHIFT)) & RTC_TDR_TMF_MASK)
+#define RTC_TDR_TPF_MASK                         (0xF0000U)
+#define RTC_TDR_TPF_SHIFT                        (16U)
+#define RTC_TDR_TPF(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TDR_TPF_SHIFT)) & RTC_TDR_TPF_MASK)
+/*! @} */
+
+/*! @name TIR - RTC Tamper Interrupt Register */
+/*! @{ */
+#define RTC_TIR_LCIE_MASK                        (0x10U)
+#define RTC_TIR_LCIE_SHIFT                       (4U)
+/*! LCIE - Loss of Clock Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the loss of clock flag is set.
+ */
+#define RTC_TIR_LCIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_LCIE_SHIFT)) & RTC_TIR_LCIE_MASK)
+#define RTC_TIR_SIE_MASK                         (0x20U)
+#define RTC_TIR_SIE_SHIFT                        (5U)
+/*! SIE - Security Module Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the security module flag is set.
+ */
+#define RTC_TIR_SIE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_TIR_SIE_SHIFT)) & RTC_TIR_SIE_MASK)
+#define RTC_TIR_FSIE_MASK                        (0x40U)
+#define RTC_TIR_FSIE_SHIFT                       (6U)
+/*! FSIE - Flash Security Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the flash security flag is set.
+ */
+#define RTC_TIR_FSIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_FSIE_SHIFT)) & RTC_TIR_FSIE_MASK)
+#define RTC_TIR_TMIE_MASK                        (0x80U)
+#define RTC_TIR_TMIE_SHIFT                       (7U)
+/*! TMIE - Test Mode Interrupt Enable
+ *  0b0..Interupt disabled.
+ *  0b1..An interrupt is generated when the test mode flag is set.
+ */
+#define RTC_TIR_TMIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_TMIE_SHIFT)) & RTC_TIR_TMIE_MASK)
+#define RTC_TIR_TPIE_MASK                        (0xF0000U)
+#define RTC_TIR_TPIE_SHIFT                       (16U)
+#define RTC_TIR_TPIE(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_TIR_TPIE_SHIFT)) & RTC_TIR_TPIE_MASK)
+/*! @} */
+
+/*! @name PCR - RTC Pin Configuration Register */
+/*! @{ */
+#define RTC_PCR_TPE_MASK                         (0x1000000U)
+#define RTC_PCR_TPE_SHIFT                        (24U)
+/*! TPE - Tamper Pull Enable
+ *  0b0..Pull resistor is disabled on tamper pin.
+ *  0b1..Pull resistor is enabled on tamper pin.
+ */
+#define RTC_PCR_TPE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPE_SHIFT)) & RTC_PCR_TPE_MASK)
+#define RTC_PCR_TPS_MASK                         (0x2000000U)
+#define RTC_PCR_TPS_SHIFT                        (25U)
+/*! TPS - Tamper Pull Select
+ *  0b0..Tamper pin pull resistor direction will assert the tamper pin.
+ *  0b1..Tamper pin pull resistor direction will negate the tamper pin.
+ */
+#define RTC_PCR_TPS(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPS_SHIFT)) & RTC_PCR_TPS_MASK)
+#define RTC_PCR_TFE_MASK                         (0x4000000U)
+#define RTC_PCR_TFE_SHIFT                        (26U)
+/*! TFE - Tamper Filter Enable
+ *  0b0..Input filter is disabled on the tamper pin.
+ *  0b1..Input filter is enabled on the tamper pin.
+ */
+#define RTC_PCR_TFE(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TFE_SHIFT)) & RTC_PCR_TFE_MASK)
+#define RTC_PCR_TPP_MASK                         (0x8000000U)
+#define RTC_PCR_TPP_SHIFT                        (27U)
+/*! TPP - Tamper Pin Polarity
+ *  0b0..Tamper pin is active high.
+ *  0b1..Tamper pin is active low.
+ */
+#define RTC_PCR_TPP(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPP_SHIFT)) & RTC_PCR_TPP_MASK)
+#define RTC_PCR_TPID_MASK                        (0x80000000U)
+#define RTC_PCR_TPID_SHIFT                       (31U)
+/*! TPID - Tamper Pin Input Data
+ *  0b0..Tamper pin input data is logic zero.
+ *  0b1..Tamper pin input data is logic one.
+ */
+#define RTC_PCR_TPID(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_PCR_TPID_SHIFT)) & RTC_PCR_TPID_MASK)
+/*! @} */
+
+/* The count of RTC_PCR */
+#define RTC_PCR_COUNT                            (4U)
+
+/*! @name WAR - RTC Write Access Register */
+/*! @{ */
+#define RTC_WAR_TSRW_MASK                        (0x1U)
+#define RTC_WAR_TSRW_SHIFT                       (0U)
+/*! TSRW - Time Seconds Register Write
+ *  0b0..Writes to the Time Seconds Register are ignored.
+ *  0b1..Writes to the Time Seconds Register complete as normal.
+ */
+#define RTC_WAR_TSRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TSRW_SHIFT)) & RTC_WAR_TSRW_MASK)
+#define RTC_WAR_TPRW_MASK                        (0x2U)
+#define RTC_WAR_TPRW_SHIFT                       (1U)
+/*! TPRW - Time Prescaler Register Write
+ *  0b0..Writes to the Time Prescaler Register are ignored.
+ *  0b1..Writes to the Time Prescaler Register complete as normal.
+ */
+#define RTC_WAR_TPRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TPRW_SHIFT)) & RTC_WAR_TPRW_MASK)
+#define RTC_WAR_TARW_MASK                        (0x4U)
+#define RTC_WAR_TARW_SHIFT                       (2U)
+/*! TARW - Time Alarm Register Write
+ *  0b0..Writes to the Time Alarm Register are ignored.
+ *  0b1..Writes to the Time Alarm Register complete as normal.
+ */
+#define RTC_WAR_TARW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TARW_SHIFT)) & RTC_WAR_TARW_MASK)
+#define RTC_WAR_TCRW_MASK                        (0x8U)
+#define RTC_WAR_TCRW_SHIFT                       (3U)
+/*! TCRW - Time Compensation Register Write
+ *  0b0..Writes to the Time Compensation Register are ignored.
+ *  0b1..Writes to the Time Compensation Register complete as normal.
+ */
+#define RTC_WAR_TCRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TCRW_SHIFT)) & RTC_WAR_TCRW_MASK)
+#define RTC_WAR_CRW_MASK                         (0x10U)
+#define RTC_WAR_CRW_SHIFT                        (4U)
+/*! CRW - Control Register Write
+ *  0b0..Writes to the Control Register are ignored.
+ *  0b1..Writes to the Control Register complete as normal.
+ */
+#define RTC_WAR_CRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_CRW_SHIFT)) & RTC_WAR_CRW_MASK)
+#define RTC_WAR_SRW_MASK                         (0x20U)
+#define RTC_WAR_SRW_SHIFT                        (5U)
+/*! SRW - Status Register Write
+ *  0b0..Writes to the Status Register are ignored.
+ *  0b1..Writes to the Status Register complete as normal.
+ */
+#define RTC_WAR_SRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_SRW_SHIFT)) & RTC_WAR_SRW_MASK)
+#define RTC_WAR_LRW_MASK                         (0x40U)
+#define RTC_WAR_LRW_SHIFT                        (6U)
+/*! LRW - Lock Register Write
+ *  0b0..Writes to the Lock Register are ignored.
+ *  0b1..Writes to the Lock Register complete as normal.
+ */
+#define RTC_WAR_LRW(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_WAR_LRW_SHIFT)) & RTC_WAR_LRW_MASK)
+#define RTC_WAR_IERW_MASK                        (0x80U)
+#define RTC_WAR_IERW_SHIFT                       (7U)
+/*! IERW - Interrupt Enable Register Write
+ *  0b0..Writes to the Interupt Enable Register are ignored.
+ *  0b1..Writes to the Interrupt Enable Register complete as normal.
+ */
+#define RTC_WAR_IERW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_IERW_SHIFT)) & RTC_WAR_IERW_MASK)
+#define RTC_WAR_TTSW_MASK                        (0x100U)
+#define RTC_WAR_TTSW_SHIFT                       (8U)
+/*! TTSW - Tamper Time Seconds Write
+ *  0b0..Writes to the Tamper Time Seconds Register are ignored.
+ *  0b1..Writes to the Tamper Time Seconds Register complete as normal.
+ */
+#define RTC_WAR_TTSW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TTSW_SHIFT)) & RTC_WAR_TTSW_MASK)
+#define RTC_WAR_MERW_MASK                        (0x200U)
+#define RTC_WAR_MERW_SHIFT                       (9U)
+/*! MERW - Monotonic Enable Register Write
+ *  0b0..Writes to the Monotonic Enable Register are ignored.
+ *  0b1..Writes to the Monotonic Enable Register complete as normal.
+ */
+#define RTC_WAR_MERW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MERW_SHIFT)) & RTC_WAR_MERW_MASK)
+#define RTC_WAR_MCLW_MASK                        (0x400U)
+#define RTC_WAR_MCLW_SHIFT                       (10U)
+/*! MCLW - Monotonic Counter Low Write
+ *  0b0..Writes to the Monotonic Counter Low Register are ignored.
+ *  0b1..Writes to the Monotonic Counter Low Register complete as normal.
+ */
+#define RTC_WAR_MCLW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MCLW_SHIFT)) & RTC_WAR_MCLW_MASK)
+#define RTC_WAR_MCHW_MASK                        (0x800U)
+#define RTC_WAR_MCHW_SHIFT                       (11U)
+/*! MCHW - Monotonic Counter High Write
+ *  0b0..Writes to the Monotonic Counter High Register are ignored.
+ *  0b1..Writes to the Monotonic Counter High Register complete as normal.
+ */
+#define RTC_WAR_MCHW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_MCHW_SHIFT)) & RTC_WAR_MCHW_MASK)
+#define RTC_WAR_TDRW_MASK                        (0x2000U)
+#define RTC_WAR_TDRW_SHIFT                       (13U)
+/*! TDRW - Tamper Detect Register Write
+ *  0b0..Writes to the Tamper Detect Register are ignored.
+ *  0b1..Writes to the Tamper Detect Register complete as normal.
+ */
+#define RTC_WAR_TDRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TDRW_SHIFT)) & RTC_WAR_TDRW_MASK)
+#define RTC_WAR_TIRW_MASK                        (0x8000U)
+#define RTC_WAR_TIRW_SHIFT                       (15U)
+/*! TIRW - Tamper Interrupt Register Write
+ *  0b0..Writes to the Tamper Interrupt Register are ignored.
+ *  0b1..Writes to the Tamper Interrupt Register complete as normal.
+ */
+#define RTC_WAR_TIRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_TIRW_SHIFT)) & RTC_WAR_TIRW_MASK)
+#define RTC_WAR_PCRW_MASK                        (0xF0000U)
+#define RTC_WAR_PCRW_SHIFT                       (16U)
+#define RTC_WAR_PCRW(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_WAR_PCRW_SHIFT)) & RTC_WAR_PCRW_MASK)
+/*! @} */
+
+/*! @name RAR - RTC Read Access Register */
+/*! @{ */
+#define RTC_RAR_TSRR_MASK                        (0x1U)
+#define RTC_RAR_TSRR_SHIFT                       (0U)
+/*! TSRR - Time Seconds Register Read
+ *  0b0..Reads to the Time Seconds Register are ignored.
+ *  0b1..Reads to the Time Seconds Register complete as normal.
+ */
+#define RTC_RAR_TSRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TSRR_SHIFT)) & RTC_RAR_TSRR_MASK)
+#define RTC_RAR_TPRR_MASK                        (0x2U)
+#define RTC_RAR_TPRR_SHIFT                       (1U)
+/*! TPRR - Time Prescaler Register Read
+ *  0b0..Reads to the Time Pprescaler Register are ignored.
+ *  0b1..Reads to the Time Prescaler Register complete as normal.
+ */
+#define RTC_RAR_TPRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TPRR_SHIFT)) & RTC_RAR_TPRR_MASK)
+#define RTC_RAR_TARR_MASK                        (0x4U)
+#define RTC_RAR_TARR_SHIFT                       (2U)
+/*! TARR - Time Alarm Register Read
+ *  0b0..Reads to the Time Alarm Register are ignored.
+ *  0b1..Reads to the Time Alarm Register complete as normal.
+ */
+#define RTC_RAR_TARR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TARR_SHIFT)) & RTC_RAR_TARR_MASK)
+#define RTC_RAR_TCRR_MASK                        (0x8U)
+#define RTC_RAR_TCRR_SHIFT                       (3U)
+/*! TCRR - Time Compensation Register Read
+ *  0b0..Reads to the Time Compensation Register are ignored.
+ *  0b1..Reads to the Time Compensation Register complete as normal.
+ */
+#define RTC_RAR_TCRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TCRR_SHIFT)) & RTC_RAR_TCRR_MASK)
+#define RTC_RAR_CRR_MASK                         (0x10U)
+#define RTC_RAR_CRR_SHIFT                        (4U)
+/*! CRR - Control Register Read
+ *  0b0..Reads to the Control Register are ignored.
+ *  0b1..Reads to the Control Register complete as normal.
+ */
+#define RTC_RAR_CRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_CRR_SHIFT)) & RTC_RAR_CRR_MASK)
+#define RTC_RAR_SRR_MASK                         (0x20U)
+#define RTC_RAR_SRR_SHIFT                        (5U)
+/*! SRR - Status Register Read
+ *  0b0..Reads to the Status Register are ignored.
+ *  0b1..Reads to the Status Register complete as normal.
+ */
+#define RTC_RAR_SRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_SRR_SHIFT)) & RTC_RAR_SRR_MASK)
+#define RTC_RAR_LRR_MASK                         (0x40U)
+#define RTC_RAR_LRR_SHIFT                        (6U)
+/*! LRR - Lock Register Read
+ *  0b0..Reads to the Lock Register are ignored.
+ *  0b1..Reads to the Lock Register complete as normal.
+ */
+#define RTC_RAR_LRR(x)                           (((uint32_t)(((uint32_t)(x)) << RTC_RAR_LRR_SHIFT)) & RTC_RAR_LRR_MASK)
+#define RTC_RAR_IERR_MASK                        (0x80U)
+#define RTC_RAR_IERR_SHIFT                       (7U)
+/*! IERR - Interrupt Enable Register Read
+ *  0b0..Reads to the Interrupt Enable Register are ignored.
+ *  0b1..Reads to the Interrupt Enable Register complete as normal.
+ */
+#define RTC_RAR_IERR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_IERR_SHIFT)) & RTC_RAR_IERR_MASK)
+#define RTC_RAR_TTSR_MASK                        (0x100U)
+#define RTC_RAR_TTSR_SHIFT                       (8U)
+/*! TTSR - Tamper Time Seconds Read
+ *  0b0..Reads to the Tamper Time Seconds Register are ignored.
+ *  0b1..Reads to the Tamper Time Seconds Register complete as normal.
+ */
+#define RTC_RAR_TTSR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TTSR_SHIFT)) & RTC_RAR_TTSR_MASK)
+#define RTC_RAR_MERR_MASK                        (0x200U)
+#define RTC_RAR_MERR_SHIFT                       (9U)
+/*! MERR - Monotonic Enable Register Read
+ *  0b0..Reads to the Monotonic Enable Register are ignored.
+ *  0b1..Reads to the Monotonic Enable Register complete as normal.
+ */
+#define RTC_RAR_MERR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MERR_SHIFT)) & RTC_RAR_MERR_MASK)
+#define RTC_RAR_MCLR_MASK                        (0x400U)
+#define RTC_RAR_MCLR_SHIFT                       (10U)
+/*! MCLR - Monotonic Counter Low Read
+ *  0b0..Reads to the Monotonic Counter Low Register are ignored.
+ *  0b1..Reads to the Monotonic Counter Low Register complete as normal.
+ */
+#define RTC_RAR_MCLR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MCLR_SHIFT)) & RTC_RAR_MCLR_MASK)
+#define RTC_RAR_MCHR_MASK                        (0x800U)
+#define RTC_RAR_MCHR_SHIFT                       (11U)
+/*! MCHR - Monotonic Counter High Read
+ *  0b0..Reads to the Monotonic Counter High Register are ignored.
+ *  0b1..Reads to the Monotonic Counter High Register complete as normal.
+ */
+#define RTC_RAR_MCHR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_MCHR_SHIFT)) & RTC_RAR_MCHR_MASK)
+#define RTC_RAR_TDRR_MASK                        (0x2000U)
+#define RTC_RAR_TDRR_SHIFT                       (13U)
+/*! TDRR - Tamper Detect Register Read
+ *  0b0..Reads to the Tamper Detect Register are ignored.
+ *  0b1..Reads to the Tamper Detect Register complete as normal.
+ */
+#define RTC_RAR_TDRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TDRR_SHIFT)) & RTC_RAR_TDRR_MASK)
+#define RTC_RAR_TIRR_MASK                        (0x8000U)
+#define RTC_RAR_TIRR_SHIFT                       (15U)
+/*! TIRR - Tamper Interrupt Register Read
+ *  0b0..Reads to the Tamper Interrupt Register are ignored.
+ *  0b1..Reads to the Tamper Interrupt Register complete as normal.
+ */
+#define RTC_RAR_TIRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_TIRR_SHIFT)) & RTC_RAR_TIRR_MASK)
+#define RTC_RAR_PCRR_MASK                        (0xF0000U)
+#define RTC_RAR_PCRR_SHIFT                       (16U)
+#define RTC_RAR_PCRR(x)                          (((uint32_t)(((uint32_t)(x)) << RTC_RAR_PCRR_SHIFT)) & RTC_RAR_PCRR_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group RTC_Register_Masks */
+
+
+/* RTC - Peripheral instance base addresses */
+/** Peripheral RTC base address */
+#define RTC_BASE                                 (0x40031000u)
+/** Peripheral RTC base pointer */
+#define RTC                                      ((RTC_Type *)RTC_BASE)
+/** Array initializer of RTC peripheral base addresses */
+#define RTC_BASE_ADDRS                           { RTC_BASE }
+/** Array initializer of RTC peripheral base pointers */
+#define RTC_BASE_PTRS                            { RTC }
+/** Interrupt vectors for the RTC peripheral type */
+#define RTC_IRQS                                 { RTC_IRQn }
+
+/*!
+ * @}
+ */ /* end of group RTC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SCG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SCG_Peripheral_Access_Layer SCG Peripheral Access Layer
+ * @{
+ */
+
+/** SCG - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+       uint8_t RESERVED_0[8];
+  __I  uint32_t CSR;                               /**< Clock Status Register, offset: 0x10 */
+  __IO uint32_t RCCR;                              /**< Run Clock Control Register, offset: 0x14 */
+  __IO uint32_t VCCR;                              /**< VLPR Clock Control Register, offset: 0x18 */
+  __IO uint32_t HCCR;                              /**< HSRUN Clock Control Register, offset: 0x1C */
+  __IO uint32_t CLKOUTCNFG;                        /**< SCG CLKOUT Configuration Register, offset: 0x20 */
+       uint8_t RESERVED_1[220];
+  __IO uint32_t SOSCCSR;                           /**< System OSC Control Status Register, offset: 0x100 */
+  __IO uint32_t SOSCDIV;                           /**< System OSC Divide Register, offset: 0x104 */
+       uint8_t RESERVED_2[248];
+  __IO uint32_t SIRCCSR;                           /**< Slow IRC Control Status Register, offset: 0x200 */
+  __IO uint32_t SIRCDIV;                           /**< Slow IRC Divide Register, offset: 0x204 */
+  __IO uint32_t SIRCCFG;                           /**< Slow IRC Configuration Register, offset: 0x208 */
+       uint8_t RESERVED_3[244];
+  __IO uint32_t FIRCCSR;                           /**< Fast IRC Control Status Register, offset: 0x300 */
+  __IO uint32_t FIRCDIV;                           /**< Fast IRC Divide Register, offset: 0x304 */
+  __IO uint32_t FIRCCFG;                           /**< Fast IRC Configuration Register, offset: 0x308 */
+  __IO uint32_t FIRCTCFG;                          /**< Fast IRC Trim Configuration Register, offset: 0x30C */
+       uint8_t RESERVED_4[8];
+  __IO uint32_t FIRCSTAT;                          /**< Fast IRC Status Register, offset: 0x318 */
+       uint8_t RESERVED_5[228];
+  __IO uint32_t ROSCCSR;                           /**< RTC OSC Control Status Register, offset: 0x400 */
+       uint8_t RESERVED_6[252];
+  __IO uint32_t LPFLLCSR;                          /**< Low Power FLL Control Status Register, offset: 0x500 */
+  __IO uint32_t LPFLLDIV;                          /**< Low Power FLL Divide Register, offset: 0x504 */
+  __IO uint32_t LPFLLCFG;                          /**< Low Power FLL Configuration Register, offset: 0x508 */
+  __IO uint32_t LPFLLTCFG;                         /**< Low Power FLL Trim Configuration Register, offset: 0x50C */
+       uint8_t RESERVED_7[4];
+  __IO uint32_t LPFLLSTAT;                         /**< Low Power FLL Status Register, offset: 0x514 */
+} SCG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SCG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SCG_Register_Masks SCG Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SCG_VERID_VERSION_MASK                   (0xFFFFFFFFU)
+#define SCG_VERID_VERSION_SHIFT                  (0U)
+#define SCG_VERID_VERSION(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_VERID_VERSION_SHIFT)) & SCG_VERID_VERSION_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define SCG_PARAM_CLKPRES_MASK                   (0xFFU)
+#define SCG_PARAM_CLKPRES_SHIFT                  (0U)
+/*! CLKPRES - Clock Present
+ *  0b00000000-0b00000001..Reserved.
+ *  0bxxxxxx1x..System OSC (SOSC) is present.
+ *  0bxxxxx1xx..Slow IRC (SIRC) is present.
+ *  0bxxxx1xxx..Fast IRC (FIRC) is present.
+ *  0bxxx1xxxx..RTC OSC (ROSC) is present.
+ *  0bxx1xxxxx..Low Power FLL (LPFLL) is present.
+ */
+#define SCG_PARAM_CLKPRES(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_PARAM_CLKPRES_SHIFT)) & SCG_PARAM_CLKPRES_MASK)
+#define SCG_PARAM_DIVPRES_MASK                   (0xF8000000U)
+#define SCG_PARAM_DIVPRES_SHIFT                  (27U)
+/*! DIVPRES - Divider Present
+ *  0bxxxx1..System DIVSLOW is present.
+ *  0bxxx1x..System DIVBUS is present.
+ *  0bxx1xx..System DIVEXT is present.
+ *  0b1xxxx..System DIVCORE is present.
+ */
+#define SCG_PARAM_DIVPRES(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_PARAM_DIVPRES_SHIFT)) & SCG_PARAM_DIVPRES_MASK)
+/*! @} */
+
+/*! @name CSR - Clock Status Register */
+/*! @{ */
+#define SCG_CSR_DIVSLOW_MASK                     (0xFU)
+#define SCG_CSR_DIVSLOW_SHIFT                    (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVSLOW(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVSLOW_SHIFT)) & SCG_CSR_DIVSLOW_MASK)
+#define SCG_CSR_DIVBUS_MASK                      (0xF0U)
+#define SCG_CSR_DIVBUS_SHIFT                     (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVBUS(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVBUS_SHIFT)) & SCG_CSR_DIVBUS_MASK)
+#define SCG_CSR_DIVEXT_MASK                      (0xF00U)
+#define SCG_CSR_DIVEXT_SHIFT                     (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVEXT(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVEXT_SHIFT)) & SCG_CSR_DIVEXT_MASK)
+#define SCG_CSR_DIVCORE_MASK                     (0xF0000U)
+#define SCG_CSR_DIVCORE_SHIFT                    (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_CSR_DIVCORE(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_CSR_DIVCORE_SHIFT)) & SCG_CSR_DIVCORE_MASK)
+#define SCG_CSR_SCS_MASK                         (0xF000000U)
+#define SCG_CSR_SCS_SHIFT                        (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_CSR_SCS(x)                           (((uint32_t)(((uint32_t)(x)) << SCG_CSR_SCS_SHIFT)) & SCG_CSR_SCS_MASK)
+/*! @} */
+
+/*! @name RCCR - Run Clock Control Register */
+/*! @{ */
+#define SCG_RCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_RCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVSLOW_SHIFT)) & SCG_RCCR_DIVSLOW_MASK)
+#define SCG_RCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_RCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVBUS_SHIFT)) & SCG_RCCR_DIVBUS_MASK)
+#define SCG_RCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_RCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVEXT_SHIFT)) & SCG_RCCR_DIVEXT_MASK)
+#define SCG_RCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_RCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_RCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_DIVCORE_SHIFT)) & SCG_RCCR_DIVCORE_MASK)
+#define SCG_RCCR_SCS_MASK                        (0x7000000U)
+#define SCG_RCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b000..Reserved
+ *  0b001..System OSC (SOSC_CLK)
+ *  0b010..Slow IRC (SIRC_CLK)
+ *  0b011..Fast IRC (FIRC_CLK)
+ *  0b100..RTC OSC (ROSC_CLK)
+ *  0b101..Low Power FLL (LPFLL_CLK)
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define SCG_RCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_RCCR_SCS_SHIFT)) & SCG_RCCR_SCS_MASK)
+/*! @} */
+
+/*! @name VCCR - VLPR Clock Control Register */
+/*! @{ */
+#define SCG_VCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_VCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVSLOW_SHIFT)) & SCG_VCCR_DIVSLOW_MASK)
+#define SCG_VCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_VCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVBUS_SHIFT)) & SCG_VCCR_DIVBUS_MASK)
+#define SCG_VCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_VCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVEXT_SHIFT)) & SCG_VCCR_DIVEXT_MASK)
+#define SCG_VCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_VCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_VCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_DIVCORE_SHIFT)) & SCG_VCCR_DIVCORE_MASK)
+#define SCG_VCCR_SCS_MASK                        (0xF000000U)
+#define SCG_VCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Reserved
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Reserved
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_VCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_VCCR_SCS_SHIFT)) & SCG_VCCR_SCS_MASK)
+/*! @} */
+
+/*! @name HCCR - HSRUN Clock Control Register */
+/*! @{ */
+#define SCG_HCCR_DIVSLOW_MASK                    (0xFU)
+#define SCG_HCCR_DIVSLOW_SHIFT                   (0U)
+/*! DIVSLOW - Slow Clock Divide Ratio
+ *  0b0000..Reserved
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVSLOW(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVSLOW_SHIFT)) & SCG_HCCR_DIVSLOW_MASK)
+#define SCG_HCCR_DIVBUS_MASK                     (0xF0U)
+#define SCG_HCCR_DIVBUS_SHIFT                    (4U)
+/*! DIVBUS - Bus Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVBUS(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVBUS_SHIFT)) & SCG_HCCR_DIVBUS_MASK)
+#define SCG_HCCR_DIVEXT_MASK                     (0xF00U)
+#define SCG_HCCR_DIVEXT_SHIFT                    (8U)
+/*! DIVEXT - External Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVEXT(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVEXT_SHIFT)) & SCG_HCCR_DIVEXT_MASK)
+#define SCG_HCCR_DIVCORE_MASK                    (0xF0000U)
+#define SCG_HCCR_DIVCORE_SHIFT                   (16U)
+/*! DIVCORE - Core Clock Divide Ratio
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b0010..Divide-by-3
+ *  0b0011..Divide-by-4
+ *  0b0100..Divide-by-5
+ *  0b0101..Divide-by-6
+ *  0b0110..Divide-by-7
+ *  0b0111..Divide-by-8
+ *  0b1000..Divide-by-9
+ *  0b1001..Divide-by-10
+ *  0b1010..Divide-by-11
+ *  0b1011..Divide-by-12
+ *  0b1100..Divide-by-13
+ *  0b1101..Divide-by-14
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define SCG_HCCR_DIVCORE(x)                      (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_DIVCORE_SHIFT)) & SCG_HCCR_DIVCORE_MASK)
+#define SCG_HCCR_SCS_MASK                        (0xF000000U)
+#define SCG_HCCR_SCS_SHIFT                       (24U)
+/*! SCS - System Clock Source
+ *  0b0000..Reserved
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ */
+#define SCG_HCCR_SCS(x)                          (((uint32_t)(((uint32_t)(x)) << SCG_HCCR_SCS_SHIFT)) & SCG_HCCR_SCS_MASK)
+/*! @} */
+
+/*! @name CLKOUTCNFG - SCG CLKOUT Configuration Register */
+/*! @{ */
+#define SCG_CLKOUTCNFG_CLKOUTSEL_MASK            (0xF000000U)
+#define SCG_CLKOUTCNFG_CLKOUTSEL_SHIFT           (24U)
+/*! CLKOUTSEL - SCG Clkout Select
+ *  0b0000..SCG EXTERNAL Clock
+ *  0b0001..System OSC (SOSC_CLK)
+ *  0b0010..Slow IRC (SIRC_CLK)
+ *  0b0011..Fast IRC (FIRC_CLK)
+ *  0b0100..RTC OSC (ROSC_CLK)
+ *  0b0101..Low Power FLL (LPFLL_CLK)
+ *  0b0110..Reserved
+ *  0b0111..Reserved
+ *  0b1111..Reserved
+ */
+#define SCG_CLKOUTCNFG_CLKOUTSEL(x)              (((uint32_t)(((uint32_t)(x)) << SCG_CLKOUTCNFG_CLKOUTSEL_SHIFT)) & SCG_CLKOUTCNFG_CLKOUTSEL_MASK)
+/*! @} */
+
+/*! @name SOSCCSR - System OSC Control Status Register */
+/*! @{ */
+#define SCG_SOSCCSR_SOSCEN_MASK                  (0x1U)
+#define SCG_SOSCCSR_SOSCEN_SHIFT                 (0U)
+/*! SOSCEN - System OSC Enable
+ *  0b0..System OSC is disabled
+ *  0b1..System OSC is enabled
+ */
+#define SCG_SOSCCSR_SOSCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCEN_SHIFT)) & SCG_SOSCCSR_SOSCEN_MASK)
+#define SCG_SOSCCSR_SOSCSTEN_MASK                (0x2U)
+#define SCG_SOSCCSR_SOSCSTEN_SHIFT               (1U)
+/*! SOSCSTEN - System OSC Stop Enable
+ *  0b0..System OSC is disabled in Stop modes
+ *  0b1..System OSC is enabled in Stop modes if SOSCEN=1. In VLLS0, system oscillator is disabled even if SOSCSTEN=1 and SOSCEN=1.
+ */
+#define SCG_SOSCCSR_SOSCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCSTEN_SHIFT)) & SCG_SOSCCSR_SOSCSTEN_MASK)
+#define SCG_SOSCCSR_SOSCLPEN_MASK                (0x4U)
+#define SCG_SOSCCSR_SOSCLPEN_SHIFT               (2U)
+/*! SOSCLPEN - System OSC Low Power Enable
+ *  0b0..System OSC is disabled in VLP modes
+ *  0b1..System OSC is enabled in VLP modes
+ */
+#define SCG_SOSCCSR_SOSCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCLPEN_SHIFT)) & SCG_SOSCCSR_SOSCLPEN_MASK)
+#define SCG_SOSCCSR_SOSCCM_MASK                  (0x10000U)
+#define SCG_SOSCCSR_SOSCCM_SHIFT                 (16U)
+/*! SOSCCM - System OSC Clock Monitor
+ *  0b0..System OSC Clock Monitor is disabled
+ *  0b1..System OSC Clock Monitor is enabled
+ */
+#define SCG_SOSCCSR_SOSCCM(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCCM_SHIFT)) & SCG_SOSCCSR_SOSCCM_MASK)
+#define SCG_SOSCCSR_SOSCCMRE_MASK                (0x20000U)
+#define SCG_SOSCCSR_SOSCCMRE_SHIFT               (17U)
+/*! SOSCCMRE - System OSC Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_SOSCCSR_SOSCCMRE(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCCMRE_SHIFT)) & SCG_SOSCCSR_SOSCCMRE_MASK)
+#define SCG_SOSCCSR_LK_MASK                      (0x800000U)
+#define SCG_SOSCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..This Control Status Register can be written.
+ *  0b1..This Control Status Register cannot be written.
+ */
+#define SCG_SOSCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_LK_SHIFT)) & SCG_SOSCCSR_LK_MASK)
+#define SCG_SOSCCSR_SOSCVLD_MASK                 (0x1000000U)
+#define SCG_SOSCCSR_SOSCVLD_SHIFT                (24U)
+/*! SOSCVLD - System OSC Valid
+ *  0b0..System OSC is not enabled or clock is not valid
+ *  0b1..System OSC is enabled and output clock is valid
+ */
+#define SCG_SOSCCSR_SOSCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCVLD_SHIFT)) & SCG_SOSCCSR_SOSCVLD_MASK)
+#define SCG_SOSCCSR_SOSCSEL_MASK                 (0x2000000U)
+#define SCG_SOSCCSR_SOSCSEL_SHIFT                (25U)
+/*! SOSCSEL - System OSC Selected
+ *  0b0..System OSC is not the system clock source
+ *  0b1..System OSC is the system clock source
+ */
+#define SCG_SOSCCSR_SOSCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCSEL_SHIFT)) & SCG_SOSCCSR_SOSCSEL_MASK)
+#define SCG_SOSCCSR_SOSCERR_MASK                 (0x4000000U)
+#define SCG_SOSCCSR_SOSCERR_SHIFT                (26U)
+/*! SOSCERR - System OSC Clock Error
+ *  0b0..System OSC Clock Monitor is disabled or has not detected an error
+ *  0b1..System OSC Clock Monitor is enabled and detected an error
+ */
+#define SCG_SOSCCSR_SOSCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SOSCCSR_SOSCERR_SHIFT)) & SCG_SOSCCSR_SOSCERR_MASK)
+/*! @} */
+
+/*! @name SOSCDIV - System OSC Divide Register */
+/*! @{ */
+#define SCG_SOSCDIV_SOSCDIV1_MASK                (0x7U)
+#define SCG_SOSCDIV_SOSCDIV1_SHIFT               (0U)
+/*! SOSCDIV1 - System OSC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV1_SHIFT)) & SCG_SOSCDIV_SOSCDIV1_MASK)
+#define SCG_SOSCDIV_SOSCDIV2_MASK                (0x700U)
+#define SCG_SOSCDIV_SOSCDIV2_SHIFT               (8U)
+/*! SOSCDIV2 - System OSC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV2_SHIFT)) & SCG_SOSCDIV_SOSCDIV2_MASK)
+#define SCG_SOSCDIV_SOSCDIV3_MASK                (0x70000U)
+#define SCG_SOSCDIV_SOSCDIV3_SHIFT               (16U)
+/*! SOSCDIV3 - System OSC Clock Divide 3
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SOSCDIV_SOSCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SOSCDIV_SOSCDIV3_SHIFT)) & SCG_SOSCDIV_SOSCDIV3_MASK)
+/*! @} */
+
+/*! @name SIRCCSR - Slow IRC Control Status Register */
+/*! @{ */
+#define SCG_SIRCCSR_SIRCEN_MASK                  (0x1U)
+#define SCG_SIRCCSR_SIRCEN_SHIFT                 (0U)
+/*! SIRCEN - Slow IRC Enable
+ *  0b0..Slow IRC is disabled
+ *  0b1..Slow IRC is enabled
+ */
+#define SCG_SIRCCSR_SIRCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCEN_SHIFT)) & SCG_SIRCCSR_SIRCEN_MASK)
+#define SCG_SIRCCSR_SIRCSTEN_MASK                (0x2U)
+#define SCG_SIRCCSR_SIRCSTEN_SHIFT               (1U)
+/*! SIRCSTEN - Slow IRC Stop Enable
+ *  0b0..Slow IRC is disabled in Stop modes
+ *  0b1..Slow IRC is enabled in Stop modes
+ */
+#define SCG_SIRCCSR_SIRCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCSTEN_SHIFT)) & SCG_SIRCCSR_SIRCSTEN_MASK)
+#define SCG_SIRCCSR_SIRCLPEN_MASK                (0x4U)
+#define SCG_SIRCCSR_SIRCLPEN_SHIFT               (2U)
+/*! SIRCLPEN - Slow IRC Low Power Enable
+ *  0b0..Slow IRC is disabled in VLP modes
+ *  0b1..Slow IRC is enabled in VLP modes
+ */
+#define SCG_SIRCCSR_SIRCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCLPEN_SHIFT)) & SCG_SIRCCSR_SIRCLPEN_MASK)
+#define SCG_SIRCCSR_LK_MASK                      (0x800000U)
+#define SCG_SIRCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_SIRCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_LK_SHIFT)) & SCG_SIRCCSR_LK_MASK)
+#define SCG_SIRCCSR_SIRCVLD_MASK                 (0x1000000U)
+#define SCG_SIRCCSR_SIRCVLD_SHIFT                (24U)
+/*! SIRCVLD - Slow IRC Valid
+ *  0b0..Slow IRC is not enabled or clock is not valid
+ *  0b1..Slow IRC is enabled and output clock is valid
+ */
+#define SCG_SIRCCSR_SIRCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCVLD_SHIFT)) & SCG_SIRCCSR_SIRCVLD_MASK)
+#define SCG_SIRCCSR_SIRCSEL_MASK                 (0x2000000U)
+#define SCG_SIRCCSR_SIRCSEL_SHIFT                (25U)
+/*! SIRCSEL - Slow IRC Selected
+ *  0b0..Slow IRC is not the system clock source
+ *  0b1..Slow IRC is the system clock source
+ */
+#define SCG_SIRCCSR_SIRCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCSR_SIRCSEL_SHIFT)) & SCG_SIRCCSR_SIRCSEL_MASK)
+/*! @} */
+
+/*! @name SIRCDIV - Slow IRC Divide Register */
+/*! @{ */
+#define SCG_SIRCDIV_SIRCDIV1_MASK                (0x7U)
+#define SCG_SIRCDIV_SIRCDIV1_SHIFT               (0U)
+/*! SIRCDIV1 - Slow IRC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV1_SHIFT)) & SCG_SIRCDIV_SIRCDIV1_MASK)
+#define SCG_SIRCDIV_SIRCDIV2_MASK                (0x700U)
+#define SCG_SIRCDIV_SIRCDIV2_SHIFT               (8U)
+/*! SIRCDIV2 - Slow IRC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV2_SHIFT)) & SCG_SIRCDIV_SIRCDIV2_MASK)
+#define SCG_SIRCDIV_SIRCDIV3_MASK                (0x70000U)
+#define SCG_SIRCDIV_SIRCDIV3_SHIFT               (16U)
+/*! SIRCDIV3 - Slow IRC Clock Divider 3
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_SIRCDIV_SIRCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_SIRCDIV_SIRCDIV3_SHIFT)) & SCG_SIRCDIV_SIRCDIV3_MASK)
+/*! @} */
+
+/*! @name SIRCCFG - Slow IRC Configuration Register */
+/*! @{ */
+#define SCG_SIRCCFG_RANGE_MASK                   (0x1U)
+#define SCG_SIRCCFG_RANGE_SHIFT                  (0U)
+/*! RANGE - Frequency Range
+ *  0b0..Slow IRC low range clock (2MHz)
+ *  0b1..Slow IRC high range clock (8 MHz)
+ */
+#define SCG_SIRCCFG_RANGE(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_SIRCCFG_RANGE_SHIFT)) & SCG_SIRCCFG_RANGE_MASK)
+/*! @} */
+
+/*! @name FIRCCSR - Fast IRC Control Status Register */
+/*! @{ */
+#define SCG_FIRCCSR_FIRCEN_MASK                  (0x1U)
+#define SCG_FIRCCSR_FIRCEN_SHIFT                 (0U)
+/*! FIRCEN - Fast IRC Enable
+ *  0b0..Fast IRC is disabled
+ *  0b1..Fast IRC is enabled
+ */
+#define SCG_FIRCCSR_FIRCEN(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCEN_SHIFT)) & SCG_FIRCCSR_FIRCEN_MASK)
+#define SCG_FIRCCSR_FIRCSTEN_MASK                (0x2U)
+#define SCG_FIRCCSR_FIRCSTEN_SHIFT               (1U)
+/*! FIRCSTEN - Fast IRC Stop Enable
+ *  0b0..Fast IRC is disabled in Stop modes.
+ *  0b1..Fast IRC is enabled in Stop modes
+ */
+#define SCG_FIRCCSR_FIRCSTEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCSTEN_SHIFT)) & SCG_FIRCCSR_FIRCSTEN_MASK)
+#define SCG_FIRCCSR_FIRCLPEN_MASK                (0x4U)
+#define SCG_FIRCCSR_FIRCLPEN_SHIFT               (2U)
+/*! FIRCLPEN - Fast IRC Low Power Enable
+ *  0b0..Fast IRC is disabled in VLP modes
+ *  0b1..Fast IRC is enabled in VLP modes
+ */
+#define SCG_FIRCCSR_FIRCLPEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCLPEN_SHIFT)) & SCG_FIRCCSR_FIRCLPEN_MASK)
+#define SCG_FIRCCSR_FIRCREGOFF_MASK              (0x8U)
+#define SCG_FIRCCSR_FIRCREGOFF_SHIFT             (3U)
+/*! FIRCREGOFF - Fast IRC Regulator Enable
+ *  0b0..Fast IRC Regulator is enabled.
+ *  0b1..Fast IRC Regulator is disabled.
+ */
+#define SCG_FIRCCSR_FIRCREGOFF(x)                (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCREGOFF_SHIFT)) & SCG_FIRCCSR_FIRCREGOFF_MASK)
+#define SCG_FIRCCSR_FIRCTREN_MASK                (0x100U)
+#define SCG_FIRCCSR_FIRCTREN_SHIFT               (8U)
+/*! FIRCTREN - Fast IRC Trim Enable
+ *  0b0..Disable trimming Fast IRC to an external clock source
+ *  0b1..Enable trimming Fast IRC to an external clock source
+ */
+#define SCG_FIRCCSR_FIRCTREN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCTREN_SHIFT)) & SCG_FIRCCSR_FIRCTREN_MASK)
+#define SCG_FIRCCSR_FIRCTRUP_MASK                (0x200U)
+#define SCG_FIRCCSR_FIRCTRUP_SHIFT               (9U)
+/*! FIRCTRUP - Fast IRC Trim Update
+ *  0b0..Disable Fast IRC trimming updates
+ *  0b1..Enable Fast IRC trimming updates
+ */
+#define SCG_FIRCCSR_FIRCTRUP(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCTRUP_SHIFT)) & SCG_FIRCCSR_FIRCTRUP_MASK)
+#define SCG_FIRCCSR_LK_MASK                      (0x800000U)
+#define SCG_FIRCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_FIRCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_LK_SHIFT)) & SCG_FIRCCSR_LK_MASK)
+#define SCG_FIRCCSR_FIRCVLD_MASK                 (0x1000000U)
+#define SCG_FIRCCSR_FIRCVLD_SHIFT                (24U)
+/*! FIRCVLD - Fast IRC Valid status
+ *  0b0..Fast IRC is not enabled or clock is not valid.
+ *  0b1..Fast IRC is enabled and output clock is valid. The clock is valid once there is an output clock from the FIRC analog.
+ */
+#define SCG_FIRCCSR_FIRCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCVLD_SHIFT)) & SCG_FIRCCSR_FIRCVLD_MASK)
+#define SCG_FIRCCSR_FIRCSEL_MASK                 (0x2000000U)
+#define SCG_FIRCCSR_FIRCSEL_SHIFT                (25U)
+/*! FIRCSEL - Fast IRC Selected status
+ *  0b0..Fast IRC is not the system clock source
+ *  0b1..Fast IRC is the system clock source
+ */
+#define SCG_FIRCCSR_FIRCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCSEL_SHIFT)) & SCG_FIRCCSR_FIRCSEL_MASK)
+#define SCG_FIRCCSR_FIRCERR_MASK                 (0x4000000U)
+#define SCG_FIRCCSR_FIRCERR_SHIFT                (26U)
+/*! FIRCERR - Fast IRC Clock Error
+ *  0b0..Error not detected with the Fast IRC trimming.
+ *  0b1..Error detected with the Fast IRC trimming.
+ */
+#define SCG_FIRCCSR_FIRCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCSR_FIRCERR_SHIFT)) & SCG_FIRCCSR_FIRCERR_MASK)
+/*! @} */
+
+/*! @name FIRCDIV - Fast IRC Divide Register */
+/*! @{ */
+#define SCG_FIRCDIV_FIRCDIV1_MASK                (0x7U)
+#define SCG_FIRCDIV_FIRCDIV1_SHIFT               (0U)
+/*! FIRCDIV1 - Fast IRC Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV1(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV1_SHIFT)) & SCG_FIRCDIV_FIRCDIV1_MASK)
+#define SCG_FIRCDIV_FIRCDIV2_MASK                (0x700U)
+#define SCG_FIRCDIV_FIRCDIV2_SHIFT               (8U)
+/*! FIRCDIV2 - Fast IRC Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV2(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV2_SHIFT)) & SCG_FIRCDIV_FIRCDIV2_MASK)
+#define SCG_FIRCDIV_FIRCDIV3_MASK                (0x70000U)
+#define SCG_FIRCDIV_FIRCDIV3_SHIFT               (16U)
+/*! FIRCDIV3 - Fast IRC Clock Divider 3
+ *  0b000..Clock disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_FIRCDIV_FIRCDIV3(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCDIV_FIRCDIV3_SHIFT)) & SCG_FIRCDIV_FIRCDIV3_MASK)
+/*! @} */
+
+/*! @name FIRCCFG - Fast IRC Configuration Register */
+/*! @{ */
+#define SCG_FIRCCFG_RANGE_MASK                   (0x3U)
+#define SCG_FIRCCFG_RANGE_SHIFT                  (0U)
+/*! RANGE - Frequency Range
+ *  0b00..Fast IRC is trimmed to 48 MHz
+ *  0b01..Fast IRC is trimmed to 52 MHz
+ *  0b10..Fast IRC is trimmed to 56 MHz
+ *  0b11..Fast IRC is trimmed to 60 MHz
+ */
+#define SCG_FIRCCFG_RANGE(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_FIRCCFG_RANGE_SHIFT)) & SCG_FIRCCFG_RANGE_MASK)
+/*! @} */
+
+/*! @name FIRCTCFG - Fast IRC Trim Configuration Register */
+/*! @{ */
+#define SCG_FIRCTCFG_TRIMSRC_MASK                (0x3U)
+#define SCG_FIRCTCFG_TRIMSRC_SHIFT               (0U)
+/*! TRIMSRC - Trim Source
+ *  0b00..Reserved
+ *  0b01..Reserved
+ *  0b10..System OSC. This option requires that SOSC be divided using the TRIMDIV field to get a frequency slower than 32kHz.
+ *  0b11..RTC OSC (32.768 kHz)
+ */
+#define SCG_FIRCTCFG_TRIMSRC(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCTCFG_TRIMSRC_SHIFT)) & SCG_FIRCTCFG_TRIMSRC_MASK)
+#define SCG_FIRCTCFG_TRIMDIV_MASK                (0x700U)
+#define SCG_FIRCTCFG_TRIMDIV_SHIFT               (8U)
+/*! TRIMDIV - Fast IRC Trim Predivide
+ *  0b000..Divide by 1
+ *  0b001..Divide by 128
+ *  0b010..Divide by 256
+ *  0b011..Divide by 512
+ *  0b100..Divide by 1024
+ *  0b101..Divide by 2048
+ *  0b110..Reserved. Writing this value will result in Divide by 1.
+ *  0b111..Reserved. Writing this value will result in a Divide by 1.
+ */
+#define SCG_FIRCTCFG_TRIMDIV(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_FIRCTCFG_TRIMDIV_SHIFT)) & SCG_FIRCTCFG_TRIMDIV_MASK)
+/*! @} */
+
+/*! @name FIRCSTAT - Fast IRC Status Register */
+/*! @{ */
+#define SCG_FIRCSTAT_TRIMFINE_MASK               (0x7FU)
+#define SCG_FIRCSTAT_TRIMFINE_SHIFT              (0U)
+#define SCG_FIRCSTAT_TRIMFINE(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_FIRCSTAT_TRIMFINE_SHIFT)) & SCG_FIRCSTAT_TRIMFINE_MASK)
+#define SCG_FIRCSTAT_TRIMCOAR_MASK               (0x3F00U)
+#define SCG_FIRCSTAT_TRIMCOAR_SHIFT              (8U)
+#define SCG_FIRCSTAT_TRIMCOAR(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_FIRCSTAT_TRIMCOAR_SHIFT)) & SCG_FIRCSTAT_TRIMCOAR_MASK)
+/*! @} */
+
+/*! @name ROSCCSR - RTC OSC Control Status Register */
+/*! @{ */
+#define SCG_ROSCCSR_ROSCCM_MASK                  (0x10000U)
+#define SCG_ROSCCSR_ROSCCM_SHIFT                 (16U)
+/*! ROSCCM - RTC OSC Clock Monitor
+ *  0b0..RTC OSC Clock Monitor is disabled
+ *  0b1..RTC OSC Clock Monitor is enabled
+ */
+#define SCG_ROSCCSR_ROSCCM(x)                    (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCCM_SHIFT)) & SCG_ROSCCSR_ROSCCM_MASK)
+#define SCG_ROSCCSR_ROSCCMRE_MASK                (0x20000U)
+#define SCG_ROSCCSR_ROSCCMRE_SHIFT               (17U)
+/*! ROSCCMRE - RTC OSC Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_ROSCCSR_ROSCCMRE(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCCMRE_SHIFT)) & SCG_ROSCCSR_ROSCCMRE_MASK)
+#define SCG_ROSCCSR_LK_MASK                      (0x800000U)
+#define SCG_ROSCCSR_LK_SHIFT                     (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_ROSCCSR_LK(x)                        (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_LK_SHIFT)) & SCG_ROSCCSR_LK_MASK)
+#define SCG_ROSCCSR_ROSCVLD_MASK                 (0x1000000U)
+#define SCG_ROSCCSR_ROSCVLD_SHIFT                (24U)
+/*! ROSCVLD - RTC OSC Valid
+ *  0b0..RTC OSC is not enabled or clock is not valid
+ *  0b1..RTC OSC is enabled and output clock is valid
+ */
+#define SCG_ROSCCSR_ROSCVLD(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCVLD_SHIFT)) & SCG_ROSCCSR_ROSCVLD_MASK)
+#define SCG_ROSCCSR_ROSCSEL_MASK                 (0x2000000U)
+#define SCG_ROSCCSR_ROSCSEL_SHIFT                (25U)
+/*! ROSCSEL - RTC OSC Selected
+ *  0b0..RTC OSC is not the system clock source
+ *  0b1..RTC OSC is the system clock source
+ */
+#define SCG_ROSCCSR_ROSCSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCSEL_SHIFT)) & SCG_ROSCCSR_ROSCSEL_MASK)
+#define SCG_ROSCCSR_ROSCERR_MASK                 (0x4000000U)
+#define SCG_ROSCCSR_ROSCERR_SHIFT                (26U)
+/*! ROSCERR - RTC OSC Clock Error
+ *  0b0..RTC OSC Clock Monitor is disabled or has not detected an error
+ *  0b1..RTC OSC Clock Monitor is enabled and detected an RTC loss of clock error
+ */
+#define SCG_ROSCCSR_ROSCERR(x)                   (((uint32_t)(((uint32_t)(x)) << SCG_ROSCCSR_ROSCERR_SHIFT)) & SCG_ROSCCSR_ROSCERR_MASK)
+/*! @} */
+
+/*! @name LPFLLCSR - Low Power FLL Control Status Register */
+/*! @{ */
+#define SCG_LPFLLCSR_LPFLLEN_MASK                (0x1U)
+#define SCG_LPFLLCSR_LPFLLEN_SHIFT               (0U)
+/*! LPFLLEN - LPFLL Enable
+ *  0b0..LPFLL is disabled
+ *  0b1..LPFLL is enabled
+ */
+#define SCG_LPFLLCSR_LPFLLEN(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLEN_SHIFT)) & SCG_LPFLLCSR_LPFLLEN_MASK)
+#define SCG_LPFLLCSR_LPFLLSTEN_MASK              (0x2U)
+#define SCG_LPFLLCSR_LPFLLSTEN_SHIFT             (1U)
+/*! LPFLLSTEN - LPFLL Stop Enable
+ *  0b0..LPFLL is disabled in Stop modes.
+ *  0b1..LPFLL is enabled in Stop modes
+ */
+#define SCG_LPFLLCSR_LPFLLSTEN(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLSTEN_SHIFT)) & SCG_LPFLLCSR_LPFLLSTEN_MASK)
+#define SCG_LPFLLCSR_LPFLLTREN_MASK              (0x100U)
+#define SCG_LPFLLCSR_LPFLLTREN_SHIFT             (8U)
+/*! LPFLLTREN - LPFLL Trim Enable
+ *  0b0..Disable trimming LPFLL to an reference clock source
+ *  0b1..Enable trimming LPFLL to an reference clock source
+ */
+#define SCG_LPFLLCSR_LPFLLTREN(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTREN_SHIFT)) & SCG_LPFLLCSR_LPFLLTREN_MASK)
+#define SCG_LPFLLCSR_LPFLLTRUP_MASK              (0x200U)
+#define SCG_LPFLLCSR_LPFLLTRUP_SHIFT             (9U)
+/*! LPFLLTRUP - LPFLL Trim Update
+ *  0b0..Disable LPFLL trimming updates. LPFLL frequency determined by AUTOTRIM written value.
+ *  0b1..Enable LPFLL trimming updates. LPFLL frequency determined by reference clock multiplication
+ */
+#define SCG_LPFLLCSR_LPFLLTRUP(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTRUP_SHIFT)) & SCG_LPFLLCSR_LPFLLTRUP_MASK)
+#define SCG_LPFLLCSR_LPFLLTRMLOCK_MASK           (0x400U)
+#define SCG_LPFLLCSR_LPFLLTRMLOCK_SHIFT          (10U)
+/*! LPFLLTRMLOCK - LPFLL Trim LOCK
+ *  0b0..LPFLL not Locked
+ *  0b1..LPFLL trimmed and Locked
+ */
+#define SCG_LPFLLCSR_LPFLLTRMLOCK(x)             (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLTRMLOCK_SHIFT)) & SCG_LPFLLCSR_LPFLLTRMLOCK_MASK)
+#define SCG_LPFLLCSR_LPFLLCM_MASK                (0x10000U)
+#define SCG_LPFLLCSR_LPFLLCM_SHIFT               (16U)
+/*! LPFLLCM - LPFLL Clock Monitor
+ *  0b0..LPFLL Clock Monitor is disabled
+ *  0b1..LPFLL Clock Monitor is enabled
+ */
+#define SCG_LPFLLCSR_LPFLLCM(x)                  (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLCM_SHIFT)) & SCG_LPFLLCSR_LPFLLCM_MASK)
+#define SCG_LPFLLCSR_LPFLLCMRE_MASK              (0x20000U)
+#define SCG_LPFLLCSR_LPFLLCMRE_SHIFT             (17U)
+/*! LPFLLCMRE - LPFLL Clock Monitor Reset Enable
+ *  0b0..Clock Monitor generates interrupt when error detected
+ *  0b1..Clock Monitor generates reset when error detected
+ */
+#define SCG_LPFLLCSR_LPFLLCMRE(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLCMRE_SHIFT)) & SCG_LPFLLCSR_LPFLLCMRE_MASK)
+#define SCG_LPFLLCSR_LK_MASK                     (0x800000U)
+#define SCG_LPFLLCSR_LK_SHIFT                    (23U)
+/*! LK - Lock Register
+ *  0b0..Control Status Register can be written.
+ *  0b1..Control Status Register cannot be written.
+ */
+#define SCG_LPFLLCSR_LK(x)                       (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LK_SHIFT)) & SCG_LPFLLCSR_LK_MASK)
+#define SCG_LPFLLCSR_LPFLLVLD_MASK               (0x1000000U)
+#define SCG_LPFLLCSR_LPFLLVLD_SHIFT              (24U)
+/*! LPFLLVLD - LPFLL Valid
+ *  0b0..LPFLL is not enabled or clock is not valid.
+ *  0b1..LPFLL is enabled and output clock is valid.
+ */
+#define SCG_LPFLLCSR_LPFLLVLD(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLVLD_SHIFT)) & SCG_LPFLLCSR_LPFLLVLD_MASK)
+#define SCG_LPFLLCSR_LPFLLSEL_MASK               (0x2000000U)
+#define SCG_LPFLLCSR_LPFLLSEL_SHIFT              (25U)
+/*! LPFLLSEL - LPFLL Selected
+ *  0b0..LPFLL is not the system clock source
+ *  0b1..LPFLL is the system clock source
+ */
+#define SCG_LPFLLCSR_LPFLLSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLSEL_SHIFT)) & SCG_LPFLLCSR_LPFLLSEL_MASK)
+#define SCG_LPFLLCSR_LPFLLERR_MASK               (0x4000000U)
+#define SCG_LPFLLCSR_LPFLLERR_SHIFT              (26U)
+/*! LPFLLERR - LPFLL Clock Error
+ *  0b0..Error not detected with the LPFLL trimming.
+ *  0b1..Error detected with the LPFLL trimming.
+ */
+#define SCG_LPFLLCSR_LPFLLERR(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCSR_LPFLLERR_SHIFT)) & SCG_LPFLLCSR_LPFLLERR_MASK)
+/*! @} */
+
+/*! @name LPFLLDIV - Low Power FLL Divide Register */
+/*! @{ */
+#define SCG_LPFLLDIV_LPFLLDIV1_MASK              (0x7U)
+#define SCG_LPFLLDIV_LPFLLDIV1_SHIFT             (0U)
+/*! LPFLLDIV1 - LPFLL Clock Divide 1
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV1(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV1_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV1_MASK)
+#define SCG_LPFLLDIV_LPFLLDIV2_MASK              (0x700U)
+#define SCG_LPFLLDIV_LPFLLDIV2_SHIFT             (8U)
+/*! LPFLLDIV2 - LPFLL Clock Divide 2
+ *  0b000..Output disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV2(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV2_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV2_MASK)
+#define SCG_LPFLLDIV_LPFLLDIV3_MASK              (0x70000U)
+#define SCG_LPFLLDIV_LPFLLDIV3_SHIFT             (16U)
+/*! LPFLLDIV3 - LPFLL Clock Divide 3
+ *  0b000..Clock disabled
+ *  0b001..Divide by 1
+ *  0b010..Divide by 2
+ *  0b011..Divide by 4
+ *  0b100..Divide by 8
+ *  0b101..Divide by 16
+ *  0b110..Divide by 32
+ *  0b111..Divide by 64
+ */
+#define SCG_LPFLLDIV_LPFLLDIV3(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLDIV_LPFLLDIV3_SHIFT)) & SCG_LPFLLDIV_LPFLLDIV3_MASK)
+/*! @} */
+
+/*! @name LPFLLCFG - Low Power FLL Configuration Register */
+/*! @{ */
+#define SCG_LPFLLCFG_FSEL_MASK                   (0x3U)
+#define SCG_LPFLLCFG_FSEL_SHIFT                  (0U)
+/*! FSEL - Frequency Select
+ *  0b00..LPFLL is trimmed to 48 MHz.
+ *  0b01..LPFLL is trimmed to 72 MHz.
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define SCG_LPFLLCFG_FSEL(x)                     (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLCFG_FSEL_SHIFT)) & SCG_LPFLLCFG_FSEL_MASK)
+/*! @} */
+
+/*! @name LPFLLTCFG - Low Power FLL Trim Configuration Register */
+/*! @{ */
+#define SCG_LPFLLTCFG_TRIMSRC_MASK               (0x3U)
+#define SCG_LPFLLTCFG_TRIMSRC_SHIFT              (0U)
+/*! TRIMSRC - Trim Source
+ *  0b00..SIRC
+ *  0b01..FIRC
+ *  0b10..System OSC
+ *  0b11..RTC OSC
+ */
+#define SCG_LPFLLTCFG_TRIMSRC(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_TRIMSRC_SHIFT)) & SCG_LPFLLTCFG_TRIMSRC_MASK)
+#define SCG_LPFLLTCFG_TRIMDIV_MASK               (0x1F00U)
+#define SCG_LPFLLTCFG_TRIMDIV_SHIFT              (8U)
+#define SCG_LPFLLTCFG_TRIMDIV(x)                 (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_TRIMDIV_SHIFT)) & SCG_LPFLLTCFG_TRIMDIV_MASK)
+#define SCG_LPFLLTCFG_LOCKW2LSB_MASK             (0x10000U)
+#define SCG_LPFLLTCFG_LOCKW2LSB_SHIFT            (16U)
+/*! LOCKW2LSB - Lock LPFLL with 2 LSBS
+ *  0b0..LPFLL locks within 1LSB (0.4%)
+ *  0b1..LPFLL locks within 2LSB (0.8%)
+ */
+#define SCG_LPFLLTCFG_LOCKW2LSB(x)               (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLTCFG_LOCKW2LSB_SHIFT)) & SCG_LPFLLTCFG_LOCKW2LSB_MASK)
+/*! @} */
+
+/*! @name LPFLLSTAT - Low Power FLL Status Register */
+/*! @{ */
+#define SCG_LPFLLSTAT_AUTOTRIM_MASK              (0xFFU)
+#define SCG_LPFLLSTAT_AUTOTRIM_SHIFT             (0U)
+#define SCG_LPFLLSTAT_AUTOTRIM(x)                (((uint32_t)(((uint32_t)(x)) << SCG_LPFLLSTAT_AUTOTRIM_SHIFT)) & SCG_LPFLLSTAT_AUTOTRIM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SCG_Register_Masks */
+
+
+/* SCG - Peripheral instance base addresses */
+/** Peripheral SCG base address */
+#define SCG_BASE                                 (0x4002C000u)
+/** Peripheral SCG base pointer */
+#define SCG                                      ((SCG_Type *)SCG_BASE)
+/** Array initializer of SCG peripheral base addresses */
+#define SCG_BASE_ADDRS                           { SCG_BASE }
+/** Array initializer of SCG peripheral base pointers */
+#define SCG_BASE_PTRS                            { SCG }
+/** Interrupt vectors for the SCG peripheral type */
+#define SCG_IRQS                                 { SCG_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SCG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SEMA42 Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SEMA42_Peripheral_Access_Layer SEMA42 Peripheral Access Layer
+ * @{
+ */
+
+/** SEMA42 - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t GATE3;                              /**< Gate Register, offset: 0x0 */
+  __IO uint8_t GATE2;                              /**< Gate Register, offset: 0x1 */
+  __IO uint8_t GATE1;                              /**< Gate Register, offset: 0x2 */
+  __IO uint8_t GATE0;                              /**< Gate Register, offset: 0x3 */
+  __IO uint8_t GATE7;                              /**< Gate Register, offset: 0x4 */
+  __IO uint8_t GATE6;                              /**< Gate Register, offset: 0x5 */
+  __IO uint8_t GATE5;                              /**< Gate Register, offset: 0x6 */
+  __IO uint8_t GATE4;                              /**< Gate Register, offset: 0x7 */
+  __IO uint8_t GATE11;                             /**< Gate Register, offset: 0x8 */
+  __IO uint8_t GATE10;                             /**< Gate Register, offset: 0x9 */
+  __IO uint8_t GATE9;                              /**< Gate Register, offset: 0xA */
+  __IO uint8_t GATE8;                              /**< Gate Register, offset: 0xB */
+  __IO uint8_t GATE15;                             /**< Gate Register, offset: 0xC */
+  __IO uint8_t GATE14;                             /**< Gate Register, offset: 0xD */
+  __IO uint8_t GATE13;                             /**< Gate Register, offset: 0xE */
+  __IO uint8_t GATE12;                             /**< Gate Register, offset: 0xF */
+       uint8_t RESERVED_0[50];
+  union {                                          /* offset: 0x42 */
+    __I  uint16_t RSTGT_R;                           /**< Reset Gate Read, offset: 0x42 */
+    __O  uint16_t RSTGT_W;                           /**< Reset Gate Write, offset: 0x42 */
+  };
+} SEMA42_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SEMA42 Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SEMA42_Register_Masks SEMA42 Register Masks
+ * @{
+ */
+
+/*! @name GATE3 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE3_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE3_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE3_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE3_GTFSM_SHIFT)) & SEMA42_GATE3_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE2 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE2_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE2_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE2_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE2_GTFSM_SHIFT)) & SEMA42_GATE2_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE1 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE1_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE1_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE1_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE1_GTFSM_SHIFT)) & SEMA42_GATE1_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE0 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE0_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE0_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE0_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE0_GTFSM_SHIFT)) & SEMA42_GATE0_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE7 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE7_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE7_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE7_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE7_GTFSM_SHIFT)) & SEMA42_GATE7_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE6 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE6_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE6_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE6_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE6_GTFSM_SHIFT)) & SEMA42_GATE6_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE5 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE5_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE5_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE5_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE5_GTFSM_SHIFT)) & SEMA42_GATE5_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE4 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE4_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE4_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE4_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE4_GTFSM_SHIFT)) & SEMA42_GATE4_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE11 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE11_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE11_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE11_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE11_GTFSM_SHIFT)) & SEMA42_GATE11_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE10 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE10_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE10_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE10_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE10_GTFSM_SHIFT)) & SEMA42_GATE10_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE9 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE9_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE9_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE9_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE9_GTFSM_SHIFT)) & SEMA42_GATE9_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE8 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE8_GTFSM_MASK                  (0xFU)
+#define SEMA42_GATE8_GTFSM_SHIFT                 (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE8_GTFSM(x)                    (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE8_GTFSM_SHIFT)) & SEMA42_GATE8_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE15 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE15_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE15_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE15_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE15_GTFSM_SHIFT)) & SEMA42_GATE15_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE14 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE14_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE14_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE14_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE14_GTFSM_SHIFT)) & SEMA42_GATE14_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE13 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE13_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE13_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE13_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE13_GTFSM_SHIFT)) & SEMA42_GATE13_GTFSM_MASK)
+/*! @} */
+
+/*! @name GATE12 - Gate Register */
+/*! @{ */
+#define SEMA42_GATE12_GTFSM_MASK                 (0xFU)
+#define SEMA42_GATE12_GTFSM_SHIFT                (0U)
+/*! GTFSM - GTFSM
+ *  0b0000..The gate is unlocked (free).
+ *  0b0001..The gate has been locked by processor 0.
+ *  0b0010..The gate has been locked by processor 1.
+ *  0b0011..The gate has been locked by processor 2.
+ *  0b0100..The gate has been locked by processor 3.
+ *  0b0101..The gate has been locked by processor 4.
+ *  0b0110..The gate has been locked by processor 5.
+ *  0b0111..The gate has been locked by processor 6.
+ *  0b1000..The gate has been locked by processor 7.
+ *  0b1001..The gate has been locked by processor 8.
+ *  0b1010..The gate has been locked by processor 9.
+ *  0b1011..The gate has been locked by processor 10.
+ *  0b1100..The gate has been locked by processor 11.
+ *  0b1101..The gate has been locked by processor 12.
+ *  0b1110..The gate has been locked by processor 13.
+ *  0b1111..The gate has been locked by processor 14.
+ */
+#define SEMA42_GATE12_GTFSM(x)                   (((uint8_t)(((uint8_t)(x)) << SEMA42_GATE12_GTFSM_SHIFT)) & SEMA42_GATE12_GTFSM_MASK)
+/*! @} */
+
+/*! @name RSTGT_R - Reset Gate Read */
+/*! @{ */
+#define SEMA42_RSTGT_R_RSTGTN_MASK               (0xFFU)
+#define SEMA42_RSTGT_R_RSTGTN_SHIFT              (0U)
+#define SEMA42_RSTGT_R_RSTGTN(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGTN_SHIFT)) & SEMA42_RSTGT_R_RSTGTN_MASK)
+#define SEMA42_RSTGT_R_RSTGMS_MASK               (0xF00U)
+#define SEMA42_RSTGT_R_RSTGMS_SHIFT              (8U)
+#define SEMA42_RSTGT_R_RSTGMS(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGMS_SHIFT)) & SEMA42_RSTGT_R_RSTGMS_MASK)
+#define SEMA42_RSTGT_R_RSTGSM_MASK               (0x3000U)
+#define SEMA42_RSTGT_R_RSTGSM_SHIFT              (12U)
+/*! RSTGSM - RSTGSM
+ *  0b00..Idle, waiting for the first data pattern write.
+ *  0b01..Waiting for the second data pattern write.
+ *  0b10..The 2-write sequence has completed. Generate the specified gate reset(s). After the reset is performed, this machine returns to the idle (waiting for first data pattern write) state. The "01" state persists for only one clock cycle. Software cannot observe this state.
+ *  0b11..This state encoding is never used and therefore reserved.
+ */
+#define SEMA42_RSTGT_R_RSTGSM(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_RSTGSM_SHIFT)) & SEMA42_RSTGT_R_RSTGSM_MASK)
+#define SEMA42_RSTGT_R_ROZ_MASK                  (0xC000U)
+#define SEMA42_RSTGT_R_ROZ_SHIFT                 (14U)
+#define SEMA42_RSTGT_R_ROZ(x)                    (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_R_ROZ_SHIFT)) & SEMA42_RSTGT_R_ROZ_MASK)
+/*! @} */
+
+/*! @name RSTGT_W - Reset Gate Write */
+/*! @{ */
+#define SEMA42_RSTGT_W_RSTGTN_MASK               (0xFFU)
+#define SEMA42_RSTGT_W_RSTGTN_SHIFT              (0U)
+#define SEMA42_RSTGT_W_RSTGTN(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_W_RSTGTN_SHIFT)) & SEMA42_RSTGT_W_RSTGTN_MASK)
+#define SEMA42_RSTGT_W_RSTGDP_MASK               (0xFF00U)
+#define SEMA42_RSTGT_W_RSTGDP_SHIFT              (8U)
+#define SEMA42_RSTGT_W_RSTGDP(x)                 (((uint16_t)(((uint16_t)(x)) << SEMA42_RSTGT_W_RSTGDP_SHIFT)) & SEMA42_RSTGT_W_RSTGDP_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SEMA42_Register_Masks */
+
+
+/* SEMA42 - Peripheral instance base addresses */
+/** Peripheral SEMA420 base address */
+#define SEMA420_BASE                             (0x4001B000u)
+/** Peripheral SEMA420 base pointer */
+#define SEMA420                                  ((SEMA42_Type *)SEMA420_BASE)
+/** Peripheral SEMA421 base address */
+#define SEMA421_BASE                             (0x4101B000u)
+/** Peripheral SEMA421 base pointer */
+#define SEMA421                                  ((SEMA42_Type *)SEMA421_BASE)
+/** Array initializer of SEMA42 peripheral base addresses */
+#define SEMA42_BASE_ADDRS                        { SEMA420_BASE, SEMA421_BASE }
+/** Array initializer of SEMA42 peripheral base pointers */
+#define SEMA42_BASE_PTRS                         { SEMA420, SEMA421 }
+
+/*!
+ * @}
+ */ /* end of group SEMA42_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SIM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SIM_Peripheral_Access_Layer SIM Peripheral Access Layer
+ * @{
+ */
+
+/** SIM - Register Layout Typedef */
+typedef struct {
+       uint8_t RESERVED_0[4];
+  __IO uint32_t CHIPCTRL;                          /**< Chip Control Register, offset: 0x4 */
+       uint8_t RESERVED_1[28];
+  __I  uint32_t SDID;                              /**< System Device Identification Register, offset: 0x24 */
+       uint8_t RESERVED_2[36];
+  __IO uint32_t FCFG1;                             /**< Flash Configuration Register 1, offset: 0x4C */
+  __I  uint32_t FCFG2;                             /**< Flash Configuration Register 2, offset: 0x50 */
+       uint8_t RESERVED_3[4];
+  __I  uint32_t UIDH;                              /**< Unique Identification Register High, offset: 0x58 */
+  __I  uint32_t UIDM;                              /**< Unique Identification Register Mid Middle, offset: 0x5C */
+  __I  uint32_t UIDL;                              /**< Unique Identification Register Mid Low, offset: 0x60 */
+  __I  uint32_t RFADDRL;                           /**< RF Mac Address Low, offset: 0x64 */
+  __I  uint32_t RFADDRH;                           /**< RF MAC Address High, offset: 0x68 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t MISC2;                             /**< MISC2 Register, offset: 0x70 */
+} SIM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SIM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SIM_Register_Masks SIM Register Masks
+ * @{
+ */
+
+/*! @name CHIPCTRL - Chip Control Register */
+/*! @{ */
+#define SIM_CHIPCTRL_FBSL_MASK                   (0x300U)
+#define SIM_CHIPCTRL_FBSL_SHIFT                  (8U)
+/*! FBSL - FLEXBUS security level
+ *  0b00..All off-chip access(instruction and data) via the Flexbus or sdram are disallowed
+ *  0b01..All off-chip access(instruction and data) via the Flexbus or sdram are disallowed
+ *  0b10..off-chip instruction access are disallowed, data access are allowed
+ *  0b11..off-chip instruction access and data access are allowed
+ */
+#define SIM_CHIPCTRL_FBSL(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_CHIPCTRL_FBSL_SHIFT)) & SIM_CHIPCTRL_FBSL_MASK)
+/*! @} */
+
+/*! @name SDID - System Device Identification Register */
+/*! @{ */
+#define SIM_SDID_PINID_MASK                      (0xFU)
+#define SIM_SDID_PINID_SHIFT                     (0U)
+/*! PINID - PINID
+ *  0b1000..176-pin
+ *  0b1101..191-pin
+ */
+#define SIM_SDID_PINID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_PINID_SHIFT)) & SIM_SDID_PINID_MASK)
+#define SIM_SDID_DIEID_MASK                      (0xF80U)
+#define SIM_SDID_DIEID_SHIFT                     (7U)
+#define SIM_SDID_DIEID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_DIEID_SHIFT)) & SIM_SDID_DIEID_MASK)
+#define SIM_SDID_REVID_MASK                      (0xF000U)
+#define SIM_SDID_REVID_SHIFT                     (12U)
+#define SIM_SDID_REVID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_REVID_SHIFT)) & SIM_SDID_REVID_MASK)
+#define SIM_SDID_SERIESID_MASK                   (0xF00000U)
+#define SIM_SDID_SERIESID_SHIFT                  (20U)
+#define SIM_SDID_SERIESID(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SERIESID_SHIFT)) & SIM_SDID_SERIESID_MASK)
+#define SIM_SDID_SUBFAMID_MASK                   (0xF000000U)
+#define SIM_SDID_SUBFAMID_SHIFT                  (24U)
+/*! SUBFAMID - SUBFAMID
+ *  0b0010..02
+ *  0b0011..03
+ *  0b0100..04
+ */
+#define SIM_SDID_SUBFAMID(x)                     (((uint32_t)(((uint32_t)(x)) << SIM_SDID_SUBFAMID_SHIFT)) & SIM_SDID_SUBFAMID_MASK)
+#define SIM_SDID_FAMID_MASK                      (0xF0000000U)
+#define SIM_SDID_FAMID_SHIFT                     (28U)
+/*! FAMID - FAMID
+ *  0b0000..RV32M1
+ */
+#define SIM_SDID_FAMID(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_SDID_FAMID_SHIFT)) & SIM_SDID_FAMID_MASK)
+/*! @} */
+
+/*! @name FCFG1 - Flash Configuration Register 1 */
+/*! @{ */
+#define SIM_FCFG1_FLASHDIS_MASK                  (0x1U)
+#define SIM_FCFG1_FLASHDIS_SHIFT                 (0U)
+/*! FLASHDIS - Flash disable
+ *  0b0..Flash is enabled
+ *  0b1..Flash is disabled
+ */
+#define SIM_FCFG1_FLASHDIS(x)                    (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDIS_SHIFT)) & SIM_FCFG1_FLASHDIS_MASK)
+#define SIM_FCFG1_FLASHDOZE_MASK                 (0x2U)
+#define SIM_FCFG1_FLASHDOZE_SHIFT                (1U)
+/*! FLASHDOZE - Flash Doze
+ *  0b0..Flash remains enabled during Doze mode
+ *  0b1..Flash is disabled for the duration of Doze mode
+ */
+#define SIM_FCFG1_FLASHDOZE(x)                   (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLASHDOZE_SHIFT)) & SIM_FCFG1_FLASHDOZE_MASK)
+#define SIM_FCFG1_FLSAUTODISEN_MASK              (0x4U)
+#define SIM_FCFG1_FLSAUTODISEN_SHIFT             (2U)
+/*! FLSAUTODISEN - Flash auto disable enabled.
+ *  0b0..Disable flash auto disable function
+ *  0b1..Enable flash auto disable function
+ */
+#define SIM_FCFG1_FLSAUTODISEN(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLSAUTODISEN_SHIFT)) & SIM_FCFG1_FLSAUTODISEN_MASK)
+#define SIM_FCFG1_FLSAUTODISWD_MASK              (0x3FF8U)
+#define SIM_FCFG1_FLSAUTODISWD_SHIFT             (3U)
+#define SIM_FCFG1_FLSAUTODISWD(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_FLSAUTODISWD_SHIFT)) & SIM_FCFG1_FLSAUTODISWD_MASK)
+#define SIM_FCFG1_CORE1_SRAMSIZE_MASK            (0xF0000U)
+#define SIM_FCFG1_CORE1_SRAMSIZE_SHIFT           (16U)
+/*! CORE1_SRAMSIZE
+ *  0b1001..CM0+ has 128 KB SRAM
+ */
+#define SIM_FCFG1_CORE1_SRAMSIZE(x)              (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE1_SRAMSIZE_SHIFT)) & SIM_FCFG1_CORE1_SRAMSIZE_MASK)
+#define SIM_FCFG1_CORE0_SRAMSIZE_MASK            (0xF00000U)
+#define SIM_FCFG1_CORE0_SRAMSIZE_SHIFT           (20U)
+/*! CORE0_SRAMSIZE
+ *  0b1010..CM4 has 256 KB SRAM
+ */
+#define SIM_FCFG1_CORE0_SRAMSIZE(x)              (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE0_SRAMSIZE_SHIFT)) & SIM_FCFG1_CORE0_SRAMSIZE_MASK)
+#define SIM_FCFG1_CORE1_PFSIZE_MASK              (0xF000000U)
+#define SIM_FCFG1_CORE1_PFSIZE_SHIFT             (24U)
+/*! CORE1_PFSIZE
+ *  0b1010..CM0+ has 256 KB flash size.
+ */
+#define SIM_FCFG1_CORE1_PFSIZE(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE1_PFSIZE_SHIFT)) & SIM_FCFG1_CORE1_PFSIZE_MASK)
+#define SIM_FCFG1_CORE0_PFSIZE_MASK              (0xF0000000U)
+#define SIM_FCFG1_CORE0_PFSIZE_SHIFT             (28U)
+/*! CORE0_PFSIZE
+ *  0b1100..CM4 has 1 MB flash size.
+ */
+#define SIM_FCFG1_CORE0_PFSIZE(x)                (((uint32_t)(((uint32_t)(x)) << SIM_FCFG1_CORE0_PFSIZE_SHIFT)) & SIM_FCFG1_CORE0_PFSIZE_MASK)
+/*! @} */
+
+/*! @name FCFG2 - Flash Configuration Register 2 */
+/*! @{ */
+#define SIM_FCFG2_MAXADDR2_MASK                  (0x3F0000U)
+#define SIM_FCFG2_MAXADDR2_SHIFT                 (16U)
+#define SIM_FCFG2_MAXADDR2(x)                    (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR2_SHIFT)) & SIM_FCFG2_MAXADDR2_MASK)
+#define SIM_FCFG2_MAXADDR01_MASK                 (0x7F000000U)
+#define SIM_FCFG2_MAXADDR01_SHIFT                (24U)
+#define SIM_FCFG2_MAXADDR01(x)                   (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_MAXADDR01_SHIFT)) & SIM_FCFG2_MAXADDR01_MASK)
+#define SIM_FCFG2_SWAP_MASK                      (0x80000000U)
+#define SIM_FCFG2_SWAP_SHIFT                     (31U)
+/*! SWAP - SWAP
+ *  0b0..Logical P-flash Block 0 is located at relative address 0x0000
+ *  0b1..Logical P-flash Block 1 is located at relative address 0x0000
+ */
+#define SIM_FCFG2_SWAP(x)                        (((uint32_t)(((uint32_t)(x)) << SIM_FCFG2_SWAP_SHIFT)) & SIM_FCFG2_SWAP_MASK)
+/*! @} */
+
+/*! @name UIDH - Unique Identification Register High */
+/*! @{ */
+#define SIM_UIDH_UID_MASK                        (0xFFFFU)
+#define SIM_UIDH_UID_SHIFT                       (0U)
+#define SIM_UIDH_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDH_UID_SHIFT)) & SIM_UIDH_UID_MASK)
+/*! @} */
+
+/*! @name UIDM - Unique Identification Register Mid Middle */
+/*! @{ */
+#define SIM_UIDM_UID_MASK                        (0xFFFFFFFFU)
+#define SIM_UIDM_UID_SHIFT                       (0U)
+#define SIM_UIDM_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDM_UID_SHIFT)) & SIM_UIDM_UID_MASK)
+/*! @} */
+
+/*! @name UIDL - Unique Identification Register Mid Low */
+/*! @{ */
+#define SIM_UIDL_UID_MASK                        (0xFFFFFFFFU)
+#define SIM_UIDL_UID_SHIFT                       (0U)
+#define SIM_UIDL_UID(x)                          (((uint32_t)(((uint32_t)(x)) << SIM_UIDL_UID_SHIFT)) & SIM_UIDL_UID_MASK)
+/*! @} */
+
+/*! @name RFADDRL - RF Mac Address Low */
+/*! @{ */
+#define SIM_RFADDRL_MACADDR0_MASK                (0xFFU)
+#define SIM_RFADDRL_MACADDR0_SHIFT               (0U)
+#define SIM_RFADDRL_MACADDR0(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR0_SHIFT)) & SIM_RFADDRL_MACADDR0_MASK)
+#define SIM_RFADDRL_MACADDR1_MASK                (0xFF00U)
+#define SIM_RFADDRL_MACADDR1_SHIFT               (8U)
+#define SIM_RFADDRL_MACADDR1(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR1_SHIFT)) & SIM_RFADDRL_MACADDR1_MASK)
+#define SIM_RFADDRL_MACADDR2_MASK                (0xFF0000U)
+#define SIM_RFADDRL_MACADDR2_SHIFT               (16U)
+#define SIM_RFADDRL_MACADDR2(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR2_SHIFT)) & SIM_RFADDRL_MACADDR2_MASK)
+#define SIM_RFADDRL_MACADDR3_MASK                (0xFF000000U)
+#define SIM_RFADDRL_MACADDR3_SHIFT               (24U)
+#define SIM_RFADDRL_MACADDR3(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRL_MACADDR3_SHIFT)) & SIM_RFADDRL_MACADDR3_MASK)
+/*! @} */
+
+/*! @name RFADDRH - RF MAC Address High */
+/*! @{ */
+#define SIM_RFADDRH_MACADDR4_MASK                (0xFFU)
+#define SIM_RFADDRH_MACADDR4_SHIFT               (0U)
+#define SIM_RFADDRH_MACADDR4(x)                  (((uint32_t)(((uint32_t)(x)) << SIM_RFADDRH_MACADDR4_SHIFT)) & SIM_RFADDRH_MACADDR4_MASK)
+/*! @} */
+
+/*! @name MISC2 - MISC2 Register */
+/*! @{ */
+#define SIM_MISC2_SYSTICK_CLK_EN_MASK            (0x1U)
+#define SIM_MISC2_SYSTICK_CLK_EN_SHIFT           (0U)
+/*! systick_clk_en - Systick clock enable
+ *  0b0..Systick clock is disabled
+ *  0b1..Systick clock is enabled
+ */
+#define SIM_MISC2_SYSTICK_CLK_EN(x)              (((uint32_t)(((uint32_t)(x)) << SIM_MISC2_SYSTICK_CLK_EN_SHIFT)) & SIM_MISC2_SYSTICK_CLK_EN_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SIM_Register_Masks */
+
+
+/* SIM - Peripheral instance base addresses */
+/** Peripheral SIM base address */
+#define SIM_BASE                                 (0x40026000u)
+/** Peripheral SIM base pointer */
+#define SIM                                      ((SIM_Type *)SIM_BASE)
+/** Array initializer of SIM peripheral base addresses */
+#define SIM_BASE_ADDRS                           { SIM_BASE }
+/** Array initializer of SIM peripheral base pointers */
+#define SIM_BASE_PTRS                            { SIM }
+
+/*!
+ * @}
+ */ /* end of group SIM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SMC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SMC_Peripheral_Access_Layer SMC Peripheral Access Layer
+ * @{
+ */
+
+/** SMC - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t PMPROT;                            /**< Power Mode Protection register, offset: 0x8 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t PMCTRL;                            /**< Power Mode Control register, offset: 0x10 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t PMSTAT;                            /**< Power Mode Status register, offset: 0x18 */
+       uint8_t RESERVED_2[4];
+  __I  uint32_t SRS;                               /**< System Reset Status, offset: 0x20 */
+  __IO uint32_t RPC;                               /**< Reset Pin Control, offset: 0x24 */
+  __IO uint32_t SSRS;                              /**< Sticky System Reset Status, offset: 0x28 */
+  __IO uint32_t SRIE;                              /**< System Reset Interrupt Enable, offset: 0x2C */
+  __IO uint32_t SRIF;                              /**< System Reset Interrupt Flag, offset: 0x30 */
+       uint8_t RESERVED_3[12];
+  __IO uint32_t MR;                                /**< Mode Register, offset: 0x40 */
+       uint8_t RESERVED_4[12];
+  __IO uint32_t FM;                                /**< Force Mode Register, offset: 0x50 */
+       uint8_t RESERVED_5[12];
+  __IO uint32_t SRAMLPR;                           /**< SRAM Low Power Register, offset: 0x60 */
+  __IO uint32_t SRAMDSR;                           /**< SRAM Deep Sleep Register, offset: 0x64 */
+} SMC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SMC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SMC_Register_Masks SMC Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SMC_VERID_FEATURE_MASK                   (0xFFFFU)
+#define SMC_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000010101011..Default features supported
+ */
+#define SMC_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_VERID_FEATURE_SHIFT)) & SMC_VERID_FEATURE_MASK)
+#define SMC_VERID_MINOR_MASK                     (0xFF0000U)
+#define SMC_VERID_MINOR_SHIFT                    (16U)
+#define SMC_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_VERID_MINOR_SHIFT)) & SMC_VERID_MINOR_MASK)
+#define SMC_VERID_MAJOR_MASK                     (0xFF000000U)
+#define SMC_VERID_MAJOR_SHIFT                    (24U)
+#define SMC_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_VERID_MAJOR_SHIFT)) & SMC_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define SMC_PARAM_PWRD_INDPT_MASK                (0x1U)
+#define SMC_PARAM_PWRD_INDPT_SHIFT               (0U)
+#define SMC_PARAM_PWRD_INDPT(x)                  (((uint32_t)(((uint32_t)(x)) << SMC_PARAM_PWRD_INDPT_SHIFT)) & SMC_PARAM_PWRD_INDPT_MASK)
+/*! @} */
+
+/*! @name PMPROT - Power Mode Protection register */
+/*! @{ */
+#define SMC_PMPROT_AVLLS_MASK                    (0x3U)
+#define SMC_PMPROT_AVLLS_SHIFT                   (0U)
+/*! AVLLS - Allow Very-Low-Leakage Stop Mode
+ *  0b00..VLLS mode is not allowed
+ *  0b01..VLLS0/1 mode is allowed
+ *  0b10..VLLS2/3 mode is allowed
+ *  0b11..VLLS0/1/2/3 mode is allowed
+ */
+#define SMC_PMPROT_AVLLS(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AVLLS_SHIFT)) & SMC_PMPROT_AVLLS_MASK)
+#define SMC_PMPROT_ALLS_MASK                     (0x8U)
+#define SMC_PMPROT_ALLS_SHIFT                    (3U)
+/*! ALLS - Allow Low-Leakage Stop Mode
+ *  0b0..LLS is not allowed
+ *  0b1..LLS is allowed
+ */
+#define SMC_PMPROT_ALLS(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_ALLS_SHIFT)) & SMC_PMPROT_ALLS_MASK)
+#define SMC_PMPROT_AVLP_MASK                     (0x20U)
+#define SMC_PMPROT_AVLP_SHIFT                    (5U)
+/*! AVLP - Allow Very-Low-Power Modes
+ *  0b0..VLPR, VLPW, and VLPS are not allowed.
+ *  0b1..VLPR, VLPW, and VLPS are allowed.
+ */
+#define SMC_PMPROT_AVLP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AVLP_SHIFT)) & SMC_PMPROT_AVLP_MASK)
+#define SMC_PMPROT_AHSRUN_MASK                   (0x80U)
+#define SMC_PMPROT_AHSRUN_SHIFT                  (7U)
+/*! AHSRUN - Allow High Speed Run mode
+ *  0b0..HSRUN is not allowed
+ *  0b1..HSRUN is allowed
+ */
+#define SMC_PMPROT_AHSRUN(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMPROT_AHSRUN_SHIFT)) & SMC_PMPROT_AHSRUN_MASK)
+/*! @} */
+
+/*! @name PMCTRL - Power Mode Control register */
+/*! @{ */
+#define SMC_PMCTRL_STOPM_MASK                    (0x7U)
+#define SMC_PMCTRL_STOPM_SHIFT                   (0U)
+/*! STOPM - Stop Mode Control
+ *  0b000..Normal Stop (STOP)
+ *  0b001..Reserved
+ *  0b010..Very-Low-Power Stop (VLPS)
+ *  0b011..Low-Leakage Stop (LLS)
+ *  0b100..Very-Low-Leakage Stop with SRAM retention(VLLS2/3)
+ *  0b101..Reserved
+ *  0b110..Very-Low-Leakage Stop without SRAM retention (VLLS0/1)
+ *  0b111..Reserved
+ */
+#define SMC_PMCTRL_STOPM(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_STOPM_SHIFT)) & SMC_PMCTRL_STOPM_MASK)
+#define SMC_PMCTRL_RUNM_MASK                     (0x300U)
+#define SMC_PMCTRL_RUNM_SHIFT                    (8U)
+/*! RUNM - Run Mode Control
+ *  0b00..Normal Run mode (RUN)
+ *  0b01..Reserved
+ *  0b10..Very-Low-Power Run mode (VLPR)
+ *  0b11..High Speed Run mode (HSRUN)
+ */
+#define SMC_PMCTRL_RUNM(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_RUNM_SHIFT)) & SMC_PMCTRL_RUNM_MASK)
+#define SMC_PMCTRL_PSTOPO_MASK                   (0x30000U)
+#define SMC_PMCTRL_PSTOPO_SHIFT                  (16U)
+/*! PSTOPO - Partial Stop Option
+ *  0b00..STOP - Normal Stop mode
+ *  0b01..PSTOP1 - Partial Stop with system and bus clock disabled
+ *  0b10..PSTOP2 - Partial Stop with system clock disabled and bus clock enabled
+ *  0b11..PSTOP3 - Partial Stop with system clock enabled and bus clock enabled
+ */
+#define SMC_PMCTRL_PSTOPO(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMCTRL_PSTOPO_SHIFT)) & SMC_PMCTRL_PSTOPO_MASK)
+/*! @} */
+
+/*! @name PMSTAT - Power Mode Status register */
+/*! @{ */
+#define SMC_PMSTAT_PMSTAT_MASK                   (0xFFU)
+#define SMC_PMSTAT_PMSTAT_SHIFT                  (0U)
+/*! PMSTAT - Power Mode Status
+ *  0b00000001..Current power mode is RUN.
+ *  0b00000010..Current power mode is any STOP mode.
+ *  0b00000100..Current power mode is VLPR.
+ *  0b10000000..Current power mode is HSRUN
+ */
+#define SMC_PMSTAT_PMSTAT(x)                     (((uint32_t)(((uint32_t)(x)) << SMC_PMSTAT_PMSTAT_SHIFT)) & SMC_PMSTAT_PMSTAT_MASK)
+#define SMC_PMSTAT_STOPSTAT_MASK                 (0xFF000000U)
+#define SMC_PMSTAT_STOPSTAT_SHIFT                (24U)
+#define SMC_PMSTAT_STOPSTAT(x)                   (((uint32_t)(((uint32_t)(x)) << SMC_PMSTAT_STOPSTAT_SHIFT)) & SMC_PMSTAT_STOPSTAT_MASK)
+/*! @} */
+
+/*! @name SRS - System Reset Status */
+/*! @{ */
+#define SMC_SRS_WAKEUP_MASK                      (0x1U)
+#define SMC_SRS_WAKEUP_SHIFT                     (0U)
+/*! WAKEUP - Wakeup Reset
+ *  0b0..Reset not generated by wakeup from VLLS mode.
+ *  0b1..Reset generated by wakeup from VLLS mode.
+ */
+#define SMC_SRS_WAKEUP(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WAKEUP_SHIFT)) & SMC_SRS_WAKEUP_MASK)
+#define SMC_SRS_POR_MASK                         (0x2U)
+#define SMC_SRS_POR_SHIFT                        (1U)
+/*! POR - POR Reset
+ *  0b0..Reset not generated by POR.
+ *  0b1..Reset generated by POR.
+ */
+#define SMC_SRS_POR(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_POR_SHIFT)) & SMC_SRS_POR_MASK)
+#define SMC_SRS_LVD_MASK                         (0x4U)
+#define SMC_SRS_LVD_SHIFT                        (2U)
+/*! LVD - LVD Reset
+ *  0b0..Reset not generated by LVD.
+ *  0b1..Reset generated by LVD.
+ */
+#define SMC_SRS_LVD(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_LVD_SHIFT)) & SMC_SRS_LVD_MASK)
+#define SMC_SRS_HVD_MASK                         (0x8U)
+#define SMC_SRS_HVD_SHIFT                        (3U)
+/*! HVD - HVD Reset
+ *  0b0..Reset not generated by HVD.
+ *  0b1..Reset generated by HVD.
+ */
+#define SMC_SRS_HVD(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_HVD_SHIFT)) & SMC_SRS_HVD_MASK)
+#define SMC_SRS_WARM_MASK                        (0x10U)
+#define SMC_SRS_WARM_SHIFT                       (4U)
+/*! WARM - Warm Reset
+ *  0b0..Reset not generated by Warm Reset source.
+ *  0b1..Reset generated by Warm Reset source.
+ */
+#define SMC_SRS_WARM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WARM_SHIFT)) & SMC_SRS_WARM_MASK)
+#define SMC_SRS_FATAL_MASK                       (0x20U)
+#define SMC_SRS_FATAL_SHIFT                      (5U)
+/*! FATAL - Fatal Reset
+ *  0b0..Reset was not generated by a fatal reset source.
+ *  0b1..Reset was generated by a fatal reset source.
+ */
+#define SMC_SRS_FATAL(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_FATAL_SHIFT)) & SMC_SRS_FATAL_MASK)
+#define SMC_SRS_CORE_MASK                        (0x80U)
+#define SMC_SRS_CORE_SHIFT                       (7U)
+/*! CORE - Core Reset
+ *  0b0..Reset source was not core only reset.
+ *  0b1..Reset source was core reset and reset the core only.
+ */
+#define SMC_SRS_CORE(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE_SHIFT)) & SMC_SRS_CORE_MASK)
+#define SMC_SRS_PIN_MASK                         (0x100U)
+#define SMC_SRS_PIN_SHIFT                        (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset was not generated from the assertion of RESET_B pin.
+ *  0b1..Reset was generated from the assertion of RESET_B pin.
+ */
+#define SMC_SRS_PIN(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_PIN_SHIFT)) & SMC_SRS_PIN_MASK)
+#define SMC_SRS_MDM_MASK                         (0x200U)
+#define SMC_SRS_MDM_SHIFT                        (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset was not generated from the MDM reset request.
+ *  0b1..Reset was generated from the MDM reset request.
+ */
+#define SMC_SRS_MDM(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_MDM_SHIFT)) & SMC_SRS_MDM_MASK)
+#define SMC_SRS_RSTACK_MASK                      (0x400U)
+#define SMC_SRS_RSTACK_SHIFT                     (10U)
+/*! RSTACK - Reset Timeout
+ *  0b0..Reset not generated from Reset Controller Timeout.
+ *  0b1..Reset generated from Reset Controller Timeout.
+ */
+#define SMC_SRS_RSTACK(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_RSTACK_SHIFT)) & SMC_SRS_RSTACK_MASK)
+#define SMC_SRS_STOPACK_MASK                     (0x800U)
+#define SMC_SRS_STOPACK_SHIFT                    (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset not generated by Stop Controller Timeout.
+ *  0b1..Reset generated by Stop Controller Timeout.
+ */
+#define SMC_SRS_STOPACK(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRS_STOPACK_SHIFT)) & SMC_SRS_STOPACK_MASK)
+#define SMC_SRS_SCG_MASK                         (0x1000U)
+#define SMC_SRS_SCG_SHIFT                        (12U)
+/*! SCG - SCG Reset
+ *  0b0..Reset is not generated from an SCG loss of lock or loss of clock.
+ *  0b1..Reset is generated from an SCG loss of lock or loss of clock.
+ */
+#define SMC_SRS_SCG(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRS_SCG_SHIFT)) & SMC_SRS_SCG_MASK)
+#define SMC_SRS_WDOG_MASK                        (0x2000U)
+#define SMC_SRS_WDOG_SHIFT                       (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset is not generated from the WatchDog timeout.
+ *  0b1..Reset is generated from the WatchDog timeout.
+ */
+#define SMC_SRS_WDOG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_WDOG_SHIFT)) & SMC_SRS_WDOG_MASK)
+#define SMC_SRS_SW_MASK                          (0x4000U)
+#define SMC_SRS_SW_SHIFT                         (14U)
+/*! SW - Software Reset
+ *  0b0..Reset not generated by software request from core.
+ *  0b1..Reset generated by software request from core.
+ */
+#define SMC_SRS_SW(x)                            (((uint32_t)(((uint32_t)(x)) << SMC_SRS_SW_SHIFT)) & SMC_SRS_SW_MASK)
+#define SMC_SRS_LOCKUP_MASK                      (0x8000U)
+#define SMC_SRS_LOCKUP_SHIFT                     (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset not generated by core lockup or exception.
+ *  0b1..Reset generated by core lockup or exception.
+ */
+#define SMC_SRS_LOCKUP(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRS_LOCKUP_SHIFT)) & SMC_SRS_LOCKUP_MASK)
+#define SMC_SRS_CORE0_MASK                       (0x10000U)
+#define SMC_SRS_CORE0_SHIFT                      (16U)
+/*! CORE0 - Core0 System Reset
+ *  0b0..Reset not generated from Core0 system reset source.
+ *  0b1..Reset generated from Core0 system reset source.
+ */
+#define SMC_SRS_CORE0(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE0_SHIFT)) & SMC_SRS_CORE0_MASK)
+#define SMC_SRS_CORE1_MASK                       (0x20000U)
+#define SMC_SRS_CORE1_SHIFT                      (17U)
+/*! CORE1 - Core1 System Reset
+ *  0b0..Reset not generated from Core1 system reset source.
+ *  0b1..Reset generated from Core1 system reset source.
+ */
+#define SMC_SRS_CORE1(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRS_CORE1_SHIFT)) & SMC_SRS_CORE1_MASK)
+#define SMC_SRS_JTAG_MASK                        (0x10000000U)
+#define SMC_SRS_JTAG_SHIFT                       (28U)
+/*! JTAG - JTAG System Reset
+ *  0b0..Reset not generated by JTAG system reset.
+ *  0b1..Reset generated by JTAG system reset.
+ */
+#define SMC_SRS_JTAG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRS_JTAG_SHIFT)) & SMC_SRS_JTAG_MASK)
+/*! @} */
+
+/*! @name RPC - Reset Pin Control */
+/*! @{ */
+#define SMC_RPC_FILTCFG_MASK                     (0x1FU)
+#define SMC_RPC_FILTCFG_SHIFT                    (0U)
+#define SMC_RPC_FILTCFG(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_RPC_FILTCFG_SHIFT)) & SMC_RPC_FILTCFG_MASK)
+#define SMC_RPC_FILTEN_MASK                      (0x100U)
+#define SMC_RPC_FILTEN_SHIFT                     (8U)
+/*! FILTEN - Filter Enable
+ *  0b0..Slow clock reset pin filter disabled.
+ *  0b1..Slow clock reset pin filter enabled in Run modes.
+ */
+#define SMC_RPC_FILTEN(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_RPC_FILTEN_SHIFT)) & SMC_RPC_FILTEN_MASK)
+#define SMC_RPC_LPOFEN_MASK                      (0x200U)
+#define SMC_RPC_LPOFEN_SHIFT                     (9U)
+/*! LPOFEN - LPO Filter Enable
+ *  0b0..LPO clock reset pin filter disabled.
+ *  0b1..LPO clock reset pin filter enabled in all modes.
+ */
+#define SMC_RPC_LPOFEN(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_RPC_LPOFEN_SHIFT)) & SMC_RPC_LPOFEN_MASK)
+/*! @} */
+
+/*! @name SSRS - Sticky System Reset Status */
+/*! @{ */
+#define SMC_SSRS_WAKEUP_MASK                     (0x1U)
+#define SMC_SSRS_WAKEUP_SHIFT                    (0U)
+/*! WAKEUP - Wakeup Reset
+ *  0b0..Reset not generated by wakeup from VLLS mode.
+ *  0b1..Reset generated by wakeup from VLLS mode.
+ */
+#define SMC_SSRS_WAKEUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WAKEUP_SHIFT)) & SMC_SSRS_WAKEUP_MASK)
+#define SMC_SSRS_POR_MASK                        (0x2U)
+#define SMC_SSRS_POR_SHIFT                       (1U)
+/*! POR - POR Reset
+ *  0b0..Reset not generated by POR.
+ *  0b1..Reset generated by POR.
+ */
+#define SMC_SSRS_POR(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_POR_SHIFT)) & SMC_SSRS_POR_MASK)
+#define SMC_SSRS_LVD_MASK                        (0x4U)
+#define SMC_SSRS_LVD_SHIFT                       (2U)
+/*! LVD - LVD Reset
+ *  0b0..Reset not generated by LVD.
+ *  0b1..Reset generated by LVD.
+ */
+#define SMC_SSRS_LVD(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_LVD_SHIFT)) & SMC_SSRS_LVD_MASK)
+#define SMC_SSRS_HVD_MASK                        (0x8U)
+#define SMC_SSRS_HVD_SHIFT                       (3U)
+/*! HVD - HVD Reset
+ *  0b0..Reset not generated by HVD.
+ *  0b1..Reset generated by HVD.
+ */
+#define SMC_SSRS_HVD(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_HVD_SHIFT)) & SMC_SSRS_HVD_MASK)
+#define SMC_SSRS_WARM_MASK                       (0x10U)
+#define SMC_SSRS_WARM_SHIFT                      (4U)
+/*! WARM - Warm Reset
+ *  0b0..Reset not generated by system reset source.
+ *  0b1..Reset generated by system reset source.
+ */
+#define SMC_SSRS_WARM(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WARM_SHIFT)) & SMC_SSRS_WARM_MASK)
+#define SMC_SSRS_FATAL_MASK                      (0x20U)
+#define SMC_SSRS_FATAL_SHIFT                     (5U)
+/*! FATAL - Fatal Reset
+ *  0b0..Reset was not generated by a fatal reset source.
+ *  0b1..Reset was generated by a fatal reset source.
+ */
+#define SMC_SSRS_FATAL(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_FATAL_SHIFT)) & SMC_SSRS_FATAL_MASK)
+#define SMC_SSRS_PIN_MASK                        (0x100U)
+#define SMC_SSRS_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset was not generated from the RESET_B pin.
+ *  0b1..Reset was generated from the RESET_B pin.
+ */
+#define SMC_SSRS_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_PIN_SHIFT)) & SMC_SSRS_PIN_MASK)
+#define SMC_SSRS_MDM_MASK                        (0x200U)
+#define SMC_SSRS_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset was not generated from the MDM reset request.
+ *  0b1..Reset was generated from the MDM reset request.
+ */
+#define SMC_SSRS_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_MDM_SHIFT)) & SMC_SSRS_MDM_MASK)
+#define SMC_SSRS_RSTACK_MASK                     (0x400U)
+#define SMC_SSRS_RSTACK_SHIFT                    (10U)
+/*! RSTACK - Reset Timeout
+ *  0b0..Reset not generated from Reset Controller Timeout.
+ *  0b1..Reset generated from Reset Controller Timeout.
+ */
+#define SMC_SSRS_RSTACK(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_RSTACK_SHIFT)) & SMC_SSRS_RSTACK_MASK)
+#define SMC_SSRS_STOPACK_MASK                    (0x800U)
+#define SMC_SSRS_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset not generated by Stop Controller Timeout.
+ *  0b1..Reset generated by Stop Controller Timeout.
+ */
+#define SMC_SSRS_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_STOPACK_SHIFT)) & SMC_SSRS_STOPACK_MASK)
+#define SMC_SSRS_SCG_MASK                        (0x1000U)
+#define SMC_SSRS_SCG_SHIFT                       (12U)
+/*! SCG - SCG Reset
+ *  0b0..Reset is not generated from an SCG loss of lock or loss of clock.
+ *  0b1..Reset is generated from an SCG loss of lock or loss of clock.
+ */
+#define SMC_SSRS_SCG(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_SCG_SHIFT)) & SMC_SSRS_SCG_MASK)
+#define SMC_SSRS_WDOG_MASK                       (0x2000U)
+#define SMC_SSRS_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset is not generated from the WatchDog timeout.
+ *  0b1..Reset is generated from the WatchDog timeout.
+ */
+#define SMC_SSRS_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_WDOG_SHIFT)) & SMC_SSRS_WDOG_MASK)
+#define SMC_SSRS_SW_MASK                         (0x4000U)
+#define SMC_SSRS_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Reset not generated by software request from core.
+ *  0b1..Reset generated by software request from core.
+ */
+#define SMC_SSRS_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_SW_SHIFT)) & SMC_SSRS_SW_MASK)
+#define SMC_SSRS_LOCKUP_MASK                     (0x8000U)
+#define SMC_SSRS_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset not generated by core lockup.
+ *  0b1..Reset generated by core lockup.
+ */
+#define SMC_SSRS_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_LOCKUP_SHIFT)) & SMC_SSRS_LOCKUP_MASK)
+#define SMC_SSRS_CORE0_MASK                      (0x10000U)
+#define SMC_SSRS_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Reset not generated from Core0 reset source.
+ *  0b1..Reset generated from Core0 reset source.
+ */
+#define SMC_SSRS_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_CORE0_SHIFT)) & SMC_SSRS_CORE0_MASK)
+#define SMC_SSRS_CORE1_MASK                      (0x20000U)
+#define SMC_SSRS_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Reset not generated from Core1 reset source.
+ *  0b1..Reset generated from Core1 reset source.
+ */
+#define SMC_SSRS_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_CORE1_SHIFT)) & SMC_SSRS_CORE1_MASK)
+#define SMC_SSRS_JTAG_MASK                       (0x10000000U)
+#define SMC_SSRS_JTAG_SHIFT                      (28U)
+/*! JTAG - JTAG System Reset
+ *  0b0..Reset not generated by JTAG system reset.
+ *  0b1..Reset generated by JTAG system reset.
+ */
+#define SMC_SSRS_JTAG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SSRS_JTAG_SHIFT)) & SMC_SSRS_JTAG_MASK)
+/*! @} */
+
+/*! @name SRIE - System Reset Interrupt Enable */
+/*! @{ */
+#define SMC_SRIE_PIN_MASK                        (0x100U)
+#define SMC_SRIE_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_PIN_SHIFT)) & SMC_SRIE_PIN_MASK)
+#define SMC_SRIE_MDM_MASK                        (0x200U)
+#define SMC_SRIE_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_MDM_SHIFT)) & SMC_SRIE_MDM_MASK)
+#define SMC_SRIE_STOPACK_MASK                    (0x800U)
+#define SMC_SRIE_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_STOPACK_SHIFT)) & SMC_SRIE_STOPACK_MASK)
+#define SMC_SRIE_WDOG_MASK                       (0x2000U)
+#define SMC_SRIE_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_WDOG_SHIFT)) & SMC_SRIE_WDOG_MASK)
+#define SMC_SRIE_SW_MASK                         (0x4000U)
+#define SMC_SRIE_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_SW_SHIFT)) & SMC_SRIE_SW_MASK)
+#define SMC_SRIE_LOCKUP_MASK                     (0x8000U)
+#define SMC_SRIE_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_LOCKUP_SHIFT)) & SMC_SRIE_LOCKUP_MASK)
+#define SMC_SRIE_CORE0_MASK                      (0x10000U)
+#define SMC_SRIE_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_CORE0_SHIFT)) & SMC_SRIE_CORE0_MASK)
+#define SMC_SRIE_CORE1_MASK                      (0x20000U)
+#define SMC_SRIE_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Interrupt disabled.
+ *  0b1..Interrupt enabled.
+ */
+#define SMC_SRIE_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIE_CORE1_SHIFT)) & SMC_SRIE_CORE1_MASK)
+/*! @} */
+
+/*! @name SRIF - System Reset Interrupt Flag */
+/*! @{ */
+#define SMC_SRIF_PIN_MASK                        (0x100U)
+#define SMC_SRIF_PIN_SHIFT                       (8U)
+/*! PIN - Pin Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_PIN(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_PIN_SHIFT)) & SMC_SRIF_PIN_MASK)
+#define SMC_SRIF_MDM_MASK                        (0x200U)
+#define SMC_SRIF_MDM_SHIFT                       (9U)
+/*! MDM - MDM Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_MDM(x)                          (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_MDM_SHIFT)) & SMC_SRIF_MDM_MASK)
+#define SMC_SRIF_STOPACK_MASK                    (0x800U)
+#define SMC_SRIF_STOPACK_SHIFT                   (11U)
+/*! STOPACK - Stop Timeout Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_STOPACK(x)                      (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_STOPACK_SHIFT)) & SMC_SRIF_STOPACK_MASK)
+#define SMC_SRIF_WDOG_MASK                       (0x2000U)
+#define SMC_SRIF_WDOG_SHIFT                      (13U)
+/*! WDOG - Watchdog Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_WDOG(x)                         (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_WDOG_SHIFT)) & SMC_SRIF_WDOG_MASK)
+#define SMC_SRIF_SW_MASK                         (0x4000U)
+#define SMC_SRIF_SW_SHIFT                        (14U)
+/*! SW - Software Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_SW(x)                           (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_SW_SHIFT)) & SMC_SRIF_SW_MASK)
+#define SMC_SRIF_LOCKUP_MASK                     (0x8000U)
+#define SMC_SRIF_LOCKUP_SHIFT                    (15U)
+/*! LOCKUP - Lockup Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_LOCKUP(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_LOCKUP_SHIFT)) & SMC_SRIF_LOCKUP_MASK)
+#define SMC_SRIF_CORE0_MASK                      (0x10000U)
+#define SMC_SRIF_CORE0_SHIFT                     (16U)
+/*! CORE0 - Core0 Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_CORE0(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_CORE0_SHIFT)) & SMC_SRIF_CORE0_MASK)
+#define SMC_SRIF_CORE1_MASK                      (0x20000U)
+#define SMC_SRIF_CORE1_SHIFT                     (17U)
+/*! CORE1 - Core1 Reset
+ *  0b0..Reset source not pending.
+ *  0b1..Reset source pending.
+ */
+#define SMC_SRIF_CORE1(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_SRIF_CORE1_SHIFT)) & SMC_SRIF_CORE1_MASK)
+/*! @} */
+
+/*! @name MR - Mode Register */
+/*! @{ */
+#define SMC_MR_BOOTCFG_MASK                      (0x3U)
+#define SMC_MR_BOOTCFG_SHIFT                     (0U)
+/*! BOOTCFG - Boot Configuration
+ *  0b00..Boot from Flash.
+ *  0b01..Boot from ROM due to BOOTCFG0 pin assertion.
+ *  0b10..Boot from ROM due to FOPT configuration.
+ *  0b11..Boot from ROM due to both BOOTCFG0 pin assertion and FOPT configuration.
+ */
+#define SMC_MR_BOOTCFG(x)                        (((uint32_t)(((uint32_t)(x)) << SMC_MR_BOOTCFG_SHIFT)) & SMC_MR_BOOTCFG_MASK)
+/*! @} */
+
+/*! @name FM - Force Mode Register */
+/*! @{ */
+#define SMC_FM_FORCECFG_MASK                     (0x3U)
+#define SMC_FM_FORCECFG_SHIFT                    (0U)
+/*! FORCECFG - Boot Configuration
+ *  0b00..No effect.
+ *  0b01..Assert corresponding bit in Mode Register on next system reset.
+ */
+#define SMC_FM_FORCECFG(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_FM_FORCECFG_SHIFT)) & SMC_FM_FORCECFG_MASK)
+/*! @} */
+
+/*! @name SRAMLPR - SRAM Low Power Register */
+/*! @{ */
+#define SMC_SRAMLPR_LPE_MASK                     (0xFFFFFFFFU)
+#define SMC_SRAMLPR_LPE_SHIFT                    (0U)
+#define SMC_SRAMLPR_LPE(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRAMLPR_LPE_SHIFT)) & SMC_SRAMLPR_LPE_MASK)
+/*! @} */
+
+/*! @name SRAMDSR - SRAM Deep Sleep Register */
+/*! @{ */
+#define SMC_SRAMDSR_DSE_MASK                     (0xFFFFFFFFU)
+#define SMC_SRAMDSR_DSE_SHIFT                    (0U)
+#define SMC_SRAMDSR_DSE(x)                       (((uint32_t)(((uint32_t)(x)) << SMC_SRAMDSR_DSE_SHIFT)) & SMC_SRAMDSR_DSE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SMC_Register_Masks */
+
+
+/* SMC - Peripheral instance base addresses */
+/** Peripheral SMC0 base address */
+#define SMC0_BASE                                (0x40020000u)
+/** Peripheral SMC0 base pointer */
+#define SMC0                                     ((SMC_Type *)SMC0_BASE)
+/** Peripheral SMC1 base address */
+#define SMC1_BASE                                (0x41020000u)
+/** Peripheral SMC1 base pointer */
+#define SMC1                                     ((SMC_Type *)SMC1_BASE)
+/** Array initializer of SMC peripheral base addresses */
+#define SMC_BASE_ADDRS                           { SMC0_BASE, SMC1_BASE }
+/** Array initializer of SMC peripheral base pointers */
+#define SMC_BASE_PTRS                            { SMC0, SMC1 }
+/** Interrupt vectors for the SMC peripheral type */
+#define SMC_IRQS                                 { NotAvail_IRQn, CMC1_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SMC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- SPM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SPM_Peripheral_Access_Layer SPM Peripheral Access Layer
+ * @{
+ */
+
+/** SPM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+       uint8_t RESERVED_0[4];
+  __I  uint32_t RSR;                               /**< Regulator Status Register, offset: 0x8 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t RCTRL;                             /**< Run Control Register, offset: 0x10 */
+  __IO uint32_t LPCTRL;                            /**< Low Power Control Register, offset: 0x14 */
+       uint8_t RESERVED_2[232];
+  __IO uint32_t CORERCNFG;                         /**< CORE LDO RUN Configuration Register, offset: 0x100 */
+  __IO uint32_t CORELPCNFG;                        /**< CORE LDO Low Power Configuration register, offset: 0x104 */
+  __IO uint32_t CORESC;                            /**< Core LDO Status And Control register, offset: 0x108 */
+  __IO uint32_t LVDSC1;                            /**< Low Voltage Detect Status and Control 1 register, offset: 0x10C */
+  __IO uint32_t LVDSC2;                            /**< Low Voltage Detect Status and Control 2 register, offset: 0x110 */
+  __IO uint32_t HVDSC1;                            /**< High Voltage Detect Status And Control 1 register, offset: 0x114 */
+       uint8_t RESERVED_3[232];
+  __IO uint32_t RFLDOLPCNFG;                       /**< RF LDO Low Power Configuration register, offset: 0x200 */
+  __IO uint32_t RFLDOSC;                           /**< RF LDO Status And Control register, offset: 0x204 */
+       uint8_t RESERVED_4[252];
+  __IO uint32_t DCDCSC;                            /**< DCDC Status Control Register, offset: 0x304 */
+       uint8_t RESERVED_5[4];
+  __IO uint32_t DCDCC1;                            /**< DCDC Control Register 1, offset: 0x30C */
+  __IO uint32_t DCDCC2;                            /**< DCDC Control Register 2, offset: 0x310 */
+  __IO uint32_t DCDCC3;                            /**< DCDC Control Register 3, offset: 0x314 */
+  __IO uint32_t DCDCC4;                            /**< DCDC Control Register 4, offset: 0x318 */
+       uint8_t RESERVED_6[4];
+  __IO uint32_t DCDCC6;                            /**< DCDC Control Register 6, offset: 0x320 */
+       uint8_t RESERVED_7[232];
+  __IO uint32_t LPREQPINCNTRL;                     /**< LP Request Pin Control Register, offset: 0x40C */
+} SPM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- SPM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SPM_Register_Masks SPM Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define SPM_VERID_FEATURE_MASK                   (0xFFFFU)
+#define SPM_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Specification Number
+ *  0b0000000000000000..Standard features implemented.
+ */
+#define SPM_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_VERID_FEATURE_SHIFT)) & SPM_VERID_FEATURE_MASK)
+#define SPM_VERID_MINOR_MASK                     (0xFF0000U)
+#define SPM_VERID_MINOR_SHIFT                    (16U)
+#define SPM_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_VERID_MINOR_SHIFT)) & SPM_VERID_MINOR_MASK)
+#define SPM_VERID_MAJOR_MASK                     (0xFF000000U)
+#define SPM_VERID_MAJOR_SHIFT                    (24U)
+#define SPM_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_VERID_MAJOR_SHIFT)) & SPM_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name RSR - Regulator Status Register */
+/*! @{ */
+#define SPM_RSR_REGSEL_MASK                      (0x7U)
+#define SPM_RSR_REGSEL_SHIFT                     (0U)
+#define SPM_RSR_REGSEL(x)                        (((uint32_t)(((uint32_t)(x)) << SPM_RSR_REGSEL_SHIFT)) & SPM_RSR_REGSEL_MASK)
+#define SPM_RSR_MCUPMSTAT_MASK                   (0x1F0000U)
+#define SPM_RSR_MCUPMSTAT_SHIFT                  (16U)
+/*! MCUPMSTAT - MCU Power Mode Status
+ *  0b00000..Reserved
+ *  0b00001..Last Low Power mode is STOP.
+ *  0b00010..Last Low Power mode is VLPS.
+ *  0b00100..Last Low Power mode is LLS.
+ *  0b01000..Last Low Power mode is VLLS23.
+ *  0b10000..Last Low Power mode is VLLS01.
+ */
+#define SPM_RSR_MCUPMSTAT(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_RSR_MCUPMSTAT_SHIFT)) & SPM_RSR_MCUPMSTAT_MASK)
+#define SPM_RSR_RFPMSTAT_MASK                    (0x7000000U)
+#define SPM_RSR_RFPMSTAT_SHIFT                   (24U)
+/*! RFPMSTAT - RADIO Power Mode Status
+ *  0b000..Reserved
+ *  0b001..Current Power mode is VLPS.
+ *  0b010..Current Power mode is LLS.
+ *  0b100..Current Power mode is VLLS.
+ */
+#define SPM_RSR_RFPMSTAT(x)                      (((uint32_t)(((uint32_t)(x)) << SPM_RSR_RFPMSTAT_SHIFT)) & SPM_RSR_RFPMSTAT_MASK)
+#define SPM_RSR_RFRUNFORCE_MASK                  (0x8000000U)
+#define SPM_RSR_RFRUNFORCE_SHIFT                 (27U)
+/*! RFRUNFORCE - RADIO Run Force Power Mode Status
+ *  0b0..Radio Run Force Regulator Off
+ *  0b1..Radio Run Force Regulator On.
+ */
+#define SPM_RSR_RFRUNFORCE(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RSR_RFRUNFORCE_SHIFT)) & SPM_RSR_RFRUNFORCE_MASK)
+/*! @} */
+
+/*! @name RCTRL - Run Control Register */
+/*! @{ */
+#define SPM_RCTRL_REGSEL_MASK                    (0x7U)
+#define SPM_RCTRL_REGSEL_SHIFT                   (0U)
+#define SPM_RCTRL_REGSEL(x)                      (((uint32_t)(((uint32_t)(x)) << SPM_RCTRL_REGSEL_SHIFT)) & SPM_RCTRL_REGSEL_MASK)
+/*! @} */
+
+/*! @name LPCTRL - Low Power Control Register */
+/*! @{ */
+#define SPM_LPCTRL_REGSEL_MASK                   (0x7U)
+#define SPM_LPCTRL_REGSEL_SHIFT                  (0U)
+#define SPM_LPCTRL_REGSEL(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_LPCTRL_REGSEL_SHIFT)) & SPM_LPCTRL_REGSEL_MASK)
+/*! @} */
+
+/*! @name CORERCNFG - CORE LDO RUN Configuration Register */
+/*! @{ */
+#define SPM_CORERCNFG_VDDIOVDDMEN_MASK           (0x10000U)
+#define SPM_CORERCNFG_VDDIOVDDMEN_SHIFT          (16U)
+/*! VDDIOVDDMEN - VDDIOVDDMEN
+ *  0b0..VDDIO voltage monitor disabled in run modes.
+ *  0b1..VDDIO voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_VDDIOVDDMEN(x)             (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_VDDIOVDDMEN_SHIFT)) & SPM_CORERCNFG_VDDIOVDDMEN_MASK)
+#define SPM_CORERCNFG_USBVDDMEN_MASK             (0x20000U)
+#define SPM_CORERCNFG_USBVDDMEN_SHIFT            (17U)
+/*! USBVDDMEN - USBVDDMEN
+ *  0b0..USB voltage monitor disabled in run modes.
+ *  0b1..USB voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_USBVDDMEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_USBVDDMEN_SHIFT)) & SPM_CORERCNFG_USBVDDMEN_MASK)
+#define SPM_CORERCNFG_RTCVDDMEN_MASK             (0x40000U)
+#define SPM_CORERCNFG_RTCVDDMEN_SHIFT            (18U)
+/*! RTCVDDMEN - RTCVDDMEN
+ *  0b0..RTC voltage monitor disabled in run modes.
+ *  0b1..RTC voltage monitor enabled in run modes.
+ */
+#define SPM_CORERCNFG_RTCVDDMEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORERCNFG_RTCVDDMEN_SHIFT)) & SPM_CORERCNFG_RTCVDDMEN_MASK)
+/*! @} */
+
+/*! @name CORELPCNFG - CORE LDO Low Power Configuration register */
+/*! @{ */
+#define SPM_CORELPCNFG_LPSEL_MASK                (0x2U)
+#define SPM_CORELPCNFG_LPSEL_SHIFT               (1U)
+/*! LPSEL - LPSEL
+ *  0b0..Core LDO enters low power state in VLP/Stop modes.
+ *  0b1..Core LDO remains in high power state in VLP/Stop modes. If LPSEL = 1 in a low power mode then BGEN must also be set to 1.
+ */
+#define SPM_CORELPCNFG_LPSEL(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPSEL_SHIFT)) & SPM_CORELPCNFG_LPSEL_MASK)
+#define SPM_CORELPCNFG_BGEN_MASK                 (0x4U)
+#define SPM_CORELPCNFG_BGEN_SHIFT                (2U)
+/*! BGEN - Bandgap Enable In Low Power Mode Operation
+ *  0b0..Bandgap is disabled in STOP/VLP/LLS and VLLS modes.
+ *  0b1..Bandgap remains enabled in STOP/VLP/LLS and VLLS modes.
+ */
+#define SPM_CORELPCNFG_BGEN(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGEN_SHIFT)) & SPM_CORELPCNFG_BGEN_MASK)
+#define SPM_CORELPCNFG_BGBEN_MASK                (0x8U)
+#define SPM_CORELPCNFG_BGBEN_SHIFT               (3U)
+/*! BGBEN - Bandgap Buffer Enable
+ *  0b0..Bandgap buffer not enabled
+ *  0b1..Bandgap buffer enabled BGEN must be set when this bit is also set.
+ */
+#define SPM_CORELPCNFG_BGBEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGBEN_SHIFT)) & SPM_CORELPCNFG_BGBEN_MASK)
+#define SPM_CORELPCNFG_BGBDS_MASK                (0x10U)
+#define SPM_CORELPCNFG_BGBDS_SHIFT               (4U)
+/*! BGBDS - Bandgap Buffer Drive Select
+ *  0b0..Low Drive
+ *  0b1..High Drive
+ */
+#define SPM_CORELPCNFG_BGBDS(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_BGBDS_SHIFT)) & SPM_CORELPCNFG_BGBDS_MASK)
+#define SPM_CORELPCNFG_LPOEN_MASK                (0x80U)
+#define SPM_CORELPCNFG_LPOEN_SHIFT               (7U)
+/*! LPOEN - LPO Enabled
+ *  0b0..LPO is disabled in VLLS modes.
+ *  0b1..LPO remains enabled in VLLS modes.
+ */
+#define SPM_CORELPCNFG_LPOEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPOEN_SHIFT)) & SPM_CORELPCNFG_LPOEN_MASK)
+#define SPM_CORELPCNFG_POREN_MASK                (0x100U)
+#define SPM_CORELPCNFG_POREN_SHIFT               (8U)
+/*! POREN - POR Enabled
+ *  0b0..POR brownout is disabled in VLLS0/1 mode.
+ *  0b1..POR brownout remains enabled in VLLS0/1 mode.
+ */
+#define SPM_CORELPCNFG_POREN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_POREN_SHIFT)) & SPM_CORELPCNFG_POREN_MASK)
+#define SPM_CORELPCNFG_LVDEN_MASK                (0x200U)
+#define SPM_CORELPCNFG_LVDEN_SHIFT               (9U)
+/*! LVDEN - LVD Enabled
+ *  0b0..LVD/HVD is disabled in low power modes.
+ *  0b1..LVD/HVD remains enabled in low power modes. BGEN must be set when this bit is also set.
+ */
+#define SPM_CORELPCNFG_LVDEN(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LVDEN_SHIFT)) & SPM_CORELPCNFG_LVDEN_MASK)
+#define SPM_CORELPCNFG_LPHIDRIVE_MASK            (0x4000U)
+#define SPM_CORELPCNFG_LPHIDRIVE_SHIFT           (14U)
+/*! LPHIDRIVE - LPHIDRIVE
+ *  0b0..High Drive disabled.
+ *  0b1..High Drive enabled.
+ */
+#define SPM_CORELPCNFG_LPHIDRIVE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_LPHIDRIVE_SHIFT)) & SPM_CORELPCNFG_LPHIDRIVE_MASK)
+#define SPM_CORELPCNFG_ALLREFEN_MASK             (0x8000U)
+#define SPM_CORELPCNFG_ALLREFEN_SHIFT            (15U)
+/*! ALLREFEN - All Reference Enable. This bit only has an affect in VLLS0/1.
+ *  0b0..All references are disabled in VLLS.
+ *  0b1..All references are enabled in VLLS0/1.
+ */
+#define SPM_CORELPCNFG_ALLREFEN(x)               (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_ALLREFEN_SHIFT)) & SPM_CORELPCNFG_ALLREFEN_MASK)
+#define SPM_CORELPCNFG_VDDIOVDDMEN_MASK          (0x10000U)
+#define SPM_CORELPCNFG_VDDIOVDDMEN_SHIFT         (16U)
+/*! VDDIOVDDMEN - VDDIOVDDMEN
+ *  0b0..VDDIO voltage monitor disabled in lp modes.
+ *  0b1..VDDIO voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_VDDIOVDDMEN(x)            (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_VDDIOVDDMEN_SHIFT)) & SPM_CORELPCNFG_VDDIOVDDMEN_MASK)
+#define SPM_CORELPCNFG_USBVDDMEN_MASK            (0x20000U)
+#define SPM_CORELPCNFG_USBVDDMEN_SHIFT           (17U)
+/*! USBVDDMEN - USBVDDMEN
+ *  0b0..USB voltage monitor disabled in lp modes.
+ *  0b1..USB voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_USBVDDMEN(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_USBVDDMEN_SHIFT)) & SPM_CORELPCNFG_USBVDDMEN_MASK)
+#define SPM_CORELPCNFG_RTCVDDMEN_MASK            (0x40000U)
+#define SPM_CORELPCNFG_RTCVDDMEN_SHIFT           (18U)
+/*! RTCVDDMEN - RTCVDDMEN
+ *  0b0..RTC voltage monitor disabled in lp modes.
+ *  0b1..RTC voltage monitor enabled in lp modes. Note: voltage monitor is always disabled in VLLS0/1 modes.
+ */
+#define SPM_CORELPCNFG_RTCVDDMEN(x)              (((uint32_t)(((uint32_t)(x)) << SPM_CORELPCNFG_RTCVDDMEN_SHIFT)) & SPM_CORELPCNFG_RTCVDDMEN_MASK)
+/*! @} */
+
+/*! @name CORESC - Core LDO Status And Control register */
+/*! @{ */
+#define SPM_CORESC_REGONS_MASK                   (0x4U)
+#define SPM_CORESC_REGONS_SHIFT                  (2U)
+/*! REGONS - CORE LDO Regulator in Run Regulation Status
+ *  0b0..Regulator is in low power state or in transition to/from it.
+ *  0b1..Regulator is in high power state.
+ */
+#define SPM_CORESC_REGONS(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_REGONS_SHIFT)) & SPM_CORESC_REGONS_MASK)
+#define SPM_CORESC_ACKISO_MASK                   (0x8U)
+#define SPM_CORESC_ACKISO_SHIFT                  (3U)
+/*! ACKISO - Acknowledge Isolation
+ *  0b0..Peripherals and I/O pads are in normal run state.
+ *  0b1..Certain peripherals and I/O pads are in a isolated and latched state.
+ */
+#define SPM_CORESC_ACKISO(x)                     (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_ACKISO_SHIFT)) & SPM_CORESC_ACKISO_MASK)
+#define SPM_CORESC_TRIM_MASK                     (0x3F00U)
+#define SPM_CORESC_TRIM_SHIFT                    (8U)
+#define SPM_CORESC_TRIM(x)                       (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_TRIM_SHIFT)) & SPM_CORESC_TRIM_MASK)
+#define SPM_CORESC_VDDIOOVRIDE_MASK              (0x10000U)
+#define SPM_CORESC_VDDIOOVRIDE_SHIFT             (16U)
+/*! VDDIOOVRIDE - VDDIOOVRIDE
+ *  0b0..VDDIOOK status set to 1'b0.
+ *  0b1..VDDIOOK status set to 1'b1.
+ */
+#define SPM_CORESC_VDDIOOVRIDE(x)                (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_VDDIOOVRIDE_SHIFT)) & SPM_CORESC_VDDIOOVRIDE_MASK)
+#define SPM_CORESC_USBOVRIDE_MASK                (0x20000U)
+#define SPM_CORESC_USBOVRIDE_SHIFT               (17U)
+/*! USBOVRIDE - USBOVRIDE
+ *  0b0..USBVDDOK status set to 1'b0.
+ *  0b1..USBVDDOK status set to 1'b1.
+ */
+#define SPM_CORESC_USBOVRIDE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_USBOVRIDE_SHIFT)) & SPM_CORESC_USBOVRIDE_MASK)
+#define SPM_CORESC_RTCOVRIDE_MASK                (0x40000U)
+#define SPM_CORESC_RTCOVRIDE_SHIFT               (18U)
+/*! RTCOVRIDE - RTCOVRIDE
+ *  0b0..RTCVDDOK status set to 1'b0.
+ *  0b1..RTCVDDOK status set to 1'b1.
+ */
+#define SPM_CORESC_RTCOVRIDE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_RTCOVRIDE_SHIFT)) & SPM_CORESC_RTCOVRIDE_MASK)
+#define SPM_CORESC_VDDIOOK_MASK                  (0x1000000U)
+#define SPM_CORESC_VDDIOOK_SHIFT                 (24U)
+#define SPM_CORESC_VDDIOOK(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_VDDIOOK_SHIFT)) & SPM_CORESC_VDDIOOK_MASK)
+#define SPM_CORESC_USBVDDOK_MASK                 (0x2000000U)
+#define SPM_CORESC_USBVDDOK_SHIFT                (25U)
+#define SPM_CORESC_USBVDDOK(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_USBVDDOK_SHIFT)) & SPM_CORESC_USBVDDOK_MASK)
+#define SPM_CORESC_RTCVDDOK_MASK                 (0x4000000U)
+#define SPM_CORESC_RTCVDDOK_SHIFT                (26U)
+#define SPM_CORESC_RTCVDDOK(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_CORESC_RTCVDDOK_SHIFT)) & SPM_CORESC_RTCVDDOK_MASK)
+/*! @} */
+
+/*! @name LVDSC1 - Low Voltage Detect Status and Control 1 register */
+/*! @{ */
+#define SPM_LVDSC1_COREVDD_LVDRE_MASK            (0x10U)
+#define SPM_LVDSC1_COREVDD_LVDRE_SHIFT           (4U)
+/*! COREVDD_LVDRE - Core Low-Voltage Detect Reset Enable
+ *  0b0..COREVDD_LVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when CORE_LVDF = 1
+ */
+#define SPM_LVDSC1_COREVDD_LVDRE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDRE_SHIFT)) & SPM_LVDSC1_COREVDD_LVDRE_MASK)
+#define SPM_LVDSC1_COREVDD_LVDIE_MASK            (0x20U)
+#define SPM_LVDSC1_COREVDD_LVDIE_SHIFT           (5U)
+/*! COREVDD_LVDIE - Low-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when LVDF = 1
+ */
+#define SPM_LVDSC1_COREVDD_LVDIE(x)              (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDIE_SHIFT)) & SPM_LVDSC1_COREVDD_LVDIE_MASK)
+#define SPM_LVDSC1_COREVDD_LVDACK_MASK           (0x40U)
+#define SPM_LVDSC1_COREVDD_LVDACK_SHIFT          (6U)
+#define SPM_LVDSC1_COREVDD_LVDACK(x)             (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDACK_SHIFT)) & SPM_LVDSC1_COREVDD_LVDACK_MASK)
+#define SPM_LVDSC1_COREVDD_LVDF_MASK             (0x80U)
+#define SPM_LVDSC1_COREVDD_LVDF_SHIFT            (7U)
+/*! COREVDD_LVDF - Low-Voltage Detect Flag
+ *  0b0..Low-voltage event not detected
+ *  0b1..Low-voltage event detected
+ */
+#define SPM_LVDSC1_COREVDD_LVDF(x)               (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_COREVDD_LVDF_SHIFT)) & SPM_LVDSC1_COREVDD_LVDF_MASK)
+#define SPM_LVDSC1_VDD_LVDV_MASK                 (0x30000U)
+#define SPM_LVDSC1_VDD_LVDV_SHIFT                (16U)
+/*! VDD_LVDV - VDD Low-Voltage Detect Voltage Select
+ *  0b00..Low trip point selected (V LVD = V LVDL )
+ *  0b01..High trip point selected (V LVD = V LVDH )
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define SPM_LVDSC1_VDD_LVDV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDV_SHIFT)) & SPM_LVDSC1_VDD_LVDV_MASK)
+#define SPM_LVDSC1_VDD_LVDRE_MASK                (0x100000U)
+#define SPM_LVDSC1_VDD_LVDRE_SHIFT               (20U)
+/*! VDD_LVDRE - VDD Low-Voltage Detect Reset Enable
+ *  0b0..VDD_LVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when VDD_LVDF = 1
+ */
+#define SPM_LVDSC1_VDD_LVDRE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDRE_SHIFT)) & SPM_LVDSC1_VDD_LVDRE_MASK)
+#define SPM_LVDSC1_VDD_LVDIE_MASK                (0x200000U)
+#define SPM_LVDSC1_VDD_LVDIE_SHIFT               (21U)
+/*! VDD_LVDIE - VDD Low-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when VDD_LVDF = 1
+ */
+#define SPM_LVDSC1_VDD_LVDIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDIE_SHIFT)) & SPM_LVDSC1_VDD_LVDIE_MASK)
+#define SPM_LVDSC1_VDD_LVDACK_MASK               (0x400000U)
+#define SPM_LVDSC1_VDD_LVDACK_SHIFT              (22U)
+#define SPM_LVDSC1_VDD_LVDACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDACK_SHIFT)) & SPM_LVDSC1_VDD_LVDACK_MASK)
+#define SPM_LVDSC1_VDD_LVDF_MASK                 (0x800000U)
+#define SPM_LVDSC1_VDD_LVDF_SHIFT                (23U)
+/*! VDD_LVDF - VDD Low-Voltage Detect Flag
+ *  0b0..Low-voltage event not detected
+ *  0b1..Low-voltage event detected
+ */
+#define SPM_LVDSC1_VDD_LVDF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC1_VDD_LVDF_SHIFT)) & SPM_LVDSC1_VDD_LVDF_MASK)
+/*! @} */
+
+/*! @name LVDSC2 - Low Voltage Detect Status and Control 2 register */
+/*! @{ */
+#define SPM_LVDSC2_VDD_LVWV_MASK                 (0x30000U)
+#define SPM_LVDSC2_VDD_LVWV_SHIFT                (16U)
+/*! VDD_LVWV - VDD Low-Voltage Warning Voltage Select
+ *  0b00..Low trip point selected (V LVW = VLVW1)
+ *  0b01..Mid 1 trip point selected (V LVW = VLVW2)
+ *  0b10..Mid 2 trip point selected (V LVW = VLVW3)
+ *  0b11..High trip point selected (V LVW = VLVW4)
+ */
+#define SPM_LVDSC2_VDD_LVWV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWV_SHIFT)) & SPM_LVDSC2_VDD_LVWV_MASK)
+#define SPM_LVDSC2_VDD_LVWIE_MASK                (0x200000U)
+#define SPM_LVDSC2_VDD_LVWIE_SHIFT               (21U)
+/*! VDD_LVWIE - VDD Low-Voltage Warning Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when VDD_LVWF = 1
+ */
+#define SPM_LVDSC2_VDD_LVWIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWIE_SHIFT)) & SPM_LVDSC2_VDD_LVWIE_MASK)
+#define SPM_LVDSC2_VDD_LVWACK_MASK               (0x400000U)
+#define SPM_LVDSC2_VDD_LVWACK_SHIFT              (22U)
+#define SPM_LVDSC2_VDD_LVWACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWACK_SHIFT)) & SPM_LVDSC2_VDD_LVWACK_MASK)
+#define SPM_LVDSC2_VDD_LVWF_MASK                 (0x800000U)
+#define SPM_LVDSC2_VDD_LVWF_SHIFT                (23U)
+/*! VDD_LVWF - VDD Low-Voltage Warning Flag
+ *  0b0..Low-voltage warning event not detected
+ *  0b1..Low-voltage warning event detected
+ */
+#define SPM_LVDSC2_VDD_LVWF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_LVDSC2_VDD_LVWF_SHIFT)) & SPM_LVDSC2_VDD_LVWF_MASK)
+/*! @} */
+
+/*! @name HVDSC1 - High Voltage Detect Status And Control 1 register */
+/*! @{ */
+#define SPM_HVDSC1_VDD_HVDV_MASK                 (0x10000U)
+#define SPM_HVDSC1_VDD_HVDV_SHIFT                (16U)
+/*! VDD_HVDV - VDD High-Voltage Detect Voltage Select
+ *  0b0..Low trip point selected (V VDD = V VDD_HVDL )
+ *  0b1..High trip point selected (V VDD = V VDD_HVDH )
+ */
+#define SPM_HVDSC1_VDD_HVDV(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDV_SHIFT)) & SPM_HVDSC1_VDD_HVDV_MASK)
+#define SPM_HVDSC1_VDD_HVDRE_MASK                (0x100000U)
+#define SPM_HVDSC1_VDD_HVDRE_SHIFT               (20U)
+/*! VDD_HVDRE - VDD High-Voltage Detect Reset Enable
+ *  0b0..VDD HVDF does not generate hardware resets
+ *  0b1..Force an MCU reset when VDD_HVDF = 1
+ */
+#define SPM_HVDSC1_VDD_HVDRE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDRE_SHIFT)) & SPM_HVDSC1_VDD_HVDRE_MASK)
+#define SPM_HVDSC1_VDD_HVDIE_MASK                (0x200000U)
+#define SPM_HVDSC1_VDD_HVDIE_SHIFT               (21U)
+/*! VDD_HVDIE - VDD High-Voltage Detect Interrupt Enable
+ *  0b0..Hardware interrupt disabled (use polling)
+ *  0b1..Request a hardware interrupt when HVDF = 1
+ */
+#define SPM_HVDSC1_VDD_HVDIE(x)                  (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDIE_SHIFT)) & SPM_HVDSC1_VDD_HVDIE_MASK)
+#define SPM_HVDSC1_VDD_HVDACK_MASK               (0x400000U)
+#define SPM_HVDSC1_VDD_HVDACK_SHIFT              (22U)
+#define SPM_HVDSC1_VDD_HVDACK(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDACK_SHIFT)) & SPM_HVDSC1_VDD_HVDACK_MASK)
+#define SPM_HVDSC1_VDD_HVDF_MASK                 (0x800000U)
+#define SPM_HVDSC1_VDD_HVDF_SHIFT                (23U)
+/*! VDD_HVDF - VDD High-Voltage Detect Flag
+ *  0b0..Vdd High-voltage event not detected
+ *  0b1..Vdd High-voltage event detected
+ */
+#define SPM_HVDSC1_VDD_HVDF(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_HVDSC1_VDD_HVDF_SHIFT)) & SPM_HVDSC1_VDD_HVDF_MASK)
+/*! @} */
+
+/*! @name RFLDOLPCNFG - RF LDO Low Power Configuration register */
+/*! @{ */
+#define SPM_RFLDOLPCNFG_LPSEL_MASK               (0x2U)
+#define SPM_RFLDOLPCNFG_LPSEL_SHIFT              (1U)
+/*! LPSEL - LPSEL
+ *  0b0..RF LDO regulator enters low power state in VLP/Stop modes.
+ *  0b1..RF LDO regulator remains in high power state in VLP/Stop modes.
+ */
+#define SPM_RFLDOLPCNFG_LPSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOLPCNFG_LPSEL_SHIFT)) & SPM_RFLDOLPCNFG_LPSEL_MASK)
+/*! @} */
+
+/*! @name RFLDOSC - RF LDO Status And Control register */
+/*! @{ */
+#define SPM_RFLDOSC_IOREGVSEL_MASK               (0x1U)
+#define SPM_RFLDOSC_IOREGVSEL_SHIFT              (0U)
+/*! IOREGVSEL - IO Regulator Voltage Select
+ *  0b0..Regulate to 1.8V.
+ *  0b1..Regulate to 1.5V.
+ */
+#define SPM_RFLDOSC_IOREGVSEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOREGVSEL_SHIFT)) & SPM_RFLDOSC_IOREGVSEL_MASK)
+#define SPM_RFLDOSC_VDD1P8SEL_MASK               (0x10U)
+#define SPM_RFLDOSC_VDD1P8SEL_SHIFT              (4U)
+/*! VDD1P8SEL - VDD 1p8 SNS Pin Select
+ *  0b0..VDD1p8_SNS0 selected.
+ *  0b1..VDD1p8_SNS1 selected.
+ */
+#define SPM_RFLDOSC_VDD1P8SEL(x)                 (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_VDD1P8SEL_SHIFT)) & SPM_RFLDOSC_VDD1P8SEL_MASK)
+#define SPM_RFLDOSC_ISINKEN_MASK                 (0x20U)
+#define SPM_RFLDOSC_ISINKEN_SHIFT                (5U)
+/*! ISINKEN - ISINKEN
+ *  0b0..Disable current sink feature of low power regulator.
+ *  0b1..Enable current sink feature of low power regulator.
+ */
+#define SPM_RFLDOSC_ISINKEN(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_ISINKEN_SHIFT)) & SPM_RFLDOSC_ISINKEN_MASK)
+#define SPM_RFLDOSC_IOTRIM_MASK                  (0x1F00U)
+#define SPM_RFLDOSC_IOTRIM_SHIFT                 (8U)
+#define SPM_RFLDOSC_IOTRIM(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOTRIM_SHIFT)) & SPM_RFLDOSC_IOTRIM_MASK)
+#define SPM_RFLDOSC_IOSSSEL_MASK                 (0x70000U)
+#define SPM_RFLDOSC_IOSSSEL_SHIFT                (16U)
+/*! IOSSSEL - IO 1.8 Reg Soft Start Select
+ *  0b000..Soft Start duration set to 110us.
+ *  0b001..Soft Start duration set to 95us.
+ *  0b010..Soft Start duration set to 60us.
+ *  0b011..Soft Start duration set to 48us.
+ *  0b100..Soft Start duration set to 38us.
+ *  0b101..Soft Start duration set to 30us.
+ *  0b110..Soft Start duration set to 24us.
+ *  0b111..Soft Start duration set to 17us.
+ */
+#define SPM_RFLDOSC_IOSSSEL(x)                   (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOSSSEL_SHIFT)) & SPM_RFLDOSC_IOSSSEL_MASK)
+#define SPM_RFLDOSC_SSDONE_MASK                  (0x1000000U)
+#define SPM_RFLDOSC_SSDONE_SHIFT                 (24U)
+#define SPM_RFLDOSC_SSDONE(x)                    (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_SSDONE_SHIFT)) & SPM_RFLDOSC_SSDONE_MASK)
+#define SPM_RFLDOSC_IOSPARE_OUT_MASK             (0xC000000U)
+#define SPM_RFLDOSC_IOSPARE_OUT_SHIFT            (26U)
+#define SPM_RFLDOSC_IOSPARE_OUT(x)               (((uint32_t)(((uint32_t)(x)) << SPM_RFLDOSC_IOSPARE_OUT_SHIFT)) & SPM_RFLDOSC_IOSPARE_OUT_MASK)
+/*! @} */
+
+/*! @name DCDCSC - DCDC Status Control Register */
+/*! @{ */
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_MASK (0x2U)
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_SHIFT (1U)
+#define SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_SHIFT)) & SPM_DCDCSC_DCDC_DISABLE_AUTO_CLK_SWITCH_MASK)
+#define SPM_DCDCSC_DCDC_SEL_CLK_MASK             (0x4U)
+#define SPM_DCDCSC_DCDC_SEL_CLK_SHIFT            (2U)
+#define SPM_DCDCSC_DCDC_SEL_CLK(x)               (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_SEL_CLK_SHIFT)) & SPM_DCDCSC_DCDC_SEL_CLK_MASK)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT_MASK         (0x8U)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT_SHIFT        (3U)
+#define SPM_DCDCSC_DCDC_PWD_OSC_INT(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_PWD_OSC_INT_SHIFT)) & SPM_DCDCSC_DCDC_PWD_OSC_INT_MASK)
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_MASK       (0xC00U)
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_SHIFT      (10U)
+/*! DCDC_VBAT_DIV_CTRL - DCDC_VBAT_DIV_CTRL
+ *  0b00..OFF
+ *  0b01..VBAT
+ *  0b10..VBAT / 2
+ *  0b11..VBAT / 4
+ */
+#define SPM_DCDCSC_DCDC_VBAT_DIV_CTRL(x)         (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_SHIFT)) & SPM_DCDCSC_DCDC_VBAT_DIV_CTRL_MASK)
+#define SPM_DCDCSC_DCDC_LESS_I_MASK              (0x2000000U)
+#define SPM_DCDCSC_DCDC_LESS_I_SHIFT             (25U)
+#define SPM_DCDCSC_DCDC_LESS_I(x)                (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_LESS_I_SHIFT)) & SPM_DCDCSC_DCDC_LESS_I_MASK)
+#define SPM_DCDCSC_PWD_CMP_OFFSET_MASK           (0x4000000U)
+#define SPM_DCDCSC_PWD_CMP_OFFSET_SHIFT          (26U)
+#define SPM_DCDCSC_PWD_CMP_OFFSET(x)             (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_PWD_CMP_OFFSET_SHIFT)) & SPM_DCDCSC_PWD_CMP_OFFSET_MASK)
+#define SPM_DCDCSC_CLKFLT_FAULT_MASK             (0x40000000U)
+#define SPM_DCDCSC_CLKFLT_FAULT_SHIFT            (30U)
+#define SPM_DCDCSC_CLKFLT_FAULT(x)               (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_CLKFLT_FAULT_SHIFT)) & SPM_DCDCSC_CLKFLT_FAULT_MASK)
+#define SPM_DCDCSC_DCDC_STS_DC_OK_MASK           (0x80000000U)
+#define SPM_DCDCSC_DCDC_STS_DC_OK_SHIFT          (31U)
+#define SPM_DCDCSC_DCDC_STS_DC_OK(x)             (((uint32_t)(((uint32_t)(x)) << SPM_DCDCSC_DCDC_STS_DC_OK_SHIFT)) & SPM_DCDCSC_DCDC_STS_DC_OK_MASK)
+/*! @} */
+
+/*! @name DCDCC1 - DCDC Control Register 1 */
+/*! @{ */
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN_MASK         (0x7FU)
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN_SHIFT        (0U)
+#define SPM_DCDCC1_POSLIMIT_BUCK_IN(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_POSLIMIT_BUCK_IN_SHIFT)) & SPM_DCDCC1_POSLIMIT_BUCK_IN_MASK)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_MASK (0x4000000U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_SHIFT (26U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_SHIFT)) & SPM_DCDCC1_DCDC_LOOPCTRL_EN_CM_HYST_MASK)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_MASK (0x8000000U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_SHIFT (27U)
+#define SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_SHIFT)) & SPM_DCDCC1_DCDC_LOOPCTRL_EN_DF_HYST_MASK)
+/*! @} */
+
+/*! @name DCDCC2 - DCDC Control Register 2 */
+/*! @{ */
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_MASK  (0x2000U)
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_SHIFT (13U)
+#define SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_SHIFT)) & SPM_DCDCC2_DCDC_LOOPCTRL_HYST_SIGN_MASK)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_MASK (0x8000U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_SHIFT (15U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_SHIFT)) & SPM_DCDCC2_DCDC_BATTMONITOR_EN_BATADJ_MASK)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_MASK (0x3FF0000U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_SHIFT (16U)
+#define SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL(x)  (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_SHIFT)) & SPM_DCDCC2_DCDC_BATTMONITOR_BATT_VAL_MASK)
+/*! @} */
+
+/*! @name DCDCC3 - DCDC Control Register 3 */
+/*! @{ */
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_MASK     (0x1U)
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_SHIFT    (0U)
+#define SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS(x)       (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_SHIFT)) & SPM_DCDCC3_DCDC_BYPASS_ADC_MEAS_MASK)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE_MASK          (0x1CU)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE_SHIFT         (2U)
+#define SPM_DCDCC3_DCDC_VBAT_VALUE(x)            (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VBAT_VALUE_SHIFT)) & SPM_DCDCC3_DCDC_VBAT_VALUE_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_MASK    (0xF0000U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_SHIFT   (16U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN(x)      (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P2CTRL_ADJTN_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_MASK   (0x1000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_SHIFT  (24U)
+#define SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK(x)     (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_DC_HALFCLK_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_MASK (0x2000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_SHIFT (25U)
+#define SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_EXTRA_DOUBLE_FETS_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_MASK  (0x4000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_SHIFT (26U)
+#define SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_DOUBLE_FETS_MASK)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_MASK    (0x8000000U)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_SHIFT   (27U)
+#define SPM_DCDCC3_DCDC_MINPWR_HALF_FETS(x)      (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_SHIFT)) & SPM_DCDCC3_DCDC_MINPWR_HALF_FETS_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_MASK (0x40000000U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_SHIFT (30U)
+#define SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P2CTRL_DISABLE_STEP_MASK)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_MASK (0x80000000U)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_SHIFT (31U)
+#define SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP(x) (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_SHIFT)) & SPM_DCDCC3_DCDC_VDD1P8CTRL_DISABLE_STEP_MASK)
+/*! @} */
+
+/*! @name DCDCC4 - DCDC Control Register 4 */
+/*! @{ */
+#define SPM_DCDCC4_INTEGRATOR_VALUE_MASK         (0x7FFFFU)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SHIFT        (0U)
+#define SPM_DCDCC4_INTEGRATOR_VALUE(x)           (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_INTEGRATOR_VALUE_SHIFT)) & SPM_DCDCC4_INTEGRATOR_VALUE_MASK)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_MASK  (0x80000U)
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_SHIFT (19U)
+/*! INTEGRATOR_VALUE_SELECT - INTEGRATOR VALUE SELECT
+ *  0b0..Select the saved value in hardware
+ *  0b1..Select the integrator value in this register
+ */
+#define SPM_DCDCC4_INTEGRATOR_VALUE_SELECT(x)    (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_SHIFT)) & SPM_DCDCC4_INTEGRATOR_VALUE_SELECT_MASK)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP_MASK        (0x100000U)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP_SHIFT       (20U)
+#define SPM_DCDCC4_PULSE_RUN_SPEEDUP(x)          (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC4_PULSE_RUN_SPEEDUP_SHIFT)) & SPM_DCDCC4_PULSE_RUN_SPEEDUP_MASK)
+/*! @} */
+
+/*! @name DCDCC6 - DCDC Control Register 6 */
+/*! @{ */
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_MASK      (0x1FU)
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_SHIFT     (0U)
+#define SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG(x)        (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_SHIFT)) & SPM_DCDCC6_DCDC_VDD1P8CTRL_TRG_MASK)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_MASK (0xF00U)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_SHIFT (8U)
+#define SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK(x)   (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_SHIFT)) & SPM_DCDCC6_DCDC_VDD1P2CTRL_TRG_BUCK_MASK)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM_MASK          (0xF000000U)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM_SHIFT         (24U)
+#define SPM_DCDCC6_DCDC_HSVDD_TRIM(x)            (((uint32_t)(((uint32_t)(x)) << SPM_DCDCC6_DCDC_HSVDD_TRIM_SHIFT)) & SPM_DCDCC6_DCDC_HSVDD_TRIM_MASK)
+/*! @} */
+
+/*! @name LPREQPINCNTRL - LP Request Pin Control Register */
+/*! @{ */
+#define SPM_LPREQPINCNTRL_LPREQOE_MASK           (0x1U)
+#define SPM_LPREQPINCNTRL_LPREQOE_SHIFT          (0U)
+/*! LPREQOE - Low Power Request Output Enable Register
+ *  0b0..Low Power request output pin not enabled.
+ *  0b1..Low Power request output pin enabled.
+ */
+#define SPM_LPREQPINCNTRL_LPREQOE(x)             (((uint32_t)(((uint32_t)(x)) << SPM_LPREQPINCNTRL_LPREQOE_SHIFT)) & SPM_LPREQPINCNTRL_LPREQOE_MASK)
+#define SPM_LPREQPINCNTRL_POLARITY_MASK          (0x2U)
+#define SPM_LPREQPINCNTRL_POLARITY_SHIFT         (1U)
+/*! POLARITY - Low Power Request Output Pin Polarity Control Register
+ *  0b0..High true polarity.
+ *  0b1..Low true polarity.
+ */
+#define SPM_LPREQPINCNTRL_POLARITY(x)            (((uint32_t)(((uint32_t)(x)) << SPM_LPREQPINCNTRL_POLARITY_SHIFT)) & SPM_LPREQPINCNTRL_POLARITY_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group SPM_Register_Masks */
+
+
+/* SPM - Peripheral instance base addresses */
+/** Peripheral SPM base address */
+#define SPM_BASE                                 (0x40028000u)
+/** Peripheral SPM base pointer */
+#define SPM                                      ((SPM_Type *)SPM_BASE)
+/** Array initializer of SPM peripheral base addresses */
+#define SPM_BASE_ADDRS                           { SPM_BASE }
+/** Array initializer of SPM peripheral base pointers */
+#define SPM_BASE_PTRS                            { SPM }
+/** Interrupt vectors for the SPM peripheral type */
+#define SPM_IRQS                                 { SPM_IRQn }
+
+/*!
+ * @}
+ */ /* end of group SPM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TPM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TPM_Peripheral_Access_Layer TPM Peripheral Access Layer
+ * @{
+ */
+
+/** TPM - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t VERID;                             /**< Version ID Register, offset: 0x0 */
+  __I  uint32_t PARAM;                             /**< Parameter Register, offset: 0x4 */
+  __IO uint32_t GLOBAL;                            /**< TPM Global Register, offset: 0x8 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t SC;                                /**< Status and Control, offset: 0x10 */
+  __IO uint32_t CNT;                               /**< Counter, offset: 0x14 */
+  __IO uint32_t MOD;                               /**< Modulo, offset: 0x18 */
+  __IO uint32_t STATUS;                            /**< Capture and Compare Status, offset: 0x1C */
+  struct {                                         /* offset: 0x20, array step: 0x8 */
+    __IO uint32_t CnSC;                              /**< Channel (n) Status and Control, array offset: 0x20, array step: 0x8 */
+    __IO uint32_t CnV;                               /**< Channel (n) Value, array offset: 0x24, array step: 0x8 */
+  } CONTROLS[6];
+       uint8_t RESERVED_1[20];
+  __IO uint32_t COMBINE;                           /**< Combine Channel Register, offset: 0x64 */
+       uint8_t RESERVED_2[4];
+  __IO uint32_t TRIG;                              /**< Channel Trigger, offset: 0x6C */
+  __IO uint32_t POL;                               /**< Channel Polarity, offset: 0x70 */
+       uint8_t RESERVED_3[4];
+  __IO uint32_t FILTER;                            /**< Filter Control, offset: 0x78 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t QDCTRL;                            /**< Quadrature Decoder Control and Status, offset: 0x80 */
+  __IO uint32_t CONF;                              /**< Configuration, offset: 0x84 */
+} TPM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TPM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TPM_Register_Masks TPM Register Masks
+ * @{
+ */
+
+/*! @name VERID - Version ID Register */
+/*! @{ */
+#define TPM_VERID_FEATURE_MASK                   (0xFFFFU)
+#define TPM_VERID_FEATURE_SHIFT                  (0U)
+/*! FEATURE - Feature Identification Number
+ *  0b0000000000000001..Standard feature set.
+ *  0b0000000000000011..Standard feature set with Filter and Combine registers implemented.
+ *  0b0000000000000111..Standard feature set with Filter, Combine and Quadrature registers implemented.
+ */
+#define TPM_VERID_FEATURE(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_VERID_FEATURE_SHIFT)) & TPM_VERID_FEATURE_MASK)
+#define TPM_VERID_MINOR_MASK                     (0xFF0000U)
+#define TPM_VERID_MINOR_SHIFT                    (16U)
+#define TPM_VERID_MINOR(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_VERID_MINOR_SHIFT)) & TPM_VERID_MINOR_MASK)
+#define TPM_VERID_MAJOR_MASK                     (0xFF000000U)
+#define TPM_VERID_MAJOR_SHIFT                    (24U)
+#define TPM_VERID_MAJOR(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_VERID_MAJOR_SHIFT)) & TPM_VERID_MAJOR_MASK)
+/*! @} */
+
+/*! @name PARAM - Parameter Register */
+/*! @{ */
+#define TPM_PARAM_CHAN_MASK                      (0xFFU)
+#define TPM_PARAM_CHAN_SHIFT                     (0U)
+#define TPM_PARAM_CHAN(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_CHAN_SHIFT)) & TPM_PARAM_CHAN_MASK)
+#define TPM_PARAM_TRIG_MASK                      (0xFF00U)
+#define TPM_PARAM_TRIG_SHIFT                     (8U)
+#define TPM_PARAM_TRIG(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_TRIG_SHIFT)) & TPM_PARAM_TRIG_MASK)
+#define TPM_PARAM_WIDTH_MASK                     (0xFF0000U)
+#define TPM_PARAM_WIDTH_SHIFT                    (16U)
+#define TPM_PARAM_WIDTH(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_PARAM_WIDTH_SHIFT)) & TPM_PARAM_WIDTH_MASK)
+/*! @} */
+
+/*! @name GLOBAL - TPM Global Register */
+/*! @{ */
+#define TPM_GLOBAL_NOUPDATE_MASK                 (0x1U)
+#define TPM_GLOBAL_NOUPDATE_SHIFT                (0U)
+/*! NOUPDATE - No Update
+ *  0b0..Internal double buffered registers update as normal.
+ *  0b1..Internal double buffered registers do not update.
+ */
+#define TPM_GLOBAL_NOUPDATE(x)                   (((uint32_t)(((uint32_t)(x)) << TPM_GLOBAL_NOUPDATE_SHIFT)) & TPM_GLOBAL_NOUPDATE_MASK)
+#define TPM_GLOBAL_RST_MASK                      (0x2U)
+#define TPM_GLOBAL_RST_SHIFT                     (1U)
+/*! RST - Software Reset
+ *  0b0..Module is not reset.
+ *  0b1..Module is reset.
+ */
+#define TPM_GLOBAL_RST(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_GLOBAL_RST_SHIFT)) & TPM_GLOBAL_RST_MASK)
+/*! @} */
+
+/*! @name SC - Status and Control */
+/*! @{ */
+#define TPM_SC_PS_MASK                           (0x7U)
+#define TPM_SC_PS_SHIFT                          (0U)
+/*! PS - Prescale Factor Selection
+ *  0b000..Divide by 1
+ *  0b001..Divide by 2
+ *  0b010..Divide by 4
+ *  0b011..Divide by 8
+ *  0b100..Divide by 16
+ *  0b101..Divide by 32
+ *  0b110..Divide by 64
+ *  0b111..Divide by 128
+ */
+#define TPM_SC_PS(x)                             (((uint32_t)(((uint32_t)(x)) << TPM_SC_PS_SHIFT)) & TPM_SC_PS_MASK)
+#define TPM_SC_CMOD_MASK                         (0x18U)
+#define TPM_SC_CMOD_SHIFT                        (3U)
+/*! CMOD - Clock Mode Selection
+ *  0b00..TPM counter is disabled
+ *  0b01..TPM counter increments on every TPM counter clock
+ *  0b10..TPM counter increments on rising edge of TPM_EXTCLK synchronized to the TPM counter clock
+ *  0b11..TPM counter increments on rising edge of the selected external input trigger.
+ */
+#define TPM_SC_CMOD(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_SC_CMOD_SHIFT)) & TPM_SC_CMOD_MASK)
+#define TPM_SC_CPWMS_MASK                        (0x20U)
+#define TPM_SC_CPWMS_SHIFT                       (5U)
+/*! CPWMS - Center-Aligned PWM Select
+ *  0b0..TPM counter operates in up counting mode.
+ *  0b1..TPM counter operates in up-down counting mode.
+ */
+#define TPM_SC_CPWMS(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_SC_CPWMS_SHIFT)) & TPM_SC_CPWMS_MASK)
+#define TPM_SC_TOIE_MASK                         (0x40U)
+#define TPM_SC_TOIE_SHIFT                        (6U)
+/*! TOIE - Timer Overflow Interrupt Enable
+ *  0b0..Disable TOF interrupts. Use software polling or DMA request.
+ *  0b1..Enable TOF interrupts. An interrupt is generated when TOF equals one.
+ */
+#define TPM_SC_TOIE(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_SC_TOIE_SHIFT)) & TPM_SC_TOIE_MASK)
+#define TPM_SC_TOF_MASK                          (0x80U)
+#define TPM_SC_TOF_SHIFT                         (7U)
+/*! TOF - Timer Overflow Flag
+ *  0b0..TPM counter has not overflowed.
+ *  0b1..TPM counter has overflowed.
+ */
+#define TPM_SC_TOF(x)                            (((uint32_t)(((uint32_t)(x)) << TPM_SC_TOF_SHIFT)) & TPM_SC_TOF_MASK)
+#define TPM_SC_DMA_MASK                          (0x100U)
+#define TPM_SC_DMA_SHIFT                         (8U)
+/*! DMA - DMA Enable
+ *  0b0..Disables DMA transfers.
+ *  0b1..Enables DMA transfers.
+ */
+#define TPM_SC_DMA(x)                            (((uint32_t)(((uint32_t)(x)) << TPM_SC_DMA_SHIFT)) & TPM_SC_DMA_MASK)
+/*! @} */
+
+/*! @name CNT - Counter */
+/*! @{ */
+#define TPM_CNT_COUNT_MASK                       (0xFFFFU)
+#define TPM_CNT_COUNT_SHIFT                      (0U)
+#define TPM_CNT_COUNT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CNT_COUNT_SHIFT)) & TPM_CNT_COUNT_MASK)
+/*! @} */
+
+/*! @name MOD - Modulo */
+/*! @{ */
+#define TPM_MOD_MOD_MASK                         (0xFFFFU)
+#define TPM_MOD_MOD_SHIFT                        (0U)
+#define TPM_MOD_MOD(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_MOD_MOD_SHIFT)) & TPM_MOD_MOD_MASK)
+/*! @} */
+
+/*! @name STATUS - Capture and Compare Status */
+/*! @{ */
+#define TPM_STATUS_CH0F_MASK                     (0x1U)
+#define TPM_STATUS_CH0F_SHIFT                    (0U)
+/*! CH0F - Channel 0 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH0F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH0F_SHIFT)) & TPM_STATUS_CH0F_MASK)
+#define TPM_STATUS_CH1F_MASK                     (0x2U)
+#define TPM_STATUS_CH1F_SHIFT                    (1U)
+/*! CH1F - Channel 1 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH1F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH1F_SHIFT)) & TPM_STATUS_CH1F_MASK)
+#define TPM_STATUS_CH2F_MASK                     (0x4U)
+#define TPM_STATUS_CH2F_SHIFT                    (2U)
+/*! CH2F - Channel 2 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH2F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH2F_SHIFT)) & TPM_STATUS_CH2F_MASK)
+#define TPM_STATUS_CH3F_MASK                     (0x8U)
+#define TPM_STATUS_CH3F_SHIFT                    (3U)
+/*! CH3F - Channel 3 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH3F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH3F_SHIFT)) & TPM_STATUS_CH3F_MASK)
+#define TPM_STATUS_CH4F_MASK                     (0x10U)
+#define TPM_STATUS_CH4F_SHIFT                    (4U)
+/*! CH4F - Channel 4 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH4F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH4F_SHIFT)) & TPM_STATUS_CH4F_MASK)
+#define TPM_STATUS_CH5F_MASK                     (0x20U)
+#define TPM_STATUS_CH5F_SHIFT                    (5U)
+/*! CH5F - Channel 5 Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_STATUS_CH5F(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_CH5F_SHIFT)) & TPM_STATUS_CH5F_MASK)
+#define TPM_STATUS_TOF_MASK                      (0x100U)
+#define TPM_STATUS_TOF_SHIFT                     (8U)
+/*! TOF - Timer Overflow Flag
+ *  0b0..TPM counter has not overflowed.
+ *  0b1..TPM counter has overflowed.
+ */
+#define TPM_STATUS_TOF(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_STATUS_TOF_SHIFT)) & TPM_STATUS_TOF_MASK)
+/*! @} */
+
+/*! @name CnSC - Channel (n) Status and Control */
+/*! @{ */
+#define TPM_CnSC_DMA_MASK                        (0x1U)
+#define TPM_CnSC_DMA_SHIFT                       (0U)
+/*! DMA - DMA Enable
+ *  0b0..Disable DMA transfers.
+ *  0b1..Enable DMA transfers.
+ */
+#define TPM_CnSC_DMA(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_DMA_SHIFT)) & TPM_CnSC_DMA_MASK)
+#define TPM_CnSC_ELSA_MASK                       (0x4U)
+#define TPM_CnSC_ELSA_SHIFT                      (2U)
+#define TPM_CnSC_ELSA(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_ELSA_SHIFT)) & TPM_CnSC_ELSA_MASK)
+#define TPM_CnSC_ELSB_MASK                       (0x8U)
+#define TPM_CnSC_ELSB_SHIFT                      (3U)
+#define TPM_CnSC_ELSB(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_ELSB_SHIFT)) & TPM_CnSC_ELSB_MASK)
+#define TPM_CnSC_MSA_MASK                        (0x10U)
+#define TPM_CnSC_MSA_SHIFT                       (4U)
+#define TPM_CnSC_MSA(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_MSA_SHIFT)) & TPM_CnSC_MSA_MASK)
+#define TPM_CnSC_MSB_MASK                        (0x20U)
+#define TPM_CnSC_MSB_SHIFT                       (5U)
+#define TPM_CnSC_MSB(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_MSB_SHIFT)) & TPM_CnSC_MSB_MASK)
+#define TPM_CnSC_CHIE_MASK                       (0x40U)
+#define TPM_CnSC_CHIE_SHIFT                      (6U)
+/*! CHIE - Channel Interrupt Enable
+ *  0b0..Disable channel interrupts.
+ *  0b1..Enable channel interrupts.
+ */
+#define TPM_CnSC_CHIE(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_CHIE_SHIFT)) & TPM_CnSC_CHIE_MASK)
+#define TPM_CnSC_CHF_MASK                        (0x80U)
+#define TPM_CnSC_CHF_SHIFT                       (7U)
+/*! CHF - Channel Flag
+ *  0b0..No channel event has occurred.
+ *  0b1..A channel event has occurred.
+ */
+#define TPM_CnSC_CHF(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_CnSC_CHF_SHIFT)) & TPM_CnSC_CHF_MASK)
+/*! @} */
+
+/* The count of TPM_CnSC */
+#define TPM_CnSC_COUNT                           (6U)
+
+/*! @name CnV - Channel (n) Value */
+/*! @{ */
+#define TPM_CnV_VAL_MASK                         (0xFFFFU)
+#define TPM_CnV_VAL_SHIFT                        (0U)
+#define TPM_CnV_VAL(x)                           (((uint32_t)(((uint32_t)(x)) << TPM_CnV_VAL_SHIFT)) & TPM_CnV_VAL_MASK)
+/*! @} */
+
+/* The count of TPM_CnV */
+#define TPM_CnV_COUNT                            (6U)
+
+/*! @name COMBINE - Combine Channel Register */
+/*! @{ */
+#define TPM_COMBINE_COMBINE0_MASK                (0x1U)
+#define TPM_COMBINE_COMBINE0_SHIFT               (0U)
+/*! COMBINE0 - Combine Channels 0 and 1
+ *  0b0..Channels 0 and 1 are independent.
+ *  0b1..Channels 0 and 1 are combined.
+ */
+#define TPM_COMBINE_COMBINE0(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE0_SHIFT)) & TPM_COMBINE_COMBINE0_MASK)
+#define TPM_COMBINE_COMSWAP0_MASK                (0x2U)
+#define TPM_COMBINE_COMSWAP0_SHIFT               (1U)
+/*! COMSWAP0 - Combine Channel 0 and 1 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP0(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP0_SHIFT)) & TPM_COMBINE_COMSWAP0_MASK)
+#define TPM_COMBINE_COMBINE1_MASK                (0x100U)
+#define TPM_COMBINE_COMBINE1_SHIFT               (8U)
+/*! COMBINE1 - Combine Channels 2 and 3
+ *  0b0..Channels 2 and 3 are independent.
+ *  0b1..Channels 2 and 3 are combined.
+ */
+#define TPM_COMBINE_COMBINE1(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE1_SHIFT)) & TPM_COMBINE_COMBINE1_MASK)
+#define TPM_COMBINE_COMSWAP1_MASK                (0x200U)
+#define TPM_COMBINE_COMSWAP1_SHIFT               (9U)
+/*! COMSWAP1 - Combine Channels 2 and 3 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP1(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP1_SHIFT)) & TPM_COMBINE_COMSWAP1_MASK)
+#define TPM_COMBINE_COMBINE2_MASK                (0x10000U)
+#define TPM_COMBINE_COMBINE2_SHIFT               (16U)
+/*! COMBINE2 - Combine Channels 4 and 5
+ *  0b0..Channels 4 and 5 are independent.
+ *  0b1..Channels 4 and 5 are combined.
+ */
+#define TPM_COMBINE_COMBINE2(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMBINE2_SHIFT)) & TPM_COMBINE_COMBINE2_MASK)
+#define TPM_COMBINE_COMSWAP2_MASK                (0x20000U)
+#define TPM_COMBINE_COMSWAP2_SHIFT               (17U)
+/*! COMSWAP2 - Combine Channels 4 and 5 Swap
+ *  0b0..Even channel is used for input capture and 1st compare.
+ *  0b1..Odd channel is used for input capture and 1st compare.
+ */
+#define TPM_COMBINE_COMSWAP2(x)                  (((uint32_t)(((uint32_t)(x)) << TPM_COMBINE_COMSWAP2_SHIFT)) & TPM_COMBINE_COMSWAP2_MASK)
+/*! @} */
+
+/*! @name TRIG - Channel Trigger */
+/*! @{ */
+#define TPM_TRIG_TRIG0_MASK                      (0x1U)
+#define TPM_TRIG_TRIG0_SHIFT                     (0U)
+/*! TRIG0 - Channel 0 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 0.
+ */
+#define TPM_TRIG_TRIG0(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG0_SHIFT)) & TPM_TRIG_TRIG0_MASK)
+#define TPM_TRIG_TRIG1_MASK                      (0x2U)
+#define TPM_TRIG_TRIG1_SHIFT                     (1U)
+/*! TRIG1 - Channel 1 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 1.
+ */
+#define TPM_TRIG_TRIG1(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG1_SHIFT)) & TPM_TRIG_TRIG1_MASK)
+#define TPM_TRIG_TRIG2_MASK                      (0x4U)
+#define TPM_TRIG_TRIG2_SHIFT                     (2U)
+/*! TRIG2 - Channel 2 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 2.
+ */
+#define TPM_TRIG_TRIG2(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG2_SHIFT)) & TPM_TRIG_TRIG2_MASK)
+#define TPM_TRIG_TRIG3_MASK                      (0x8U)
+#define TPM_TRIG_TRIG3_SHIFT                     (3U)
+/*! TRIG3 - Channel 3 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 3.
+ */
+#define TPM_TRIG_TRIG3(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG3_SHIFT)) & TPM_TRIG_TRIG3_MASK)
+#define TPM_TRIG_TRIG4_MASK                      (0x10U)
+#define TPM_TRIG_TRIG4_SHIFT                     (4U)
+/*! TRIG4 - Channel 4 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 0 to be used by channel 4.
+ */
+#define TPM_TRIG_TRIG4(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG4_SHIFT)) & TPM_TRIG_TRIG4_MASK)
+#define TPM_TRIG_TRIG5_MASK                      (0x20U)
+#define TPM_TRIG_TRIG5_SHIFT                     (5U)
+/*! TRIG5 - Channel 5 Trigger
+ *  0b0..No effect.
+ *  0b1..Configures trigger input 1 to be used by channel 5.
+ */
+#define TPM_TRIG_TRIG5(x)                        (((uint32_t)(((uint32_t)(x)) << TPM_TRIG_TRIG5_SHIFT)) & TPM_TRIG_TRIG5_MASK)
+/*! @} */
+
+/*! @name POL - Channel Polarity */
+/*! @{ */
+#define TPM_POL_POL0_MASK                        (0x1U)
+#define TPM_POL_POL0_SHIFT                       (0U)
+/*! POL0 - Channel 0 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL0(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL0_SHIFT)) & TPM_POL_POL0_MASK)
+#define TPM_POL_POL1_MASK                        (0x2U)
+#define TPM_POL_POL1_SHIFT                       (1U)
+/*! POL1 - Channel 1 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL1(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL1_SHIFT)) & TPM_POL_POL1_MASK)
+#define TPM_POL_POL2_MASK                        (0x4U)
+#define TPM_POL_POL2_SHIFT                       (2U)
+/*! POL2 - Channel 2 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL2(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL2_SHIFT)) & TPM_POL_POL2_MASK)
+#define TPM_POL_POL3_MASK                        (0x8U)
+#define TPM_POL_POL3_SHIFT                       (3U)
+/*! POL3 - Channel 3 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL3(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL3_SHIFT)) & TPM_POL_POL3_MASK)
+#define TPM_POL_POL4_MASK                        (0x10U)
+#define TPM_POL_POL4_SHIFT                       (4U)
+/*! POL4 - Channel 4 Polarity
+ *  0b0..The channel polarity is active high
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL4(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL4_SHIFT)) & TPM_POL_POL4_MASK)
+#define TPM_POL_POL5_MASK                        (0x20U)
+#define TPM_POL_POL5_SHIFT                       (5U)
+/*! POL5 - Channel 5 Polarity
+ *  0b0..The channel polarity is active high.
+ *  0b1..The channel polarity is active low.
+ */
+#define TPM_POL_POL5(x)                          (((uint32_t)(((uint32_t)(x)) << TPM_POL_POL5_SHIFT)) & TPM_POL_POL5_MASK)
+/*! @} */
+
+/*! @name FILTER - Filter Control */
+/*! @{ */
+#define TPM_FILTER_CH0FVAL_MASK                  (0xFU)
+#define TPM_FILTER_CH0FVAL_SHIFT                 (0U)
+#define TPM_FILTER_CH0FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH0FVAL_SHIFT)) & TPM_FILTER_CH0FVAL_MASK)
+#define TPM_FILTER_CH1FVAL_MASK                  (0xF0U)
+#define TPM_FILTER_CH1FVAL_SHIFT                 (4U)
+#define TPM_FILTER_CH1FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH1FVAL_SHIFT)) & TPM_FILTER_CH1FVAL_MASK)
+#define TPM_FILTER_CH2FVAL_MASK                  (0xF00U)
+#define TPM_FILTER_CH2FVAL_SHIFT                 (8U)
+#define TPM_FILTER_CH2FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH2FVAL_SHIFT)) & TPM_FILTER_CH2FVAL_MASK)
+#define TPM_FILTER_CH3FVAL_MASK                  (0xF000U)
+#define TPM_FILTER_CH3FVAL_SHIFT                 (12U)
+#define TPM_FILTER_CH3FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH3FVAL_SHIFT)) & TPM_FILTER_CH3FVAL_MASK)
+#define TPM_FILTER_CH4FVAL_MASK                  (0xF0000U)
+#define TPM_FILTER_CH4FVAL_SHIFT                 (16U)
+#define TPM_FILTER_CH4FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH4FVAL_SHIFT)) & TPM_FILTER_CH4FVAL_MASK)
+#define TPM_FILTER_CH5FVAL_MASK                  (0xF00000U)
+#define TPM_FILTER_CH5FVAL_SHIFT                 (20U)
+#define TPM_FILTER_CH5FVAL(x)                    (((uint32_t)(((uint32_t)(x)) << TPM_FILTER_CH5FVAL_SHIFT)) & TPM_FILTER_CH5FVAL_MASK)
+/*! @} */
+
+/*! @name QDCTRL - Quadrature Decoder Control and Status */
+/*! @{ */
+#define TPM_QDCTRL_QUADEN_MASK                   (0x1U)
+#define TPM_QDCTRL_QUADEN_SHIFT                  (0U)
+/*! QUADEN - QUADEN
+ *  0b0..Quadrature decoder mode is disabled.
+ *  0b1..Quadrature decoder mode is enabled.
+ */
+#define TPM_QDCTRL_QUADEN(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADEN_SHIFT)) & TPM_QDCTRL_QUADEN_MASK)
+#define TPM_QDCTRL_TOFDIR_MASK                   (0x2U)
+#define TPM_QDCTRL_TOFDIR_SHIFT                  (1U)
+/*! TOFDIR - TOFDIR
+ *  0b0..TOF bit was set on the bottom of counting. There was an FTM counter decrement and FTM counter changes from its minimum value (zero) to its maximum value (MOD register).
+ *  0b1..TOF bit was set on the top of counting. There was an FTM counter increment and FTM counter changes from its maximum value (MOD register) to its minimum value (zero).
+ */
+#define TPM_QDCTRL_TOFDIR(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_TOFDIR_SHIFT)) & TPM_QDCTRL_TOFDIR_MASK)
+#define TPM_QDCTRL_QUADIR_MASK                   (0x4U)
+#define TPM_QDCTRL_QUADIR_SHIFT                  (2U)
+/*! QUADIR - Counter Direction in Quadrature Decode Mode
+ *  0b0..Counter direction is decreasing (counter decrement).
+ *  0b1..Counter direction is increasing (counter increment).
+ */
+#define TPM_QDCTRL_QUADIR(x)                     (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADIR_SHIFT)) & TPM_QDCTRL_QUADIR_MASK)
+#define TPM_QDCTRL_QUADMODE_MASK                 (0x8U)
+#define TPM_QDCTRL_QUADMODE_SHIFT                (3U)
+/*! QUADMODE - Quadrature Decoder Mode
+ *  0b0..Phase encoding mode.
+ *  0b1..Count and direction encoding mode.
+ */
+#define TPM_QDCTRL_QUADMODE(x)                   (((uint32_t)(((uint32_t)(x)) << TPM_QDCTRL_QUADMODE_SHIFT)) & TPM_QDCTRL_QUADMODE_MASK)
+/*! @} */
+
+/*! @name CONF - Configuration */
+/*! @{ */
+#define TPM_CONF_DOZEEN_MASK                     (0x20U)
+#define TPM_CONF_DOZEEN_SHIFT                    (5U)
+/*! DOZEEN - Doze Enable
+ *  0b0..Internal TPM counter continues in Doze mode.
+ *  0b1..Internal TPM counter is paused and does not increment during Doze mode. Trigger inputs and input capture events are ignored, and PWM outputs are forced to their default state.
+ */
+#define TPM_CONF_DOZEEN(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_DOZEEN_SHIFT)) & TPM_CONF_DOZEEN_MASK)
+#define TPM_CONF_DBGMODE_MASK                    (0xC0U)
+#define TPM_CONF_DBGMODE_SHIFT                   (6U)
+/*! DBGMODE - Debug Mode
+ *  0b00..TPM counter is paused and does not increment during debug mode. Trigger inputs and input capture events are ignored, and PWM outputs are forced to their default state.
+ *  0b11..TPM counter continues in debug mode.
+ */
+#define TPM_CONF_DBGMODE(x)                      (((uint32_t)(((uint32_t)(x)) << TPM_CONF_DBGMODE_SHIFT)) & TPM_CONF_DBGMODE_MASK)
+#define TPM_CONF_GTBSYNC_MASK                    (0x100U)
+#define TPM_CONF_GTBSYNC_SHIFT                   (8U)
+/*! GTBSYNC - Global Time Base Synchronization
+ *  0b0..Global timebase synchronization disabled.
+ *  0b1..Global timebase synchronization enabled.
+ */
+#define TPM_CONF_GTBSYNC(x)                      (((uint32_t)(((uint32_t)(x)) << TPM_CONF_GTBSYNC_SHIFT)) & TPM_CONF_GTBSYNC_MASK)
+#define TPM_CONF_GTBEEN_MASK                     (0x200U)
+#define TPM_CONF_GTBEEN_SHIFT                    (9U)
+/*! GTBEEN - Global time base enable
+ *  0b0..All channels use the internally generated TPM counter as their timebase
+ *  0b1..All channels use an externally generated global timebase as their timebase
+ */
+#define TPM_CONF_GTBEEN(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_GTBEEN_SHIFT)) & TPM_CONF_GTBEEN_MASK)
+#define TPM_CONF_CSOT_MASK                       (0x10000U)
+#define TPM_CONF_CSOT_SHIFT                      (16U)
+/*! CSOT - Counter Start on Trigger
+ *  0b0..TPM counter starts to increment immediately, once it is enabled.
+ *  0b1..TPM counter only starts to increment when it a rising edge on the selected input trigger is detected, after it has been enabled or after it has stopped due to overflow.
+ */
+#define TPM_CONF_CSOT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CSOT_SHIFT)) & TPM_CONF_CSOT_MASK)
+#define TPM_CONF_CSOO_MASK                       (0x20000U)
+#define TPM_CONF_CSOO_SHIFT                      (17U)
+/*! CSOO - Counter Stop On Overflow
+ *  0b0..TPM counter continues incrementing or decrementing after overflow
+ *  0b1..TPM counter stops incrementing or decrementing after overflow.
+ */
+#define TPM_CONF_CSOO(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CSOO_SHIFT)) & TPM_CONF_CSOO_MASK)
+#define TPM_CONF_CROT_MASK                       (0x40000U)
+#define TPM_CONF_CROT_SHIFT                      (18U)
+/*! CROT - Counter Reload On Trigger
+ *  0b0..Counter is not reloaded due to a rising edge on the selected input trigger
+ *  0b1..Counter is reloaded when a rising edge is detected on the selected input trigger
+ */
+#define TPM_CONF_CROT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CROT_SHIFT)) & TPM_CONF_CROT_MASK)
+#define TPM_CONF_CPOT_MASK                       (0x80000U)
+#define TPM_CONF_CPOT_SHIFT                      (19U)
+#define TPM_CONF_CPOT(x)                         (((uint32_t)(((uint32_t)(x)) << TPM_CONF_CPOT_SHIFT)) & TPM_CONF_CPOT_MASK)
+#define TPM_CONF_TRGPOL_MASK                     (0x400000U)
+#define TPM_CONF_TRGPOL_SHIFT                    (22U)
+/*! TRGPOL - Trigger Polarity
+ *  0b0..Trigger is active high.
+ *  0b1..Trigger is active low.
+ */
+#define TPM_CONF_TRGPOL(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGPOL_SHIFT)) & TPM_CONF_TRGPOL_MASK)
+#define TPM_CONF_TRGSRC_MASK                     (0x800000U)
+#define TPM_CONF_TRGSRC_SHIFT                    (23U)
+/*! TRGSRC - Trigger Source
+ *  0b0..Trigger source selected by TRGSEL is external.
+ *  0b1..Trigger source selected by TRGSEL is internal (channel pin input capture).
+ */
+#define TPM_CONF_TRGSRC(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGSRC_SHIFT)) & TPM_CONF_TRGSRC_MASK)
+#define TPM_CONF_TRGSEL_MASK                     (0x3000000U)
+#define TPM_CONF_TRGSEL_SHIFT                    (24U)
+/*! TRGSEL - Trigger Select
+ *  0b01..Channel 0 pin input capture
+ *  0b10..Channel 1 pin input capture
+ *  0b11..Channel 0 or Channel 1 pin input capture
+ */
+#define TPM_CONF_TRGSEL(x)                       (((uint32_t)(((uint32_t)(x)) << TPM_CONF_TRGSEL_SHIFT)) & TPM_CONF_TRGSEL_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TPM_Register_Masks */
+
+
+/* TPM - Peripheral instance base addresses */
+/** Peripheral TPM0 base address */
+#define TPM0_BASE                                (0x40035000u)
+/** Peripheral TPM0 base pointer */
+#define TPM0                                     ((TPM_Type *)TPM0_BASE)
+/** Peripheral TPM1 base address */
+#define TPM1_BASE                                (0x40036000u)
+/** Peripheral TPM1 base pointer */
+#define TPM1                                     ((TPM_Type *)TPM1_BASE)
+/** Peripheral TPM2 base address */
+#define TPM2_BASE                                (0x40037000u)
+/** Peripheral TPM2 base pointer */
+#define TPM2                                     ((TPM_Type *)TPM2_BASE)
+/** Peripheral TPM3 base address */
+#define TPM3_BASE                                (0x4102D000u)
+/** Peripheral TPM3 base pointer */
+#define TPM3                                     ((TPM_Type *)TPM3_BASE)
+/** Array initializer of TPM peripheral base addresses */
+#define TPM_BASE_ADDRS                           { TPM0_BASE, TPM1_BASE, TPM2_BASE, TPM3_BASE }
+/** Array initializer of TPM peripheral base pointers */
+#define TPM_BASE_PTRS                            { TPM0, TPM1, TPM2, TPM3 }
+/** Interrupt vectors for the TPM peripheral type */
+#define TPM_IRQS                                 { TPM0_IRQn, TPM1_IRQn, TPM2_IRQn, TPM3_IRQn }
+
+/*!
+ * @}
+ */ /* end of group TPM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TRGMUX Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRGMUX_Peripheral_Access_Layer TRGMUX Peripheral Access Layer
+ * @{
+ */
+
+/** TRGMUX - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t TRGCFG[25];                        /**< TRGMUX TRGMUX_DMAMUX0 Register..TRGMUX TRGMUX_LPDAC0 Register, array offset: 0x0, array step: 0x4 */
+} TRGMUX_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TRGMUX Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRGMUX_Register_Masks TRGMUX Register Masks
+ * @{
+ */
+
+/*! @name TRGCFG - TRGMUX TRGMUX_DMAMUX0 Register..TRGMUX TRGMUX_LPDAC0 Register */
+/*! @{ */
+#define TRGMUX_TRGCFG_SEL0_MASK                  (0x3FU)
+#define TRGMUX_TRGCFG_SEL0_SHIFT                 (0U)
+#define TRGMUX_TRGCFG_SEL0(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL0_SHIFT)) & TRGMUX_TRGCFG_SEL0_MASK)
+#define TRGMUX_TRGCFG_SEL1_MASK                  (0x3F00U)
+#define TRGMUX_TRGCFG_SEL1_SHIFT                 (8U)
+#define TRGMUX_TRGCFG_SEL1(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL1_SHIFT)) & TRGMUX_TRGCFG_SEL1_MASK)
+#define TRGMUX_TRGCFG_SEL2_MASK                  (0x3F0000U)
+#define TRGMUX_TRGCFG_SEL2_SHIFT                 (16U)
+#define TRGMUX_TRGCFG_SEL2(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL2_SHIFT)) & TRGMUX_TRGCFG_SEL2_MASK)
+#define TRGMUX_TRGCFG_SEL3_MASK                  (0x3F000000U)
+#define TRGMUX_TRGCFG_SEL3_SHIFT                 (24U)
+#define TRGMUX_TRGCFG_SEL3(x)                    (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_SEL3_SHIFT)) & TRGMUX_TRGCFG_SEL3_MASK)
+#define TRGMUX_TRGCFG_LK_MASK                    (0x80000000U)
+#define TRGMUX_TRGCFG_LK_SHIFT                   (31U)
+/*! LK - TRGMUX register lock.
+ *  0b0..Register can be written.
+ *  0b1..Register cannot be written until the next system Reset.
+ */
+#define TRGMUX_TRGCFG_LK(x)                      (((uint32_t)(((uint32_t)(x)) << TRGMUX_TRGCFG_LK_SHIFT)) & TRGMUX_TRGCFG_LK_MASK)
+/*! @} */
+
+/* The count of TRGMUX_TRGCFG */
+#define TRGMUX_TRGCFG_COUNT                      (25U)
+
+
+/*!
+ * @}
+ */ /* end of group TRGMUX_Register_Masks */
+
+
+/* TRGMUX - Peripheral instance base addresses */
+/** Peripheral TRGMUX0 base address */
+#define TRGMUX0_BASE                             (0x40029000u)
+/** Peripheral TRGMUX0 base pointer */
+#define TRGMUX0                                  ((TRGMUX_Type *)TRGMUX0_BASE)
+/** Peripheral TRGMUX1 base address */
+#define TRGMUX1_BASE                             (0x41025000u)
+/** Peripheral TRGMUX1 base pointer */
+#define TRGMUX1                                  ((TRGMUX_Type *)TRGMUX1_BASE)
+/** Array initializer of TRGMUX peripheral base addresses */
+#define TRGMUX_BASE_ADDRS                        { TRGMUX0_BASE, TRGMUX1_BASE }
+/** Array initializer of TRGMUX peripheral base pointers */
+#define TRGMUX_BASE_PTRS                         { TRGMUX0, TRGMUX1 }
+
+/*!
+ * @}
+ */ /* end of group TRGMUX_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TRNG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRNG_Peripheral_Access_Layer TRNG Peripheral Access Layer
+ * @{
+ */
+
+/** TRNG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t MCTL;                              /**< Miscellaneous Control Register, offset: 0x0 */
+  __IO uint32_t SCMISC;                            /**< Statistical Check Miscellaneous Register, offset: 0x4 */
+  __IO uint32_t PKRRNG;                            /**< Poker Range Register, offset: 0x8 */
+  union {                                          /* offset: 0xC */
+    __IO uint32_t PKRMAX;                            /**< Poker Maximum Limit Register, offset: 0xC */
+    __I  uint32_t PKRSQ;                             /**< Poker Square Calculation Result Register, offset: 0xC */
+  };
+  __IO uint32_t SDCTL;                             /**< Seed Control Register, offset: 0x10 */
+  union {                                          /* offset: 0x14 */
+    __IO uint32_t SBLIM;                             /**< Sparse Bit Limit Register, offset: 0x14 */
+    __I  uint32_t TOTSAM;                            /**< Total Samples Register, offset: 0x14 */
+  };
+  __IO uint32_t FRQMIN;                            /**< Frequency Count Minimum Limit Register, offset: 0x18 */
+  union {                                          /* offset: 0x1C */
+    __I  uint32_t FRQCNT;                            /**< Frequency Count Register, offset: 0x1C */
+    __IO uint32_t FRQMAX;                            /**< Frequency Count Maximum Limit Register, offset: 0x1C */
+  };
+  union {                                          /* offset: 0x20 */
+    __I  uint32_t SCMC;                              /**< Statistical Check Monobit Count Register, offset: 0x20 */
+    __IO uint32_t SCML;                              /**< Statistical Check Monobit Limit Register, offset: 0x20 */
+  };
+  union {                                          /* offset: 0x24 */
+    __I  uint32_t SCR1C;                             /**< Statistical Check Run Length 1 Count Register, offset: 0x24 */
+    __IO uint32_t SCR1L;                             /**< Statistical Check Run Length 1 Limit Register, offset: 0x24 */
+  };
+  union {                                          /* offset: 0x28 */
+    __I  uint32_t SCR2C;                             /**< Statistical Check Run Length 2 Count Register, offset: 0x28 */
+    __IO uint32_t SCR2L;                             /**< Statistical Check Run Length 2 Limit Register, offset: 0x28 */
+  };
+  union {                                          /* offset: 0x2C */
+    __I  uint32_t SCR3C;                             /**< Statistical Check Run Length 3 Count Register, offset: 0x2C */
+    __IO uint32_t SCR3L;                             /**< Statistical Check Run Length 3 Limit Register, offset: 0x2C */
+  };
+  union {                                          /* offset: 0x30 */
+    __I  uint32_t SCR4C;                             /**< Statistical Check Run Length 4 Count Register, offset: 0x30 */
+    __IO uint32_t SCR4L;                             /**< Statistical Check Run Length 4 Limit Register, offset: 0x30 */
+  };
+  union {                                          /* offset: 0x34 */
+    __I  uint32_t SCR5C;                             /**< Statistical Check Run Length 5 Count Register, offset: 0x34 */
+    __IO uint32_t SCR5L;                             /**< Statistical Check Run Length 5 Limit Register, offset: 0x34 */
+  };
+  union {                                          /* offset: 0x38 */
+    __I  uint32_t SCR6PC;                            /**< Statistical Check Run Length 6+ Count Register, offset: 0x38 */
+    __IO uint32_t SCR6PL;                            /**< Statistical Check Run Length 6+ Limit Register, offset: 0x38 */
+  };
+  __I  uint32_t STATUS;                            /**< Status Register, offset: 0x3C */
+  __I  uint32_t ENT[16];                           /**< Entropy Read Register, array offset: 0x40, array step: 0x4 */
+  __I  uint32_t PKRCNT10;                          /**< Statistical Check Poker Count 1 and 0 Register, offset: 0x80 */
+  __I  uint32_t PKRCNT32;                          /**< Statistical Check Poker Count 3 and 2 Register, offset: 0x84 */
+  __I  uint32_t PKRCNT54;                          /**< Statistical Check Poker Count 5 and 4 Register, offset: 0x88 */
+  __I  uint32_t PKRCNT76;                          /**< Statistical Check Poker Count 7 and 6 Register, offset: 0x8C */
+  __I  uint32_t PKRCNT98;                          /**< Statistical Check Poker Count 9 and 8 Register, offset: 0x90 */
+  __I  uint32_t PKRCNTBA;                          /**< Statistical Check Poker Count B and A Register, offset: 0x94 */
+  __I  uint32_t PKRCNTDC;                          /**< Statistical Check Poker Count D and C Register, offset: 0x98 */
+  __I  uint32_t PKRCNTFE;                          /**< Statistical Check Poker Count F and E Register, offset: 0x9C */
+  __IO uint32_t SEC_CFG;                           /**< Security Configuration Register, offset: 0xA0 */
+  __IO uint32_t INT_CTRL;                          /**< Interrupt Control Register, offset: 0xA4 */
+  __IO uint32_t INT_MASK;                          /**< Mask Register, offset: 0xA8 */
+  __I  uint32_t INT_STATUS;                        /**< Interrupt Status Register, offset: 0xAC */
+       uint8_t RESERVED_0[64];
+  __I  uint32_t VID1;                              /**< Version ID Register (MS), offset: 0xF0 */
+  __I  uint32_t VID2;                              /**< Version ID Register (LS), offset: 0xF4 */
+} TRNG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TRNG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TRNG_Register_Masks TRNG Register Masks
+ * @{
+ */
+
+/*! @name MCTL - Miscellaneous Control Register */
+/*! @{ */
+#define TRNG_MCTL_SAMP_MODE_MASK                 (0x3U)
+#define TRNG_MCTL_SAMP_MODE_SHIFT                (0U)
+/*! SAMP_MODE
+ *  0b00..use Von Neumann data into both Entropy shifter and Statistical Checker
+ *  0b01..use raw data into both Entropy shifter and Statistical Checker
+ *  0b10..use Von Neumann data into Entropy shifter. Use raw data into Statistical Checker
+ *  0b11..undefined/reserved.
+ */
+#define TRNG_MCTL_SAMP_MODE(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_SAMP_MODE_SHIFT)) & TRNG_MCTL_SAMP_MODE_MASK)
+#define TRNG_MCTL_OSC_DIV_MASK                   (0xCU)
+#define TRNG_MCTL_OSC_DIV_SHIFT                  (2U)
+/*! OSC_DIV
+ *  0b00..use ring oscillator with no divide
+ *  0b01..use ring oscillator divided-by-2
+ *  0b10..use ring oscillator divided-by-4
+ *  0b11..use ring oscillator divided-by-8
+ */
+#define TRNG_MCTL_OSC_DIV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_OSC_DIV_SHIFT)) & TRNG_MCTL_OSC_DIV_MASK)
+#define TRNG_MCTL_UNUSED4_MASK                   (0x10U)
+#define TRNG_MCTL_UNUSED4_SHIFT                  (4U)
+#define TRNG_MCTL_UNUSED4(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_UNUSED4_SHIFT)) & TRNG_MCTL_UNUSED4_MASK)
+#define TRNG_MCTL_TRNG_ACC_MASK                  (0x20U)
+#define TRNG_MCTL_TRNG_ACC_SHIFT                 (5U)
+#define TRNG_MCTL_TRNG_ACC(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TRNG_ACC_SHIFT)) & TRNG_MCTL_TRNG_ACC_MASK)
+#define TRNG_MCTL_RST_DEF_MASK                   (0x40U)
+#define TRNG_MCTL_RST_DEF_SHIFT                  (6U)
+#define TRNG_MCTL_RST_DEF(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_RST_DEF_SHIFT)) & TRNG_MCTL_RST_DEF_MASK)
+#define TRNG_MCTL_FOR_SCLK_MASK                  (0x80U)
+#define TRNG_MCTL_FOR_SCLK_SHIFT                 (7U)
+#define TRNG_MCTL_FOR_SCLK(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FOR_SCLK_SHIFT)) & TRNG_MCTL_FOR_SCLK_MASK)
+#define TRNG_MCTL_FCT_FAIL_MASK                  (0x100U)
+#define TRNG_MCTL_FCT_FAIL_SHIFT                 (8U)
+#define TRNG_MCTL_FCT_FAIL(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FCT_FAIL_SHIFT)) & TRNG_MCTL_FCT_FAIL_MASK)
+#define TRNG_MCTL_FCT_VAL_MASK                   (0x200U)
+#define TRNG_MCTL_FCT_VAL_SHIFT                  (9U)
+#define TRNG_MCTL_FCT_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_FCT_VAL_SHIFT)) & TRNG_MCTL_FCT_VAL_MASK)
+#define TRNG_MCTL_ENT_VAL_MASK                   (0x400U)
+#define TRNG_MCTL_ENT_VAL_SHIFT                  (10U)
+#define TRNG_MCTL_ENT_VAL(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_ENT_VAL_SHIFT)) & TRNG_MCTL_ENT_VAL_MASK)
+#define TRNG_MCTL_TST_OUT_MASK                   (0x800U)
+#define TRNG_MCTL_TST_OUT_SHIFT                  (11U)
+#define TRNG_MCTL_TST_OUT(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TST_OUT_SHIFT)) & TRNG_MCTL_TST_OUT_MASK)
+#define TRNG_MCTL_ERR_MASK                       (0x1000U)
+#define TRNG_MCTL_ERR_SHIFT                      (12U)
+#define TRNG_MCTL_ERR(x)                         (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_ERR_SHIFT)) & TRNG_MCTL_ERR_MASK)
+#define TRNG_MCTL_TSTOP_OK_MASK                  (0x2000U)
+#define TRNG_MCTL_TSTOP_OK_SHIFT                 (13U)
+#define TRNG_MCTL_TSTOP_OK(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_TSTOP_OK_SHIFT)) & TRNG_MCTL_TSTOP_OK_MASK)
+#define TRNG_MCTL_PRGM_MASK                      (0x10000U)
+#define TRNG_MCTL_PRGM_SHIFT                     (16U)
+#define TRNG_MCTL_PRGM(x)                        (((uint32_t)(((uint32_t)(x)) << TRNG_MCTL_PRGM_SHIFT)) & TRNG_MCTL_PRGM_MASK)
+/*! @} */
+
+/*! @name SCMISC - Statistical Check Miscellaneous Register */
+/*! @{ */
+#define TRNG_SCMISC_LRUN_MAX_MASK                (0xFFU)
+#define TRNG_SCMISC_LRUN_MAX_SHIFT               (0U)
+#define TRNG_SCMISC_LRUN_MAX(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCMISC_LRUN_MAX_SHIFT)) & TRNG_SCMISC_LRUN_MAX_MASK)
+#define TRNG_SCMISC_RTY_CT_MASK                  (0xF0000U)
+#define TRNG_SCMISC_RTY_CT_SHIFT                 (16U)
+#define TRNG_SCMISC_RTY_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCMISC_RTY_CT_SHIFT)) & TRNG_SCMISC_RTY_CT_MASK)
+/*! @} */
+
+/*! @name PKRRNG - Poker Range Register */
+/*! @{ */
+#define TRNG_PKRRNG_PKR_RNG_MASK                 (0xFFFFU)
+#define TRNG_PKRRNG_PKR_RNG_SHIFT                (0U)
+#define TRNG_PKRRNG_PKR_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_PKRRNG_PKR_RNG_SHIFT)) & TRNG_PKRRNG_PKR_RNG_MASK)
+/*! @} */
+
+/*! @name PKRMAX - Poker Maximum Limit Register */
+/*! @{ */
+#define TRNG_PKRMAX_PKR_MAX_MASK                 (0xFFFFFFU)
+#define TRNG_PKRMAX_PKR_MAX_SHIFT                (0U)
+#define TRNG_PKRMAX_PKR_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_PKRMAX_PKR_MAX_SHIFT)) & TRNG_PKRMAX_PKR_MAX_MASK)
+/*! @} */
+
+/*! @name PKRSQ - Poker Square Calculation Result Register */
+/*! @{ */
+#define TRNG_PKRSQ_PKR_SQ_MASK                   (0xFFFFFFU)
+#define TRNG_PKRSQ_PKR_SQ_SHIFT                  (0U)
+#define TRNG_PKRSQ_PKR_SQ(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_PKRSQ_PKR_SQ_SHIFT)) & TRNG_PKRSQ_PKR_SQ_MASK)
+/*! @} */
+
+/*! @name SDCTL - Seed Control Register */
+/*! @{ */
+#define TRNG_SDCTL_SAMP_SIZE_MASK                (0xFFFFU)
+#define TRNG_SDCTL_SAMP_SIZE_SHIFT               (0U)
+#define TRNG_SDCTL_SAMP_SIZE(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SDCTL_SAMP_SIZE_SHIFT)) & TRNG_SDCTL_SAMP_SIZE_MASK)
+#define TRNG_SDCTL_ENT_DLY_MASK                  (0xFFFF0000U)
+#define TRNG_SDCTL_ENT_DLY_SHIFT                 (16U)
+#define TRNG_SDCTL_ENT_DLY(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SDCTL_ENT_DLY_SHIFT)) & TRNG_SDCTL_ENT_DLY_MASK)
+/*! @} */
+
+/*! @name SBLIM - Sparse Bit Limit Register */
+/*! @{ */
+#define TRNG_SBLIM_SB_LIM_MASK                   (0x3FFU)
+#define TRNG_SBLIM_SB_LIM_SHIFT                  (0U)
+#define TRNG_SBLIM_SB_LIM(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_SBLIM_SB_LIM_SHIFT)) & TRNG_SBLIM_SB_LIM_MASK)
+/*! @} */
+
+/*! @name TOTSAM - Total Samples Register */
+/*! @{ */
+#define TRNG_TOTSAM_TOT_SAM_MASK                 (0xFFFFFU)
+#define TRNG_TOTSAM_TOT_SAM_SHIFT                (0U)
+#define TRNG_TOTSAM_TOT_SAM(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_TOTSAM_TOT_SAM_SHIFT)) & TRNG_TOTSAM_TOT_SAM_MASK)
+/*! @} */
+
+/*! @name FRQMIN - Frequency Count Minimum Limit Register */
+/*! @{ */
+#define TRNG_FRQMIN_FRQ_MIN_MASK                 (0x3FFFFFU)
+#define TRNG_FRQMIN_FRQ_MIN_SHIFT                (0U)
+#define TRNG_FRQMIN_FRQ_MIN(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_FRQMIN_FRQ_MIN_SHIFT)) & TRNG_FRQMIN_FRQ_MIN_MASK)
+/*! @} */
+
+/*! @name FRQCNT - Frequency Count Register */
+/*! @{ */
+#define TRNG_FRQCNT_FRQ_CT_MASK                  (0x3FFFFFU)
+#define TRNG_FRQCNT_FRQ_CT_SHIFT                 (0U)
+#define TRNG_FRQCNT_FRQ_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_FRQCNT_FRQ_CT_SHIFT)) & TRNG_FRQCNT_FRQ_CT_MASK)
+/*! @} */
+
+/*! @name FRQMAX - Frequency Count Maximum Limit Register */
+/*! @{ */
+#define TRNG_FRQMAX_FRQ_MAX_MASK                 (0x3FFFFFU)
+#define TRNG_FRQMAX_FRQ_MAX_SHIFT                (0U)
+#define TRNG_FRQMAX_FRQ_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_FRQMAX_FRQ_MAX_SHIFT)) & TRNG_FRQMAX_FRQ_MAX_MASK)
+/*! @} */
+
+/*! @name SCMC - Statistical Check Monobit Count Register */
+/*! @{ */
+#define TRNG_SCMC_MONO_CT_MASK                   (0xFFFFU)
+#define TRNG_SCMC_MONO_CT_SHIFT                  (0U)
+#define TRNG_SCMC_MONO_CT(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_SCMC_MONO_CT_SHIFT)) & TRNG_SCMC_MONO_CT_MASK)
+/*! @} */
+
+/*! @name SCML - Statistical Check Monobit Limit Register */
+/*! @{ */
+#define TRNG_SCML_MONO_MAX_MASK                  (0xFFFFU)
+#define TRNG_SCML_MONO_MAX_SHIFT                 (0U)
+#define TRNG_SCML_MONO_MAX(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCML_MONO_MAX_SHIFT)) & TRNG_SCML_MONO_MAX_MASK)
+#define TRNG_SCML_MONO_RNG_MASK                  (0xFFFF0000U)
+#define TRNG_SCML_MONO_RNG_SHIFT                 (16U)
+#define TRNG_SCML_MONO_RNG(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCML_MONO_RNG_SHIFT)) & TRNG_SCML_MONO_RNG_MASK)
+/*! @} */
+
+/*! @name SCR1C - Statistical Check Run Length 1 Count Register */
+/*! @{ */
+#define TRNG_SCR1C_R1_0_CT_MASK                  (0x7FFFU)
+#define TRNG_SCR1C_R1_0_CT_SHIFT                 (0U)
+#define TRNG_SCR1C_R1_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1C_R1_0_CT_SHIFT)) & TRNG_SCR1C_R1_0_CT_MASK)
+#define TRNG_SCR1C_R1_1_CT_MASK                  (0x7FFF0000U)
+#define TRNG_SCR1C_R1_1_CT_SHIFT                 (16U)
+#define TRNG_SCR1C_R1_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1C_R1_1_CT_SHIFT)) & TRNG_SCR1C_R1_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR1L - Statistical Check Run Length 1 Limit Register */
+/*! @{ */
+#define TRNG_SCR1L_RUN1_MAX_MASK                 (0x7FFFU)
+#define TRNG_SCR1L_RUN1_MAX_SHIFT                (0U)
+#define TRNG_SCR1L_RUN1_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1L_RUN1_MAX_SHIFT)) & TRNG_SCR1L_RUN1_MAX_MASK)
+#define TRNG_SCR1L_RUN1_RNG_MASK                 (0x7FFF0000U)
+#define TRNG_SCR1L_RUN1_RNG_SHIFT                (16U)
+#define TRNG_SCR1L_RUN1_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR1L_RUN1_RNG_SHIFT)) & TRNG_SCR1L_RUN1_RNG_MASK)
+/*! @} */
+
+/*! @name SCR2C - Statistical Check Run Length 2 Count Register */
+/*! @{ */
+#define TRNG_SCR2C_R2_0_CT_MASK                  (0x3FFFU)
+#define TRNG_SCR2C_R2_0_CT_SHIFT                 (0U)
+#define TRNG_SCR2C_R2_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2C_R2_0_CT_SHIFT)) & TRNG_SCR2C_R2_0_CT_MASK)
+#define TRNG_SCR2C_R2_1_CT_MASK                  (0x3FFF0000U)
+#define TRNG_SCR2C_R2_1_CT_SHIFT                 (16U)
+#define TRNG_SCR2C_R2_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2C_R2_1_CT_SHIFT)) & TRNG_SCR2C_R2_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR2L - Statistical Check Run Length 2 Limit Register */
+/*! @{ */
+#define TRNG_SCR2L_RUN2_MAX_MASK                 (0x3FFFU)
+#define TRNG_SCR2L_RUN2_MAX_SHIFT                (0U)
+#define TRNG_SCR2L_RUN2_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2L_RUN2_MAX_SHIFT)) & TRNG_SCR2L_RUN2_MAX_MASK)
+#define TRNG_SCR2L_RUN2_RNG_MASK                 (0x3FFF0000U)
+#define TRNG_SCR2L_RUN2_RNG_SHIFT                (16U)
+#define TRNG_SCR2L_RUN2_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR2L_RUN2_RNG_SHIFT)) & TRNG_SCR2L_RUN2_RNG_MASK)
+/*! @} */
+
+/*! @name SCR3C - Statistical Check Run Length 3 Count Register */
+/*! @{ */
+#define TRNG_SCR3C_R3_0_CT_MASK                  (0x1FFFU)
+#define TRNG_SCR3C_R3_0_CT_SHIFT                 (0U)
+#define TRNG_SCR3C_R3_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3C_R3_0_CT_SHIFT)) & TRNG_SCR3C_R3_0_CT_MASK)
+#define TRNG_SCR3C_R3_1_CT_MASK                  (0x1FFF0000U)
+#define TRNG_SCR3C_R3_1_CT_SHIFT                 (16U)
+#define TRNG_SCR3C_R3_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3C_R3_1_CT_SHIFT)) & TRNG_SCR3C_R3_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR3L - Statistical Check Run Length 3 Limit Register */
+/*! @{ */
+#define TRNG_SCR3L_RUN3_MAX_MASK                 (0x1FFFU)
+#define TRNG_SCR3L_RUN3_MAX_SHIFT                (0U)
+#define TRNG_SCR3L_RUN3_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3L_RUN3_MAX_SHIFT)) & TRNG_SCR3L_RUN3_MAX_MASK)
+#define TRNG_SCR3L_RUN3_RNG_MASK                 (0x1FFF0000U)
+#define TRNG_SCR3L_RUN3_RNG_SHIFT                (16U)
+#define TRNG_SCR3L_RUN3_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR3L_RUN3_RNG_SHIFT)) & TRNG_SCR3L_RUN3_RNG_MASK)
+/*! @} */
+
+/*! @name SCR4C - Statistical Check Run Length 4 Count Register */
+/*! @{ */
+#define TRNG_SCR4C_R4_0_CT_MASK                  (0xFFFU)
+#define TRNG_SCR4C_R4_0_CT_SHIFT                 (0U)
+#define TRNG_SCR4C_R4_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4C_R4_0_CT_SHIFT)) & TRNG_SCR4C_R4_0_CT_MASK)
+#define TRNG_SCR4C_R4_1_CT_MASK                  (0xFFF0000U)
+#define TRNG_SCR4C_R4_1_CT_SHIFT                 (16U)
+#define TRNG_SCR4C_R4_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4C_R4_1_CT_SHIFT)) & TRNG_SCR4C_R4_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR4L - Statistical Check Run Length 4 Limit Register */
+/*! @{ */
+#define TRNG_SCR4L_RUN4_MAX_MASK                 (0xFFFU)
+#define TRNG_SCR4L_RUN4_MAX_SHIFT                (0U)
+#define TRNG_SCR4L_RUN4_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4L_RUN4_MAX_SHIFT)) & TRNG_SCR4L_RUN4_MAX_MASK)
+#define TRNG_SCR4L_RUN4_RNG_MASK                 (0xFFF0000U)
+#define TRNG_SCR4L_RUN4_RNG_SHIFT                (16U)
+#define TRNG_SCR4L_RUN4_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR4L_RUN4_RNG_SHIFT)) & TRNG_SCR4L_RUN4_RNG_MASK)
+/*! @} */
+
+/*! @name SCR5C - Statistical Check Run Length 5 Count Register */
+/*! @{ */
+#define TRNG_SCR5C_R5_0_CT_MASK                  (0x7FFU)
+#define TRNG_SCR5C_R5_0_CT_SHIFT                 (0U)
+#define TRNG_SCR5C_R5_0_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5C_R5_0_CT_SHIFT)) & TRNG_SCR5C_R5_0_CT_MASK)
+#define TRNG_SCR5C_R5_1_CT_MASK                  (0x7FF0000U)
+#define TRNG_SCR5C_R5_1_CT_SHIFT                 (16U)
+#define TRNG_SCR5C_R5_1_CT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5C_R5_1_CT_SHIFT)) & TRNG_SCR5C_R5_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR5L - Statistical Check Run Length 5 Limit Register */
+/*! @{ */
+#define TRNG_SCR5L_RUN5_MAX_MASK                 (0x7FFU)
+#define TRNG_SCR5L_RUN5_MAX_SHIFT                (0U)
+#define TRNG_SCR5L_RUN5_MAX(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5L_RUN5_MAX_SHIFT)) & TRNG_SCR5L_RUN5_MAX_MASK)
+#define TRNG_SCR5L_RUN5_RNG_MASK                 (0x7FF0000U)
+#define TRNG_SCR5L_RUN5_RNG_SHIFT                (16U)
+#define TRNG_SCR5L_RUN5_RNG(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_SCR5L_RUN5_RNG_SHIFT)) & TRNG_SCR5L_RUN5_RNG_MASK)
+/*! @} */
+
+/*! @name SCR6PC - Statistical Check Run Length 6+ Count Register */
+/*! @{ */
+#define TRNG_SCR6PC_R6P_0_CT_MASK                (0x7FFU)
+#define TRNG_SCR6PC_R6P_0_CT_SHIFT               (0U)
+#define TRNG_SCR6PC_R6P_0_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PC_R6P_0_CT_SHIFT)) & TRNG_SCR6PC_R6P_0_CT_MASK)
+#define TRNG_SCR6PC_R6P_1_CT_MASK                (0x7FF0000U)
+#define TRNG_SCR6PC_R6P_1_CT_SHIFT               (16U)
+#define TRNG_SCR6PC_R6P_1_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PC_R6P_1_CT_SHIFT)) & TRNG_SCR6PC_R6P_1_CT_MASK)
+/*! @} */
+
+/*! @name SCR6PL - Statistical Check Run Length 6+ Limit Register */
+/*! @{ */
+#define TRNG_SCR6PL_RUN6P_MAX_MASK               (0x7FFU)
+#define TRNG_SCR6PL_RUN6P_MAX_SHIFT              (0U)
+#define TRNG_SCR6PL_RUN6P_MAX(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PL_RUN6P_MAX_SHIFT)) & TRNG_SCR6PL_RUN6P_MAX_MASK)
+#define TRNG_SCR6PL_RUN6P_RNG_MASK               (0x7FF0000U)
+#define TRNG_SCR6PL_RUN6P_RNG_SHIFT              (16U)
+#define TRNG_SCR6PL_RUN6P_RNG(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_SCR6PL_RUN6P_RNG_SHIFT)) & TRNG_SCR6PL_RUN6P_RNG_MASK)
+/*! @} */
+
+/*! @name STATUS - Status Register */
+/*! @{ */
+#define TRNG_STATUS_TF1BR0_MASK                  (0x1U)
+#define TRNG_STATUS_TF1BR0_SHIFT                 (0U)
+#define TRNG_STATUS_TF1BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF1BR0_SHIFT)) & TRNG_STATUS_TF1BR0_MASK)
+#define TRNG_STATUS_TF1BR1_MASK                  (0x2U)
+#define TRNG_STATUS_TF1BR1_SHIFT                 (1U)
+#define TRNG_STATUS_TF1BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF1BR1_SHIFT)) & TRNG_STATUS_TF1BR1_MASK)
+#define TRNG_STATUS_TF2BR0_MASK                  (0x4U)
+#define TRNG_STATUS_TF2BR0_SHIFT                 (2U)
+#define TRNG_STATUS_TF2BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF2BR0_SHIFT)) & TRNG_STATUS_TF2BR0_MASK)
+#define TRNG_STATUS_TF2BR1_MASK                  (0x8U)
+#define TRNG_STATUS_TF2BR1_SHIFT                 (3U)
+#define TRNG_STATUS_TF2BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF2BR1_SHIFT)) & TRNG_STATUS_TF2BR1_MASK)
+#define TRNG_STATUS_TF3BR0_MASK                  (0x10U)
+#define TRNG_STATUS_TF3BR0_SHIFT                 (4U)
+#define TRNG_STATUS_TF3BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF3BR0_SHIFT)) & TRNG_STATUS_TF3BR0_MASK)
+#define TRNG_STATUS_TF3BR1_MASK                  (0x20U)
+#define TRNG_STATUS_TF3BR1_SHIFT                 (5U)
+#define TRNG_STATUS_TF3BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF3BR1_SHIFT)) & TRNG_STATUS_TF3BR1_MASK)
+#define TRNG_STATUS_TF4BR0_MASK                  (0x40U)
+#define TRNG_STATUS_TF4BR0_SHIFT                 (6U)
+#define TRNG_STATUS_TF4BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF4BR0_SHIFT)) & TRNG_STATUS_TF4BR0_MASK)
+#define TRNG_STATUS_TF4BR1_MASK                  (0x80U)
+#define TRNG_STATUS_TF4BR1_SHIFT                 (7U)
+#define TRNG_STATUS_TF4BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF4BR1_SHIFT)) & TRNG_STATUS_TF4BR1_MASK)
+#define TRNG_STATUS_TF5BR0_MASK                  (0x100U)
+#define TRNG_STATUS_TF5BR0_SHIFT                 (8U)
+#define TRNG_STATUS_TF5BR0(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF5BR0_SHIFT)) & TRNG_STATUS_TF5BR0_MASK)
+#define TRNG_STATUS_TF5BR1_MASK                  (0x200U)
+#define TRNG_STATUS_TF5BR1_SHIFT                 (9U)
+#define TRNG_STATUS_TF5BR1(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF5BR1_SHIFT)) & TRNG_STATUS_TF5BR1_MASK)
+#define TRNG_STATUS_TF6PBR0_MASK                 (0x400U)
+#define TRNG_STATUS_TF6PBR0_SHIFT                (10U)
+#define TRNG_STATUS_TF6PBR0(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF6PBR0_SHIFT)) & TRNG_STATUS_TF6PBR0_MASK)
+#define TRNG_STATUS_TF6PBR1_MASK                 (0x800U)
+#define TRNG_STATUS_TF6PBR1_SHIFT                (11U)
+#define TRNG_STATUS_TF6PBR1(x)                   (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TF6PBR1_SHIFT)) & TRNG_STATUS_TF6PBR1_MASK)
+#define TRNG_STATUS_TFSB_MASK                    (0x1000U)
+#define TRNG_STATUS_TFSB_SHIFT                   (12U)
+#define TRNG_STATUS_TFSB(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFSB_SHIFT)) & TRNG_STATUS_TFSB_MASK)
+#define TRNG_STATUS_TFLR_MASK                    (0x2000U)
+#define TRNG_STATUS_TFLR_SHIFT                   (13U)
+#define TRNG_STATUS_TFLR(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFLR_SHIFT)) & TRNG_STATUS_TFLR_MASK)
+#define TRNG_STATUS_TFP_MASK                     (0x4000U)
+#define TRNG_STATUS_TFP_SHIFT                    (14U)
+#define TRNG_STATUS_TFP(x)                       (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFP_SHIFT)) & TRNG_STATUS_TFP_MASK)
+#define TRNG_STATUS_TFMB_MASK                    (0x8000U)
+#define TRNG_STATUS_TFMB_SHIFT                   (15U)
+#define TRNG_STATUS_TFMB(x)                      (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_TFMB_SHIFT)) & TRNG_STATUS_TFMB_MASK)
+#define TRNG_STATUS_RETRY_CT_MASK                (0xF0000U)
+#define TRNG_STATUS_RETRY_CT_SHIFT               (16U)
+#define TRNG_STATUS_RETRY_CT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_STATUS_RETRY_CT_SHIFT)) & TRNG_STATUS_RETRY_CT_MASK)
+/*! @} */
+
+/*! @name ENT - Entropy Read Register */
+/*! @{ */
+#define TRNG_ENT_ENT_MASK                        (0xFFFFFFFFU)
+#define TRNG_ENT_ENT_SHIFT                       (0U)
+#define TRNG_ENT_ENT(x)                          (((uint32_t)(((uint32_t)(x)) << TRNG_ENT_ENT_SHIFT)) & TRNG_ENT_ENT_MASK)
+/*! @} */
+
+/* The count of TRNG_ENT */
+#define TRNG_ENT_COUNT                           (16U)
+
+/*! @name PKRCNT10 - Statistical Check Poker Count 1 and 0 Register */
+/*! @{ */
+#define TRNG_PKRCNT10_PKR_0_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT10_PKR_0_CT_SHIFT             (0U)
+#define TRNG_PKRCNT10_PKR_0_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT10_PKR_0_CT_SHIFT)) & TRNG_PKRCNT10_PKR_0_CT_MASK)
+#define TRNG_PKRCNT10_PKR_1_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT10_PKR_1_CT_SHIFT             (16U)
+#define TRNG_PKRCNT10_PKR_1_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT10_PKR_1_CT_SHIFT)) & TRNG_PKRCNT10_PKR_1_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT32 - Statistical Check Poker Count 3 and 2 Register */
+/*! @{ */
+#define TRNG_PKRCNT32_PKR_2_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT32_PKR_2_CT_SHIFT             (0U)
+#define TRNG_PKRCNT32_PKR_2_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT32_PKR_2_CT_SHIFT)) & TRNG_PKRCNT32_PKR_2_CT_MASK)
+#define TRNG_PKRCNT32_PKR_3_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT32_PKR_3_CT_SHIFT             (16U)
+#define TRNG_PKRCNT32_PKR_3_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT32_PKR_3_CT_SHIFT)) & TRNG_PKRCNT32_PKR_3_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT54 - Statistical Check Poker Count 5 and 4 Register */
+/*! @{ */
+#define TRNG_PKRCNT54_PKR_4_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT54_PKR_4_CT_SHIFT             (0U)
+#define TRNG_PKRCNT54_PKR_4_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT54_PKR_4_CT_SHIFT)) & TRNG_PKRCNT54_PKR_4_CT_MASK)
+#define TRNG_PKRCNT54_PKR_5_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT54_PKR_5_CT_SHIFT             (16U)
+#define TRNG_PKRCNT54_PKR_5_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT54_PKR_5_CT_SHIFT)) & TRNG_PKRCNT54_PKR_5_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT76 - Statistical Check Poker Count 7 and 6 Register */
+/*! @{ */
+#define TRNG_PKRCNT76_PKR_6_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT76_PKR_6_CT_SHIFT             (0U)
+#define TRNG_PKRCNT76_PKR_6_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT76_PKR_6_CT_SHIFT)) & TRNG_PKRCNT76_PKR_6_CT_MASK)
+#define TRNG_PKRCNT76_PKR_7_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT76_PKR_7_CT_SHIFT             (16U)
+#define TRNG_PKRCNT76_PKR_7_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT76_PKR_7_CT_SHIFT)) & TRNG_PKRCNT76_PKR_7_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNT98 - Statistical Check Poker Count 9 and 8 Register */
+/*! @{ */
+#define TRNG_PKRCNT98_PKR_8_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNT98_PKR_8_CT_SHIFT             (0U)
+#define TRNG_PKRCNT98_PKR_8_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT98_PKR_8_CT_SHIFT)) & TRNG_PKRCNT98_PKR_8_CT_MASK)
+#define TRNG_PKRCNT98_PKR_9_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNT98_PKR_9_CT_SHIFT             (16U)
+#define TRNG_PKRCNT98_PKR_9_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNT98_PKR_9_CT_SHIFT)) & TRNG_PKRCNT98_PKR_9_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTBA - Statistical Check Poker Count B and A Register */
+/*! @{ */
+#define TRNG_PKRCNTBA_PKR_A_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTBA_PKR_A_CT_SHIFT             (0U)
+#define TRNG_PKRCNTBA_PKR_A_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTBA_PKR_A_CT_SHIFT)) & TRNG_PKRCNTBA_PKR_A_CT_MASK)
+#define TRNG_PKRCNTBA_PKR_B_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTBA_PKR_B_CT_SHIFT             (16U)
+#define TRNG_PKRCNTBA_PKR_B_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTBA_PKR_B_CT_SHIFT)) & TRNG_PKRCNTBA_PKR_B_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTDC - Statistical Check Poker Count D and C Register */
+/*! @{ */
+#define TRNG_PKRCNTDC_PKR_C_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTDC_PKR_C_CT_SHIFT             (0U)
+#define TRNG_PKRCNTDC_PKR_C_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTDC_PKR_C_CT_SHIFT)) & TRNG_PKRCNTDC_PKR_C_CT_MASK)
+#define TRNG_PKRCNTDC_PKR_D_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTDC_PKR_D_CT_SHIFT             (16U)
+#define TRNG_PKRCNTDC_PKR_D_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTDC_PKR_D_CT_SHIFT)) & TRNG_PKRCNTDC_PKR_D_CT_MASK)
+/*! @} */
+
+/*! @name PKRCNTFE - Statistical Check Poker Count F and E Register */
+/*! @{ */
+#define TRNG_PKRCNTFE_PKR_E_CT_MASK              (0xFFFFU)
+#define TRNG_PKRCNTFE_PKR_E_CT_SHIFT             (0U)
+#define TRNG_PKRCNTFE_PKR_E_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTFE_PKR_E_CT_SHIFT)) & TRNG_PKRCNTFE_PKR_E_CT_MASK)
+#define TRNG_PKRCNTFE_PKR_F_CT_MASK              (0xFFFF0000U)
+#define TRNG_PKRCNTFE_PKR_F_CT_SHIFT             (16U)
+#define TRNG_PKRCNTFE_PKR_F_CT(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_PKRCNTFE_PKR_F_CT_SHIFT)) & TRNG_PKRCNTFE_PKR_F_CT_MASK)
+/*! @} */
+
+/*! @name SEC_CFG - Security Configuration Register */
+/*! @{ */
+#define TRNG_SEC_CFG_UNUSED0_MASK                (0x1U)
+#define TRNG_SEC_CFG_UNUSED0_SHIFT               (0U)
+#define TRNG_SEC_CFG_UNUSED0(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_UNUSED0_SHIFT)) & TRNG_SEC_CFG_UNUSED0_MASK)
+#define TRNG_SEC_CFG_NO_PRGM_MASK                (0x2U)
+#define TRNG_SEC_CFG_NO_PRGM_SHIFT               (1U)
+/*! NO_PRGM
+ *  0b0..Programability of registers controlled only by the Miscellaneous Control Register's access mode bit.
+ *  0b1..Overides Miscellaneous Control Register access mode and prevents TRNG register programming.
+ */
+#define TRNG_SEC_CFG_NO_PRGM(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_NO_PRGM_SHIFT)) & TRNG_SEC_CFG_NO_PRGM_MASK)
+#define TRNG_SEC_CFG_UNUSED2_MASK                (0x4U)
+#define TRNG_SEC_CFG_UNUSED2_SHIFT               (2U)
+#define TRNG_SEC_CFG_UNUSED2(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_SEC_CFG_UNUSED2_SHIFT)) & TRNG_SEC_CFG_UNUSED2_MASK)
+/*! @} */
+
+/*! @name INT_CTRL - Interrupt Control Register */
+/*! @{ */
+#define TRNG_INT_CTRL_HW_ERR_MASK                (0x1U)
+#define TRNG_INT_CTRL_HW_ERR_SHIFT               (0U)
+/*! HW_ERR
+ *  0b0..Corresponding bit of INT_STATUS register cleared.
+ *  0b1..Corresponding bit of INT_STATUS register active.
+ */
+#define TRNG_INT_CTRL_HW_ERR(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_HW_ERR_SHIFT)) & TRNG_INT_CTRL_HW_ERR_MASK)
+#define TRNG_INT_CTRL_ENT_VAL_MASK               (0x2U)
+#define TRNG_INT_CTRL_ENT_VAL_SHIFT              (1U)
+/*! ENT_VAL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_CTRL_ENT_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_ENT_VAL_SHIFT)) & TRNG_INT_CTRL_ENT_VAL_MASK)
+#define TRNG_INT_CTRL_FRQ_CT_FAIL_MASK           (0x4U)
+#define TRNG_INT_CTRL_FRQ_CT_FAIL_SHIFT          (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_CTRL_FRQ_CT_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_CTRL_FRQ_CT_FAIL_MASK)
+#define TRNG_INT_CTRL_UNUSED_MASK                (0xFFFFFFF8U)
+#define TRNG_INT_CTRL_UNUSED_SHIFT               (3U)
+#define TRNG_INT_CTRL_UNUSED(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_CTRL_UNUSED_SHIFT)) & TRNG_INT_CTRL_UNUSED_MASK)
+/*! @} */
+
+/*! @name INT_MASK - Mask Register */
+/*! @{ */
+#define TRNG_INT_MASK_HW_ERR_MASK                (0x1U)
+#define TRNG_INT_MASK_HW_ERR_SHIFT               (0U)
+/*! HW_ERR
+ *  0b0..Corresponding interrupt of INT_STATUS is masked.
+ *  0b1..Corresponding bit of INT_STATUS is active.
+ */
+#define TRNG_INT_MASK_HW_ERR(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_HW_ERR_SHIFT)) & TRNG_INT_MASK_HW_ERR_MASK)
+#define TRNG_INT_MASK_ENT_VAL_MASK               (0x2U)
+#define TRNG_INT_MASK_ENT_VAL_SHIFT              (1U)
+/*! ENT_VAL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_MASK_ENT_VAL(x)                 (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_ENT_VAL_SHIFT)) & TRNG_INT_MASK_ENT_VAL_MASK)
+#define TRNG_INT_MASK_FRQ_CT_FAIL_MASK           (0x4U)
+#define TRNG_INT_MASK_FRQ_CT_FAIL_SHIFT          (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..Same behavior as bit 0 of this register.
+ *  0b1..Same behavior as bit 0 of this register.
+ */
+#define TRNG_INT_MASK_FRQ_CT_FAIL(x)             (((uint32_t)(((uint32_t)(x)) << TRNG_INT_MASK_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_MASK_FRQ_CT_FAIL_MASK)
+/*! @} */
+
+/*! @name INT_STATUS - Interrupt Status Register */
+/*! @{ */
+#define TRNG_INT_STATUS_HW_ERR_MASK              (0x1U)
+#define TRNG_INT_STATUS_HW_ERR_SHIFT             (0U)
+/*! HW_ERR
+ *  0b0..no error
+ *  0b1..error detected.
+ */
+#define TRNG_INT_STATUS_HW_ERR(x)                (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_HW_ERR_SHIFT)) & TRNG_INT_STATUS_HW_ERR_MASK)
+#define TRNG_INT_STATUS_ENT_VAL_MASK             (0x2U)
+#define TRNG_INT_STATUS_ENT_VAL_SHIFT            (1U)
+/*! ENT_VAL
+ *  0b0..Busy generation entropy. Any value read is invalid.
+ *  0b1..TRNG can be stopped and entropy is valid if read.
+ */
+#define TRNG_INT_STATUS_ENT_VAL(x)               (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_ENT_VAL_SHIFT)) & TRNG_INT_STATUS_ENT_VAL_MASK)
+#define TRNG_INT_STATUS_FRQ_CT_FAIL_MASK         (0x4U)
+#define TRNG_INT_STATUS_FRQ_CT_FAIL_SHIFT        (2U)
+/*! FRQ_CT_FAIL
+ *  0b0..No hardware nor self test frequency errors.
+ *  0b1..The frequency counter has detected a failure.
+ */
+#define TRNG_INT_STATUS_FRQ_CT_FAIL(x)           (((uint32_t)(((uint32_t)(x)) << TRNG_INT_STATUS_FRQ_CT_FAIL_SHIFT)) & TRNG_INT_STATUS_FRQ_CT_FAIL_MASK)
+/*! @} */
+
+/*! @name VID1 - Version ID Register (MS) */
+/*! @{ */
+#define TRNG_VID1_MIN_REV_MASK                   (0xFFU)
+#define TRNG_VID1_MIN_REV_SHIFT                  (0U)
+/*! MIN_REV
+ *  0b00000000..Minor revision number for TRNG.
+ */
+#define TRNG_VID1_MIN_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_MIN_REV_SHIFT)) & TRNG_VID1_MIN_REV_MASK)
+#define TRNG_VID1_MAJ_REV_MASK                   (0xFF00U)
+#define TRNG_VID1_MAJ_REV_SHIFT                  (8U)
+/*! MAJ_REV
+ *  0b00000001..Major revision number for TRNG.
+ */
+#define TRNG_VID1_MAJ_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_MAJ_REV_SHIFT)) & TRNG_VID1_MAJ_REV_MASK)
+#define TRNG_VID1_IP_ID_MASK                     (0xFFFF0000U)
+#define TRNG_VID1_IP_ID_SHIFT                    (16U)
+/*! IP_ID
+ *  0b0000000000110000..ID for TRNG.
+ */
+#define TRNG_VID1_IP_ID(x)                       (((uint32_t)(((uint32_t)(x)) << TRNG_VID1_IP_ID_SHIFT)) & TRNG_VID1_IP_ID_MASK)
+/*! @} */
+
+/*! @name VID2 - Version ID Register (LS) */
+/*! @{ */
+#define TRNG_VID2_CONFIG_OPT_MASK                (0xFFU)
+#define TRNG_VID2_CONFIG_OPT_SHIFT               (0U)
+/*! CONFIG_OPT
+ *  0b00000000..TRNG_CONFIG_OPT for TRNG.
+ */
+#define TRNG_VID2_CONFIG_OPT(x)                  (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_CONFIG_OPT_SHIFT)) & TRNG_VID2_CONFIG_OPT_MASK)
+#define TRNG_VID2_ECO_REV_MASK                   (0xFF00U)
+#define TRNG_VID2_ECO_REV_SHIFT                  (8U)
+/*! ECO_REV
+ *  0b00000000..TRNG_ECO_REV for TRNG.
+ */
+#define TRNG_VID2_ECO_REV(x)                     (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_ECO_REV_SHIFT)) & TRNG_VID2_ECO_REV_MASK)
+#define TRNG_VID2_INTG_OPT_MASK                  (0xFF0000U)
+#define TRNG_VID2_INTG_OPT_SHIFT                 (16U)
+/*! INTG_OPT
+ *  0b00000000..INTG_OPT for TRNG.
+ */
+#define TRNG_VID2_INTG_OPT(x)                    (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_INTG_OPT_SHIFT)) & TRNG_VID2_INTG_OPT_MASK)
+#define TRNG_VID2_ERA_MASK                       (0xFF000000U)
+#define TRNG_VID2_ERA_SHIFT                      (24U)
+/*! ERA
+ *  0b00000000..COMPILE_OPT for TRNG.
+ */
+#define TRNG_VID2_ERA(x)                         (((uint32_t)(((uint32_t)(x)) << TRNG_VID2_ERA_SHIFT)) & TRNG_VID2_ERA_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TRNG_Register_Masks */
+
+
+/* TRNG - Peripheral instance base addresses */
+/** Peripheral TRNG base address */
+#define TRNG_BASE                                (0x41029000u)
+/** Peripheral TRNG base pointer */
+#define TRNG                                     ((TRNG_Type *)TRNG_BASE)
+/** Array initializer of TRNG peripheral base addresses */
+#define TRNG_BASE_ADDRS                          { TRNG_BASE }
+/** Array initializer of TRNG peripheral base pointers */
+#define TRNG_BASE_PTRS                           { TRNG }
+/** Interrupt vectors for the TRNG peripheral type */
+#define TRNG_IRQS                                { TRNG_IRQn }
+/** Backward compatibility macros */
+#define TRNG0                                    TRNG
+
+
+/*!
+ * @}
+ */ /* end of group TRNG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- TSTMR Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TSTMR_Peripheral_Access_Layer TSTMR Peripheral Access Layer
+ * @{
+ */
+
+/** TSTMR - Register Layout Typedef */
+typedef struct {
+  __I  uint32_t L;                                 /**< Time Stamp Timer Register Low, offset: 0x0 */
+  __I  uint32_t H;                                 /**< Time Stamp Timer Register High, offset: 0x4 */
+} TSTMR_Type;
+
+/* ----------------------------------------------------------------------------
+   -- TSTMR Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup TSTMR_Register_Masks TSTMR Register Masks
+ * @{
+ */
+
+/*! @name L - Time Stamp Timer Register Low */
+/*! @{ */
+#define TSTMR_L_VALUE_MASK                       (0xFFFFFFFFU)
+#define TSTMR_L_VALUE_SHIFT                      (0U)
+#define TSTMR_L_VALUE(x)                         (((uint32_t)(((uint32_t)(x)) << TSTMR_L_VALUE_SHIFT)) & TSTMR_L_VALUE_MASK)
+/*! @} */
+
+/*! @name H - Time Stamp Timer Register High */
+/*! @{ */
+#define TSTMR_H_VALUE_MASK                       (0xFFFFFFU)
+#define TSTMR_H_VALUE_SHIFT                      (0U)
+#define TSTMR_H_VALUE(x)                         (((uint32_t)(((uint32_t)(x)) << TSTMR_H_VALUE_SHIFT)) & TSTMR_H_VALUE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group TSTMR_Register_Masks */
+
+
+/* TSTMR - Peripheral instance base addresses */
+/** Peripheral TSTMRB base address */
+#define TSTMRB_BASE                              (0x4102C000u)
+/** Peripheral TSTMRB base pointer */
+#define TSTMRB                                   ((TSTMR_Type *)TSTMRB_BASE)
+/** Array initializer of TSTMR peripheral base addresses */
+#define TSTMR_BASE_ADDRS                         { TSTMRB_BASE }
+/** Array initializer of TSTMR peripheral base pointers */
+#define TSTMR_BASE_PTRS                          { TSTMRB }
+
+/*!
+ * @}
+ */ /* end of group TSTMR_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USB Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USB_Peripheral_Access_Layer USB Peripheral Access Layer
+ * @{
+ */
+
+/** USB - Register Layout Typedef */
+typedef struct {
+  __I  uint8_t PERID;                              /**< Peripheral ID register, offset: 0x0 */
+       uint8_t RESERVED_0[3];
+  __I  uint8_t IDCOMP;                             /**< Peripheral ID Complement register, offset: 0x4 */
+       uint8_t RESERVED_1[3];
+  __I  uint8_t REV;                                /**< Peripheral Revision register, offset: 0x8 */
+       uint8_t RESERVED_2[3];
+  __I  uint8_t ADDINFO;                            /**< Peripheral Additional Info register, offset: 0xC */
+       uint8_t RESERVED_3[15];
+  __IO uint8_t OTGCTL;                             /**< OTG Control register, offset: 0x1C */
+       uint8_t RESERVED_4[99];
+  __IO uint8_t ISTAT;                              /**< Interrupt Status register, offset: 0x80 */
+       uint8_t RESERVED_5[3];
+  __IO uint8_t INTEN;                              /**< Interrupt Enable register, offset: 0x84 */
+       uint8_t RESERVED_6[3];
+  __IO uint8_t ERRSTAT;                            /**< Error Interrupt Status register, offset: 0x88 */
+       uint8_t RESERVED_7[3];
+  __IO uint8_t ERREN;                              /**< Error Interrupt Enable register, offset: 0x8C */
+       uint8_t RESERVED_8[3];
+  __I  uint8_t STAT;                               /**< Status register, offset: 0x90 */
+       uint8_t RESERVED_9[3];
+  __IO uint8_t CTL;                                /**< Control register, offset: 0x94 */
+       uint8_t RESERVED_10[3];
+  __IO uint8_t ADDR;                               /**< Address register, offset: 0x98 */
+       uint8_t RESERVED_11[3];
+  __IO uint8_t BDTPAGE1;                           /**< BDT Page register 1, offset: 0x9C */
+       uint8_t RESERVED_12[3];
+  __IO uint8_t FRMNUML;                            /**< Frame Number register Low, offset: 0xA0 */
+       uint8_t RESERVED_13[3];
+  __IO uint8_t FRMNUMH;                            /**< Frame Number register High, offset: 0xA4 */
+       uint8_t RESERVED_14[11];
+  __IO uint8_t BDTPAGE2;                           /**< BDT Page Register 2, offset: 0xB0 */
+       uint8_t RESERVED_15[3];
+  __IO uint8_t BDTPAGE3;                           /**< BDT Page Register 3, offset: 0xB4 */
+       uint8_t RESERVED_16[11];
+  struct {                                         /* offset: 0xC0, array step: 0x4 */
+    __IO uint8_t ENDPT;                              /**< Endpoint Control register, array offset: 0xC0, array step: 0x4 */
+         uint8_t RESERVED_0[3];
+  } ENDPOINT[16];
+  __IO uint8_t USBCTRL;                            /**< USB Control register, offset: 0x100 */
+       uint8_t RESERVED_17[3];
+  __I  uint8_t OBSERVE;                            /**< USB OTG Observe register, offset: 0x104 */
+       uint8_t RESERVED_18[3];
+  __IO uint8_t CONTROL;                            /**< USB OTG Control register, offset: 0x108 */
+       uint8_t RESERVED_19[3];
+  __IO uint8_t USBTRC0;                            /**< USB Transceiver Control register 0, offset: 0x10C */
+       uint8_t RESERVED_20[23];
+  __IO uint8_t KEEP_ALIVE_CTRL;                    /**< Keep Alive mode control, offset: 0x124 */
+       uint8_t RESERVED_21[3];
+  __IO uint8_t KEEP_ALIVE_WKCTRL;                  /**< Keep Alive mode wakeup control, offset: 0x128 */
+       uint8_t RESERVED_22[3];
+  __IO uint8_t MISCCTRL;                           /**< Miscellaneous Control register, offset: 0x12C */
+       uint8_t RESERVED_23[3];
+  __IO uint8_t STALL_IL_DIS;                       /**< Peripheral mode stall disable for endpoints 7 to 0 in IN direction, offset: 0x130 */
+       uint8_t RESERVED_24[3];
+  __IO uint8_t STALL_IH_DIS;                       /**< Peripheral mode stall disable for endpoints 15 to 8 in IN direction, offset: 0x134 */
+       uint8_t RESERVED_25[3];
+  __IO uint8_t STALL_OL_DIS;                       /**< Peripheral mode stall disable for endpoints 7 to 0 in OUT direction, offset: 0x138 */
+       uint8_t RESERVED_26[3];
+  __IO uint8_t STALL_OH_DIS;                       /**< Peripheral mode stall disable for endpoints 15 to 8 in OUT direction, offset: 0x13C */
+       uint8_t RESERVED_27[3];
+  __IO uint8_t CLK_RECOVER_CTRL;                   /**< USB Clock recovery control, offset: 0x140 */
+       uint8_t RESERVED_28[3];
+  __IO uint8_t CLK_RECOVER_IRC_EN;                 /**< IRC48MFIRC oscillator enable register, offset: 0x144 */
+       uint8_t RESERVED_29[15];
+  __IO uint8_t CLK_RECOVER_INT_EN;                 /**< Clock recovery combined interrupt enable, offset: 0x154 */
+       uint8_t RESERVED_30[7];
+  __IO uint8_t CLK_RECOVER_INT_STATUS;             /**< Clock recovery separated interrupt status, offset: 0x15C */
+} USB_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USB Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USB_Register_Masks USB Register Masks
+ * @{
+ */
+
+/*! @name PERID - Peripheral ID register */
+/*! @{ */
+#define USB_PERID_ID_MASK                        (0x3FU)
+#define USB_PERID_ID_SHIFT                       (0U)
+#define USB_PERID_ID(x)                          (((uint8_t)(((uint8_t)(x)) << USB_PERID_ID_SHIFT)) & USB_PERID_ID_MASK)
+/*! @} */
+
+/*! @name IDCOMP - Peripheral ID Complement register */
+/*! @{ */
+#define USB_IDCOMP_NID_MASK                      (0x3FU)
+#define USB_IDCOMP_NID_SHIFT                     (0U)
+#define USB_IDCOMP_NID(x)                        (((uint8_t)(((uint8_t)(x)) << USB_IDCOMP_NID_SHIFT)) & USB_IDCOMP_NID_MASK)
+/*! @} */
+
+/*! @name REV - Peripheral Revision register */
+/*! @{ */
+#define USB_REV_REV_MASK                         (0xFFU)
+#define USB_REV_REV_SHIFT                        (0U)
+#define USB_REV_REV(x)                           (((uint8_t)(((uint8_t)(x)) << USB_REV_REV_SHIFT)) & USB_REV_REV_MASK)
+/*! @} */
+
+/*! @name ADDINFO - Peripheral Additional Info register */
+/*! @{ */
+#define USB_ADDINFO_IEHOST_MASK                  (0x1U)
+#define USB_ADDINFO_IEHOST_SHIFT                 (0U)
+#define USB_ADDINFO_IEHOST(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ADDINFO_IEHOST_SHIFT)) & USB_ADDINFO_IEHOST_MASK)
+/*! @} */
+
+/*! @name OTGCTL - OTG Control register */
+/*! @{ */
+#define USB_OTGCTL_DPHIGH_MASK                   (0x80U)
+#define USB_OTGCTL_DPHIGH_SHIFT                  (7U)
+/*! DPHIGH - D+ Data Line pullup resistor enable
+ *  0b0..D+ pullup resistor is not enabled
+ *  0b1..D+ pullup resistor is enabled
+ */
+#define USB_OTGCTL_DPHIGH(x)                     (((uint8_t)(((uint8_t)(x)) << USB_OTGCTL_DPHIGH_SHIFT)) & USB_OTGCTL_DPHIGH_MASK)
+/*! @} */
+
+/*! @name ISTAT - Interrupt Status register */
+/*! @{ */
+#define USB_ISTAT_USBRST_MASK                    (0x1U)
+#define USB_ISTAT_USBRST_SHIFT                   (0U)
+#define USB_ISTAT_USBRST(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_USBRST_SHIFT)) & USB_ISTAT_USBRST_MASK)
+#define USB_ISTAT_ERROR_MASK                     (0x2U)
+#define USB_ISTAT_ERROR_SHIFT                    (1U)
+#define USB_ISTAT_ERROR(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_ERROR_SHIFT)) & USB_ISTAT_ERROR_MASK)
+#define USB_ISTAT_SOFTOK_MASK                    (0x4U)
+#define USB_ISTAT_SOFTOK_SHIFT                   (2U)
+#define USB_ISTAT_SOFTOK(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SOFTOK_SHIFT)) & USB_ISTAT_SOFTOK_MASK)
+#define USB_ISTAT_TOKDNE_MASK                    (0x8U)
+#define USB_ISTAT_TOKDNE_SHIFT                   (3U)
+#define USB_ISTAT_TOKDNE(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_TOKDNE_SHIFT)) & USB_ISTAT_TOKDNE_MASK)
+#define USB_ISTAT_SLEEP_MASK                     (0x10U)
+#define USB_ISTAT_SLEEP_SHIFT                    (4U)
+#define USB_ISTAT_SLEEP(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_SLEEP_SHIFT)) & USB_ISTAT_SLEEP_MASK)
+#define USB_ISTAT_RESUME_MASK                    (0x20U)
+#define USB_ISTAT_RESUME_SHIFT                   (5U)
+#define USB_ISTAT_RESUME(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_RESUME_SHIFT)) & USB_ISTAT_RESUME_MASK)
+#define USB_ISTAT_STALL_MASK                     (0x80U)
+#define USB_ISTAT_STALL_SHIFT                    (7U)
+#define USB_ISTAT_STALL(x)                       (((uint8_t)(((uint8_t)(x)) << USB_ISTAT_STALL_SHIFT)) & USB_ISTAT_STALL_MASK)
+/*! @} */
+
+/*! @name INTEN - Interrupt Enable register */
+/*! @{ */
+#define USB_INTEN_USBRSTEN_MASK                  (0x1U)
+#define USB_INTEN_USBRSTEN_SHIFT                 (0U)
+/*! USBRSTEN - USBRST Interrupt Enable
+ *  0b0..Disables the USBRST interrupt.
+ *  0b1..Enables the USBRST interrupt.
+ */
+#define USB_INTEN_USBRSTEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_USBRSTEN_SHIFT)) & USB_INTEN_USBRSTEN_MASK)
+#define USB_INTEN_ERROREN_MASK                   (0x2U)
+#define USB_INTEN_ERROREN_SHIFT                  (1U)
+/*! ERROREN - ERROR Interrupt Enable
+ *  0b0..Disables the ERROR interrupt.
+ *  0b1..Enables the ERROR interrupt.
+ */
+#define USB_INTEN_ERROREN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_ERROREN_SHIFT)) & USB_INTEN_ERROREN_MASK)
+#define USB_INTEN_SOFTOKEN_MASK                  (0x4U)
+#define USB_INTEN_SOFTOKEN_SHIFT                 (2U)
+/*! SOFTOKEN - SOFTOK Interrupt Enable
+ *  0b0..Disbles the SOFTOK interrupt.
+ *  0b1..Enables the SOFTOK interrupt.
+ */
+#define USB_INTEN_SOFTOKEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SOFTOKEN_SHIFT)) & USB_INTEN_SOFTOKEN_MASK)
+#define USB_INTEN_TOKDNEEN_MASK                  (0x8U)
+#define USB_INTEN_TOKDNEEN_SHIFT                 (3U)
+/*! TOKDNEEN - TOKDNE Interrupt Enable
+ *  0b0..Disables the TOKDNE interrupt.
+ *  0b1..Enables the TOKDNE interrupt.
+ */
+#define USB_INTEN_TOKDNEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_TOKDNEEN_SHIFT)) & USB_INTEN_TOKDNEEN_MASK)
+#define USB_INTEN_SLEEPEN_MASK                   (0x10U)
+#define USB_INTEN_SLEEPEN_SHIFT                  (4U)
+/*! SLEEPEN - SLEEP Interrupt Enable
+ *  0b0..Disables the SLEEP interrupt.
+ *  0b1..Enables the SLEEP interrupt.
+ */
+#define USB_INTEN_SLEEPEN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_SLEEPEN_SHIFT)) & USB_INTEN_SLEEPEN_MASK)
+#define USB_INTEN_RESUMEEN_MASK                  (0x20U)
+#define USB_INTEN_RESUMEEN_SHIFT                 (5U)
+/*! RESUMEEN - RESUME Interrupt Enable
+ *  0b0..Disables the RESUME interrupt.
+ *  0b1..Enables the RESUME interrupt.
+ */
+#define USB_INTEN_RESUMEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_INTEN_RESUMEEN_SHIFT)) & USB_INTEN_RESUMEEN_MASK)
+#define USB_INTEN_STALLEN_MASK                   (0x80U)
+#define USB_INTEN_STALLEN_SHIFT                  (7U)
+/*! STALLEN - STALL Interrupt Enable
+ *  0b0..Diasbles the STALL interrupt.
+ *  0b1..Enables the STALL interrupt.
+ */
+#define USB_INTEN_STALLEN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_INTEN_STALLEN_SHIFT)) & USB_INTEN_STALLEN_MASK)
+/*! @} */
+
+/*! @name ERRSTAT - Error Interrupt Status register */
+/*! @{ */
+#define USB_ERRSTAT_PIDERR_MASK                  (0x1U)
+#define USB_ERRSTAT_PIDERR_SHIFT                 (0U)
+#define USB_ERRSTAT_PIDERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_PIDERR_SHIFT)) & USB_ERRSTAT_PIDERR_MASK)
+#define USB_ERRSTAT_CRC5EOF_MASK                 (0x2U)
+#define USB_ERRSTAT_CRC5EOF_SHIFT                (1U)
+#define USB_ERRSTAT_CRC5EOF(x)                   (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC5EOF_SHIFT)) & USB_ERRSTAT_CRC5EOF_MASK)
+#define USB_ERRSTAT_CRC16_MASK                   (0x4U)
+#define USB_ERRSTAT_CRC16_SHIFT                  (2U)
+#define USB_ERRSTAT_CRC16(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_CRC16_SHIFT)) & USB_ERRSTAT_CRC16_MASK)
+#define USB_ERRSTAT_DFN8_MASK                    (0x8U)
+#define USB_ERRSTAT_DFN8_SHIFT                   (3U)
+#define USB_ERRSTAT_DFN8(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DFN8_SHIFT)) & USB_ERRSTAT_DFN8_MASK)
+#define USB_ERRSTAT_BTOERR_MASK                  (0x10U)
+#define USB_ERRSTAT_BTOERR_SHIFT                 (4U)
+#define USB_ERRSTAT_BTOERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTOERR_SHIFT)) & USB_ERRSTAT_BTOERR_MASK)
+#define USB_ERRSTAT_DMAERR_MASK                  (0x20U)
+#define USB_ERRSTAT_DMAERR_SHIFT                 (5U)
+#define USB_ERRSTAT_DMAERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_DMAERR_SHIFT)) & USB_ERRSTAT_DMAERR_MASK)
+#define USB_ERRSTAT_OWNERR_MASK                  (0x40U)
+#define USB_ERRSTAT_OWNERR_SHIFT                 (6U)
+#define USB_ERRSTAT_OWNERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_OWNERR_SHIFT)) & USB_ERRSTAT_OWNERR_MASK)
+#define USB_ERRSTAT_BTSERR_MASK                  (0x80U)
+#define USB_ERRSTAT_BTSERR_SHIFT                 (7U)
+#define USB_ERRSTAT_BTSERR(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERRSTAT_BTSERR_SHIFT)) & USB_ERRSTAT_BTSERR_MASK)
+/*! @} */
+
+/*! @name ERREN - Error Interrupt Enable register */
+/*! @{ */
+#define USB_ERREN_PIDERREN_MASK                  (0x1U)
+#define USB_ERREN_PIDERREN_SHIFT                 (0U)
+/*! PIDERREN - PIDERR Interrupt Enable
+ *  0b0..Disables the PIDERR interrupt.
+ *  0b1..Enters the PIDERR interrupt.
+ */
+#define USB_ERREN_PIDERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_PIDERREN_SHIFT)) & USB_ERREN_PIDERREN_MASK)
+#define USB_ERREN_CRC5EOFEN_MASK                 (0x2U)
+#define USB_ERREN_CRC5EOFEN_SHIFT                (1U)
+/*! CRC5EOFEN - CRC5/EOF Interrupt Enable
+ *  0b0..Disables the CRC5/EOF interrupt.
+ *  0b1..Enables the CRC5/EOF interrupt.
+ */
+#define USB_ERREN_CRC5EOFEN(x)                   (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC5EOFEN_SHIFT)) & USB_ERREN_CRC5EOFEN_MASK)
+#define USB_ERREN_CRC16EN_MASK                   (0x4U)
+#define USB_ERREN_CRC16EN_SHIFT                  (2U)
+/*! CRC16EN - CRC16 Interrupt Enable
+ *  0b0..Disables the CRC16 interrupt.
+ *  0b1..Enables the CRC16 interrupt.
+ */
+#define USB_ERREN_CRC16EN(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ERREN_CRC16EN_SHIFT)) & USB_ERREN_CRC16EN_MASK)
+#define USB_ERREN_DFN8EN_MASK                    (0x8U)
+#define USB_ERREN_DFN8EN_SHIFT                   (3U)
+/*! DFN8EN - DFN8 Interrupt Enable
+ *  0b0..Disables the DFN8 interrupt.
+ *  0b1..Enables the DFN8 interrupt.
+ */
+#define USB_ERREN_DFN8EN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DFN8EN_SHIFT)) & USB_ERREN_DFN8EN_MASK)
+#define USB_ERREN_BTOERREN_MASK                  (0x10U)
+#define USB_ERREN_BTOERREN_SHIFT                 (4U)
+/*! BTOERREN - BTOERR Interrupt Enable
+ *  0b0..Disables the BTOERR interrupt.
+ *  0b1..Enables the BTOERR interrupt.
+ */
+#define USB_ERREN_BTOERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTOERREN_SHIFT)) & USB_ERREN_BTOERREN_MASK)
+#define USB_ERREN_DMAERREN_MASK                  (0x20U)
+#define USB_ERREN_DMAERREN_SHIFT                 (5U)
+/*! DMAERREN - DMAERR Interrupt Enable
+ *  0b0..Disables the DMAERR interrupt.
+ *  0b1..Enables the DMAERR interrupt.
+ */
+#define USB_ERREN_DMAERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_DMAERREN_SHIFT)) & USB_ERREN_DMAERREN_MASK)
+#define USB_ERREN_OWNERREN_MASK                  (0x40U)
+#define USB_ERREN_OWNERREN_SHIFT                 (6U)
+/*! OWNERREN - OWNERR Interrupt Enable
+ *  0b0..Disables the OWNERR interrupt.
+ *  0b1..Enables the OWNERR interrupt.
+ */
+#define USB_ERREN_OWNERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_OWNERREN_SHIFT)) & USB_ERREN_OWNERREN_MASK)
+#define USB_ERREN_BTSERREN_MASK                  (0x80U)
+#define USB_ERREN_BTSERREN_SHIFT                 (7U)
+/*! BTSERREN - BTSERR Interrupt Enable
+ *  0b0..Disables the BTSERR interrupt.
+ *  0b1..Enables the BTSERR interrupt.
+ */
+#define USB_ERREN_BTSERREN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ERREN_BTSERREN_SHIFT)) & USB_ERREN_BTSERREN_MASK)
+/*! @} */
+
+/*! @name STAT - Status register */
+/*! @{ */
+#define USB_STAT_ODD_MASK                        (0x4U)
+#define USB_STAT_ODD_SHIFT                       (2U)
+#define USB_STAT_ODD(x)                          (((uint8_t)(((uint8_t)(x)) << USB_STAT_ODD_SHIFT)) & USB_STAT_ODD_MASK)
+#define USB_STAT_TX_MASK                         (0x8U)
+#define USB_STAT_TX_SHIFT                        (3U)
+/*! TX - Transmit Indicator
+ *  0b0..The most recent transaction was a receive operation.
+ *  0b1..The most recent transaction was a transmit operation.
+ */
+#define USB_STAT_TX(x)                           (((uint8_t)(((uint8_t)(x)) << USB_STAT_TX_SHIFT)) & USB_STAT_TX_MASK)
+#define USB_STAT_ENDP_MASK                       (0xF0U)
+#define USB_STAT_ENDP_SHIFT                      (4U)
+#define USB_STAT_ENDP(x)                         (((uint8_t)(((uint8_t)(x)) << USB_STAT_ENDP_SHIFT)) & USB_STAT_ENDP_MASK)
+/*! @} */
+
+/*! @name CTL - Control register */
+/*! @{ */
+#define USB_CTL_USBENSOFEN_MASK                  (0x1U)
+#define USB_CTL_USBENSOFEN_SHIFT                 (0U)
+/*! USBENSOFEN - USB Enable
+ *  0b0..Disables the USB Module.
+ *  0b1..Enables the USB Module.
+ */
+#define USB_CTL_USBENSOFEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_CTL_USBENSOFEN_SHIFT)) & USB_CTL_USBENSOFEN_MASK)
+#define USB_CTL_ODDRST_MASK                      (0x2U)
+#define USB_CTL_ODDRST_SHIFT                     (1U)
+#define USB_CTL_ODDRST(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_ODDRST_SHIFT)) & USB_CTL_ODDRST_MASK)
+#define USB_CTL_RESUME_MASK                      (0x4U)
+#define USB_CTL_RESUME_SHIFT                     (2U)
+#define USB_CTL_RESUME(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_RESUME_SHIFT)) & USB_CTL_RESUME_MASK)
+#define USB_CTL_HOSTMODEEN_MASK                  (0x8U)
+#define USB_CTL_HOSTMODEEN_SHIFT                 (3U)
+/*! HOSTMODEEN - Host mode enable
+ *  0b0..USB Module operates in Device mode.
+ *  0b1..USB Module operates in Host mode. In Host mode, the USB module performs USB transactions under the programmed control of the host processor.
+ */
+#define USB_CTL_HOSTMODEEN(x)                    (((uint8_t)(((uint8_t)(x)) << USB_CTL_HOSTMODEEN_SHIFT)) & USB_CTL_HOSTMODEEN_MASK)
+#define USB_CTL_TXSUSPENDTOKENBUSY_MASK          (0x20U)
+#define USB_CTL_TXSUSPENDTOKENBUSY_SHIFT         (5U)
+#define USB_CTL_TXSUSPENDTOKENBUSY(x)            (((uint8_t)(((uint8_t)(x)) << USB_CTL_TXSUSPENDTOKENBUSY_SHIFT)) & USB_CTL_TXSUSPENDTOKENBUSY_MASK)
+#define USB_CTL_SE0_MASK                         (0x40U)
+#define USB_CTL_SE0_SHIFT                        (6U)
+#define USB_CTL_SE0(x)                           (((uint8_t)(((uint8_t)(x)) << USB_CTL_SE0_SHIFT)) & USB_CTL_SE0_MASK)
+#define USB_CTL_JSTATE_MASK                      (0x80U)
+#define USB_CTL_JSTATE_SHIFT                     (7U)
+#define USB_CTL_JSTATE(x)                        (((uint8_t)(((uint8_t)(x)) << USB_CTL_JSTATE_SHIFT)) & USB_CTL_JSTATE_MASK)
+/*! @} */
+
+/*! @name ADDR - Address register */
+/*! @{ */
+#define USB_ADDR_ADDR_MASK                       (0x7FU)
+#define USB_ADDR_ADDR_SHIFT                      (0U)
+#define USB_ADDR_ADDR(x)                         (((uint8_t)(((uint8_t)(x)) << USB_ADDR_ADDR_SHIFT)) & USB_ADDR_ADDR_MASK)
+/*! @} */
+
+/*! @name BDTPAGE1 - BDT Page register 1 */
+/*! @{ */
+#define USB_BDTPAGE1_BDTBA_MASK                  (0xFEU)
+#define USB_BDTPAGE1_BDTBA_SHIFT                 (1U)
+#define USB_BDTPAGE1_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE1_BDTBA_SHIFT)) & USB_BDTPAGE1_BDTBA_MASK)
+/*! @} */
+
+/*! @name FRMNUML - Frame Number register Low */
+/*! @{ */
+#define USB_FRMNUML_FRM_MASK                     (0xFFU)
+#define USB_FRMNUML_FRM_SHIFT                    (0U)
+#define USB_FRMNUML_FRM(x)                       (((uint8_t)(((uint8_t)(x)) << USB_FRMNUML_FRM_SHIFT)) & USB_FRMNUML_FRM_MASK)
+/*! @} */
+
+/*! @name FRMNUMH - Frame Number register High */
+/*! @{ */
+#define USB_FRMNUMH_FRM_MASK                     (0x7U)
+#define USB_FRMNUMH_FRM_SHIFT                    (0U)
+#define USB_FRMNUMH_FRM(x)                       (((uint8_t)(((uint8_t)(x)) << USB_FRMNUMH_FRM_SHIFT)) & USB_FRMNUMH_FRM_MASK)
+/*! @} */
+
+/*! @name BDTPAGE2 - BDT Page Register 2 */
+/*! @{ */
+#define USB_BDTPAGE2_BDTBA_MASK                  (0xFFU)
+#define USB_BDTPAGE2_BDTBA_SHIFT                 (0U)
+#define USB_BDTPAGE2_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE2_BDTBA_SHIFT)) & USB_BDTPAGE2_BDTBA_MASK)
+/*! @} */
+
+/*! @name BDTPAGE3 - BDT Page Register 3 */
+/*! @{ */
+#define USB_BDTPAGE3_BDTBA_MASK                  (0xFFU)
+#define USB_BDTPAGE3_BDTBA_SHIFT                 (0U)
+#define USB_BDTPAGE3_BDTBA(x)                    (((uint8_t)(((uint8_t)(x)) << USB_BDTPAGE3_BDTBA_SHIFT)) & USB_BDTPAGE3_BDTBA_MASK)
+/*! @} */
+
+/*! @name ENDPT - Endpoint Control register */
+/*! @{ */
+#define USB_ENDPT_EPHSHK_MASK                    (0x1U)
+#define USB_ENDPT_EPHSHK_SHIFT                   (0U)
+#define USB_ENDPT_EPHSHK(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPHSHK_SHIFT)) & USB_ENDPT_EPHSHK_MASK)
+#define USB_ENDPT_EPSTALL_MASK                   (0x2U)
+#define USB_ENDPT_EPSTALL_SHIFT                  (1U)
+#define USB_ENDPT_EPSTALL(x)                     (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPSTALL_SHIFT)) & USB_ENDPT_EPSTALL_MASK)
+#define USB_ENDPT_EPTXEN_MASK                    (0x4U)
+#define USB_ENDPT_EPTXEN_SHIFT                   (2U)
+#define USB_ENDPT_EPTXEN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPTXEN_SHIFT)) & USB_ENDPT_EPTXEN_MASK)
+#define USB_ENDPT_EPRXEN_MASK                    (0x8U)
+#define USB_ENDPT_EPRXEN_SHIFT                   (3U)
+#define USB_ENDPT_EPRXEN(x)                      (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPRXEN_SHIFT)) & USB_ENDPT_EPRXEN_MASK)
+#define USB_ENDPT_EPCTLDIS_MASK                  (0x10U)
+#define USB_ENDPT_EPCTLDIS_SHIFT                 (4U)
+#define USB_ENDPT_EPCTLDIS(x)                    (((uint8_t)(((uint8_t)(x)) << USB_ENDPT_EPCTLDIS_SHIFT)) & USB_ENDPT_EPCTLDIS_MASK)
+/*! @} */
+
+/* The count of USB_ENDPT */
+#define USB_ENDPT_COUNT                          (16U)
+
+/*! @name USBCTRL - USB Control register */
+/*! @{ */
+#define USB_USBCTRL_UARTSEL_MASK                 (0x10U)
+#define USB_USBCTRL_UARTSEL_SHIFT                (4U)
+/*! UARTSEL - UART Select
+ *  0b0..USB signals are not used as UART signals.
+ *  0b1..USB signals are used as UART signals.
+ */
+#define USB_USBCTRL_UARTSEL(x)                   (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_UARTSEL_SHIFT)) & USB_USBCTRL_UARTSEL_MASK)
+#define USB_USBCTRL_UARTCHLS_MASK                (0x20U)
+#define USB_USBCTRL_UARTCHLS_SHIFT               (5U)
+/*! UARTCHLS - UART Signal Channel Select
+ *  0b0..USB DP/DM signals are used as UART TX/RX.
+ *  0b1..USB DP/DM signals are used as UART RX/TX.
+ */
+#define USB_USBCTRL_UARTCHLS(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_UARTCHLS_SHIFT)) & USB_USBCTRL_UARTCHLS_MASK)
+#define USB_USBCTRL_PDE_MASK                     (0x40U)
+#define USB_USBCTRL_PDE_SHIFT                    (6U)
+/*! PDE - Pulldown enable
+ *  0b0..Weak pulldowns are disabled on D+ and D-.
+ *  0b1..Weak pulldowns are enabled on D+ and D-.
+ */
+#define USB_USBCTRL_PDE(x)                       (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_PDE_SHIFT)) & USB_USBCTRL_PDE_MASK)
+#define USB_USBCTRL_SUSP_MASK                    (0x80U)
+#define USB_USBCTRL_SUSP_SHIFT                   (7U)
+/*! SUSP - Suspend
+ *  0b0..USB transceiver is not in the Suspend state.
+ *  0b1..USB transceiver is in the Suspend state.
+ */
+#define USB_USBCTRL_SUSP(x)                      (((uint8_t)(((uint8_t)(x)) << USB_USBCTRL_SUSP_SHIFT)) & USB_USBCTRL_SUSP_MASK)
+/*! @} */
+
+/*! @name OBSERVE - USB OTG Observe register */
+/*! @{ */
+#define USB_OBSERVE_DMPD_MASK                    (0x10U)
+#define USB_OBSERVE_DMPD_SHIFT                   (4U)
+/*! DMPD - DMPD
+ *  0b0..D- pulldown is disabled.
+ *  0b1..D- pulldown is enabled.
+ */
+#define USB_OBSERVE_DMPD(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DMPD_SHIFT)) & USB_OBSERVE_DMPD_MASK)
+#define USB_OBSERVE_DPPD_MASK                    (0x40U)
+#define USB_OBSERVE_DPPD_SHIFT                   (6U)
+/*! DPPD - DPPD
+ *  0b0..D+ pulldown is disabled.
+ *  0b1..D+ pulldown is enabled.
+ */
+#define USB_OBSERVE_DPPD(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPD_SHIFT)) & USB_OBSERVE_DPPD_MASK)
+#define USB_OBSERVE_DPPU_MASK                    (0x80U)
+#define USB_OBSERVE_DPPU_SHIFT                   (7U)
+/*! DPPU - DPPU
+ *  0b0..D+ pullup disabled.
+ *  0b1..D+ pullup enabled.
+ */
+#define USB_OBSERVE_DPPU(x)                      (((uint8_t)(((uint8_t)(x)) << USB_OBSERVE_DPPU_SHIFT)) & USB_OBSERVE_DPPU_MASK)
+/*! @} */
+
+/*! @name CONTROL - USB OTG Control register */
+/*! @{ */
+#define USB_CONTROL_DPPULLUPNONOTG_MASK          (0x10U)
+#define USB_CONTROL_DPPULLUPNONOTG_SHIFT         (4U)
+/*! DPPULLUPNONOTG - DPPULLUPNONOTG
+ *  0b0..DP Pullup in non-OTG Device mode is not enabled.
+ *  0b1..DP Pullup in non-OTG Device mode is enabled.
+ */
+#define USB_CONTROL_DPPULLUPNONOTG(x)            (((uint8_t)(((uint8_t)(x)) << USB_CONTROL_DPPULLUPNONOTG_SHIFT)) & USB_CONTROL_DPPULLUPNONOTG_MASK)
+/*! @} */
+
+/*! @name USBTRC0 - USB Transceiver Control register 0 */
+/*! @{ */
+#define USB_USBTRC0_USB_RESUME_INT_MASK          (0x1U)
+#define USB_USBTRC0_USB_RESUME_INT_SHIFT         (0U)
+/*! USB_RESUME_INT - USB Asynchronous Interrupt
+ *  0b0..No interrupt was generated.
+ *  0b1..Interrupt was generated because of the USB asynchronous interrupt.
+ */
+#define USB_USBTRC0_USB_RESUME_INT(x)            (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_RESUME_INT_SHIFT)) & USB_USBTRC0_USB_RESUME_INT_MASK)
+#define USB_USBTRC0_SYNC_DET_MASK                (0x2U)
+#define USB_USBTRC0_SYNC_DET_SHIFT               (1U)
+/*! SYNC_DET - Synchronous USB Interrupt Detect
+ *  0b0..Synchronous interrupt has not been detected.
+ *  0b1..Synchronous interrupt has been detected.
+ */
+#define USB_USBTRC0_SYNC_DET(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_SYNC_DET_SHIFT)) & USB_USBTRC0_SYNC_DET_MASK)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK    (0x4U)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT   (2U)
+#define USB_USBTRC0_USB_CLK_RECOVERY_INT(x)      (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USB_CLK_RECOVERY_INT_SHIFT)) & USB_USBTRC0_USB_CLK_RECOVERY_INT_MASK)
+#define USB_USBTRC0_VREDG_DET_MASK               (0x8U)
+#define USB_USBTRC0_VREDG_DET_SHIFT              (3U)
+/*! VREDG_DET - VREGIN Rising Edge Interrupt Detect
+ *  0b0..VREGIN rising edge interrupt has not been detected.
+ *  0b1..VREGIN rising edge interrupt has been detected.
+ */
+#define USB_USBTRC0_VREDG_DET(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VREDG_DET_SHIFT)) & USB_USBTRC0_VREDG_DET_MASK)
+#define USB_USBTRC0_VFEDG_DET_MASK               (0x10U)
+#define USB_USBTRC0_VFEDG_DET_SHIFT              (4U)
+/*! VFEDG_DET - VREGIN Falling Edge Interrupt Detect
+ *  0b0..VREGIN falling edge interrupt has not been detected.
+ *  0b1..VREGIN falling edge interrupt has been detected.
+ */
+#define USB_USBTRC0_VFEDG_DET(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VFEDG_DET_SHIFT)) & USB_USBTRC0_VFEDG_DET_MASK)
+#define USB_USBTRC0_USBRESMEN_MASK               (0x20U)
+#define USB_USBTRC0_USBRESMEN_SHIFT              (5U)
+/*! USBRESMEN - Asynchronous Resume Interrupt Enable
+ *  0b0..USB asynchronous wakeup from Suspend mode is disabled.
+ *  0b1..USB asynchronous wakeup from Suspend mode is enabled.
+ */
+#define USB_USBTRC0_USBRESMEN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESMEN_SHIFT)) & USB_USBTRC0_USBRESMEN_MASK)
+#define USB_USBTRC0_VREGIN_STS_MASK              (0x40U)
+#define USB_USBTRC0_VREGIN_STS_SHIFT             (6U)
+#define USB_USBTRC0_VREGIN_STS(x)                (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_VREGIN_STS_SHIFT)) & USB_USBTRC0_VREGIN_STS_MASK)
+#define USB_USBTRC0_USBRESET_MASK                (0x80U)
+#define USB_USBTRC0_USBRESET_SHIFT               (7U)
+/*! USBRESET - USB Reset
+ *  0b0..Normal USB module operation.
+ *  0b1..Returns the USB module to its reset state.
+ */
+#define USB_USBTRC0_USBRESET(x)                  (((uint8_t)(((uint8_t)(x)) << USB_USBTRC0_USBRESET_SHIFT)) & USB_USBTRC0_USBRESET_MASK)
+/*! @} */
+
+/*! @name KEEP_ALIVE_CTRL - Keep Alive mode control */
+/*! @{ */
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_MASK   (0x1U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_SHIFT  (0U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN(x)     (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_MASK   (0x2U)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_SHIFT  (1U)
+#define USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN(x)     (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_OWN_OVERRD_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_MASK (0x4U)
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_SHIFT (2U)
+/*! STOP_ACK_DLY_EN - STOP_ACK_DLY_EN
+ *  0b0..Enter KEEP_ALIVE mode until the USB core is idle and there is no USB AHB transfer.
+ *  0b1..Enter KEEP_ALIVE mode immediately when there is no USB AHB transfer.
+ */
+#define USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN(x)   (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_STOP_ACK_DLY_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK     (0x8U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_SHIFT    (3U)
+/*! WAKE_REQ_EN - WAKE_REQ_EN
+ *  0b0..USB bus wakeup request is disabled
+ *  0b1..USB bus wakeup request is enabled
+ */
+#define USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN(x)       (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_MASK     (0x10U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_SHIFT    (4U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_EN(x)       (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_INT_EN_MASK)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_MASK  (0x40U)
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_SHIFT (6U)
+/*! KEEP_ALIVE_STS - Keep Alive Status
+ *  0b0..USB is not in Keep Alive mode.
+ *  0b1..USB is in Keep Alive mode.
+ */
+#define USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS(x)    (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_SHIFT)) & USB_KEEP_ALIVE_CTRL_KEEP_ALIVE_STS_MASK)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_MASK    (0x80U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_SHIFT   (7U)
+#define USB_KEEP_ALIVE_CTRL_WAKE_INT_STS(x)      (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_SHIFT)) & USB_KEEP_ALIVE_CTRL_WAKE_INT_STS_MASK)
+/*! @} */
+
+/*! @name KEEP_ALIVE_WKCTRL - Keep Alive mode wakeup control */
+/*! @{ */
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_MASK  (0xFU)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_SHIFT (0U)
+/*! WAKE_ON_THIS - WAKE_ON_THIS
+ *  0b0001..Wake up after receiving OUT/SETUP token packet.
+ *  0b1101..Wake up after receiving SETUP token packet. All other values are reserved.
+ */
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS(x)    (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_SHIFT)) & USB_KEEP_ALIVE_WKCTRL_WAKE_ON_THIS_MASK)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_MASK    (0xF0U)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_SHIFT   (4U)
+#define USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT(x)      (((uint8_t)(((uint8_t)(x)) << USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_SHIFT)) & USB_KEEP_ALIVE_WKCTRL_WAKE_ENDPT_MASK)
+/*! @} */
+
+/*! @name MISCCTRL - Miscellaneous Control register */
+/*! @{ */
+#define USB_MISCCTRL_SOFDYNTHLD_MASK             (0x1U)
+#define USB_MISCCTRL_SOFDYNTHLD_SHIFT            (0U)
+/*! SOFDYNTHLD - Dynamic SOF Threshold Compare mode
+ *  0b0..SOF_TOK interrupt is set when byte times SOF threshold is reached.
+ *  0b1..SOF_TOK interrupt is set when 8 byte times SOF threshold is reached or overstepped.
+ */
+#define USB_MISCCTRL_SOFDYNTHLD(x)               (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_SOFDYNTHLD_SHIFT)) & USB_MISCCTRL_SOFDYNTHLD_MASK)
+#define USB_MISCCTRL_SOFBUSSET_MASK              (0x2U)
+#define USB_MISCCTRL_SOFBUSSET_SHIFT             (1U)
+/*! SOFBUSSET - SOF_TOK Interrupt Generation Mode Select
+ *  0b0..SOF_TOK interrupt is set according to SOF threshold value.
+ *  0b1..SOF_TOK interrupt is set when SOF counter reaches 0.
+ */
+#define USB_MISCCTRL_SOFBUSSET(x)                (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_SOFBUSSET_SHIFT)) & USB_MISCCTRL_SOFBUSSET_MASK)
+#define USB_MISCCTRL_OWNERRISODIS_MASK           (0x4U)
+#define USB_MISCCTRL_OWNERRISODIS_SHIFT          (2U)
+/*! OWNERRISODIS - OWN Error Detect for ISO IN / ISO OUT Disable
+ *  0b0..OWN error detect for ISO IN / ISO OUT is not disabled.
+ *  0b1..OWN error detect for ISO IN / ISO OUT is disabled.
+ */
+#define USB_MISCCTRL_OWNERRISODIS(x)             (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_OWNERRISODIS_SHIFT)) & USB_MISCCTRL_OWNERRISODIS_MASK)
+#define USB_MISCCTRL_VREDG_EN_MASK               (0x8U)
+#define USB_MISCCTRL_VREDG_EN_SHIFT              (3U)
+/*! VREDG_EN - VREGIN Rising Edge Interrupt Enable
+ *  0b0..VREGIN rising edge interrupt disabled.
+ *  0b1..VREGIN rising edge interrupt enabled.
+ */
+#define USB_MISCCTRL_VREDG_EN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_VREDG_EN_SHIFT)) & USB_MISCCTRL_VREDG_EN_MASK)
+#define USB_MISCCTRL_VFEDG_EN_MASK               (0x10U)
+#define USB_MISCCTRL_VFEDG_EN_SHIFT              (4U)
+/*! VFEDG_EN - VREGIN Falling Edge Interrupt Enable
+ *  0b0..VREGIN falling edge interrupt disabled.
+ *  0b1..VREGIN falling edge interrupt enabled.
+ */
+#define USB_MISCCTRL_VFEDG_EN(x)                 (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_VFEDG_EN_SHIFT)) & USB_MISCCTRL_VFEDG_EN_MASK)
+#define USB_MISCCTRL_STL_ADJ_EN_MASK             (0x80U)
+#define USB_MISCCTRL_STL_ADJ_EN_SHIFT            (7U)
+/*! STL_ADJ_EN - USB Peripheral mode Stall Adjust Enable
+ *  0b0..If USB_ENDPTn[END_STALL] = 1, both IN and OUT directions for the associated endpoint will be stalled
+ *  0b1..If USB_ENDPTn[END_STALL] = 1, the USB_STALL_xx_DIS registers control which directions for the associated endpoint will be stalled.
+ */
+#define USB_MISCCTRL_STL_ADJ_EN(x)               (((uint8_t)(((uint8_t)(x)) << USB_MISCCTRL_STL_ADJ_EN_SHIFT)) & USB_MISCCTRL_STL_ADJ_EN_MASK)
+/*! @} */
+
+/*! @name STALL_IL_DIS - Peripheral mode stall disable for endpoints 7 to 0 in IN direction */
+/*! @{ */
+#define USB_STALL_IL_DIS_STALL_I_DIS0_MASK       (0x1U)
+#define USB_STALL_IL_DIS_STALL_I_DIS0_SHIFT      (0U)
+/*! STALL_I_DIS0 - STALL_I_DIS0
+ *  0b0..Endpoint 0 IN direction stall is enabled.
+ *  0b1..Endpoint 0 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS0(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS0_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS0_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS1_MASK       (0x2U)
+#define USB_STALL_IL_DIS_STALL_I_DIS1_SHIFT      (1U)
+/*! STALL_I_DIS1 - STALL_I_DIS1
+ *  0b0..Endpoint 1 IN direction stall is enabled.
+ *  0b1..Endpoint 1 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS1(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS1_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS1_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS2_MASK       (0x4U)
+#define USB_STALL_IL_DIS_STALL_I_DIS2_SHIFT      (2U)
+/*! STALL_I_DIS2 - STALL_I_DIS2
+ *  0b0..Endpoint 2 IN direction stall is enabled.
+ *  0b1..Endpoint 2 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS2(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS2_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS2_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS3_MASK       (0x8U)
+#define USB_STALL_IL_DIS_STALL_I_DIS3_SHIFT      (3U)
+/*! STALL_I_DIS3 - STALL_I_DIS3
+ *  0b0..Endpoint 3 IN direction stall is enabled.
+ *  0b1..Endpoint 3 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS3(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS3_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS3_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS4_MASK       (0x10U)
+#define USB_STALL_IL_DIS_STALL_I_DIS4_SHIFT      (4U)
+/*! STALL_I_DIS4 - STALL_I_DIS4
+ *  0b0..Endpoint 4 IN direction stall is enabled.
+ *  0b1..Endpoint 4 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS4(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS4_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS4_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS5_MASK       (0x20U)
+#define USB_STALL_IL_DIS_STALL_I_DIS5_SHIFT      (5U)
+/*! STALL_I_DIS5 - STALL_I_DIS5
+ *  0b0..Endpoint 5 IN direction stall is enabled.
+ *  0b1..Endpoint 5 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS5(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS5_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS5_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS6_MASK       (0x40U)
+#define USB_STALL_IL_DIS_STALL_I_DIS6_SHIFT      (6U)
+/*! STALL_I_DIS6 - STALL_I_DIS6
+ *  0b0..Endpoint 6 IN direction stall is enabled.
+ *  0b1..Endpoint 6 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS6(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS6_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS6_MASK)
+#define USB_STALL_IL_DIS_STALL_I_DIS7_MASK       (0x80U)
+#define USB_STALL_IL_DIS_STALL_I_DIS7_SHIFT      (7U)
+/*! STALL_I_DIS7 - STALL_I_DIS7
+ *  0b0..Endpoint 7 IN direction stall is enabled.
+ *  0b1..Endpoint 7 IN direction stall is disabled.
+ */
+#define USB_STALL_IL_DIS_STALL_I_DIS7(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IL_DIS_STALL_I_DIS7_SHIFT)) & USB_STALL_IL_DIS_STALL_I_DIS7_MASK)
+/*! @} */
+
+/*! @name STALL_IH_DIS - Peripheral mode stall disable for endpoints 15 to 8 in IN direction */
+/*! @{ */
+#define USB_STALL_IH_DIS_STALL_I_DIS8_MASK       (0x1U)
+#define USB_STALL_IH_DIS_STALL_I_DIS8_SHIFT      (0U)
+/*! STALL_I_DIS8 - STALL_I_DIS8
+ *  0b0..Endpoint 8 IN direction stall is enabled.
+ *  0b1..Endpoint 8 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS8(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS8_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS8_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS9_MASK       (0x2U)
+#define USB_STALL_IH_DIS_STALL_I_DIS9_SHIFT      (1U)
+/*! STALL_I_DIS9 - STALL_I_DIS9
+ *  0b0..Endpoint 9 IN direction stall is enabled.
+ *  0b1..Endpoint 9 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS9(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS9_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS9_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS10_MASK      (0x4U)
+#define USB_STALL_IH_DIS_STALL_I_DIS10_SHIFT     (2U)
+/*! STALL_I_DIS10 - STALL_I_DIS10
+ *  0b0..Endpoint 10 IN direction stall is enabled.
+ *  0b1..Endpoint 10 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS10(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS10_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS10_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS11_MASK      (0x8U)
+#define USB_STALL_IH_DIS_STALL_I_DIS11_SHIFT     (3U)
+/*! STALL_I_DIS11 - STALL_I_DIS11
+ *  0b0..Endpoint 11 IN direction stall is enabled.
+ *  0b1..Endpoint 11 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS11(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS11_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS11_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS12_MASK      (0x10U)
+#define USB_STALL_IH_DIS_STALL_I_DIS12_SHIFT     (4U)
+/*! STALL_I_DIS12 - STALL_I_DIS12
+ *  0b0..Endpoint 12 IN direction stall is enabled.
+ *  0b1..Endpoint 12 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS12(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS12_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS12_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS13_MASK      (0x20U)
+#define USB_STALL_IH_DIS_STALL_I_DIS13_SHIFT     (5U)
+/*! STALL_I_DIS13 - STALL_I_DIS13
+ *  0b0..Endpoint 13 IN direction stall is enabled.
+ *  0b1..Endpoint 13 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS13(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS13_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS13_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS14_MASK      (0x40U)
+#define USB_STALL_IH_DIS_STALL_I_DIS14_SHIFT     (6U)
+/*! STALL_I_DIS14 - STALL_I_DIS14
+ *  0b0..Endpoint 14 IN direction stall is enabled.
+ *  0b1..Endpoint 14 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS14(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS14_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS14_MASK)
+#define USB_STALL_IH_DIS_STALL_I_DIS15_MASK      (0x80U)
+#define USB_STALL_IH_DIS_STALL_I_DIS15_SHIFT     (7U)
+/*! STALL_I_DIS15 - STALL_I_DIS15
+ *  0b0..Endpoint 15 IN direction stall is enabled.
+ *  0b1..Endpoint 15 IN direction stall is disabled.
+ */
+#define USB_STALL_IH_DIS_STALL_I_DIS15(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_IH_DIS_STALL_I_DIS15_SHIFT)) & USB_STALL_IH_DIS_STALL_I_DIS15_MASK)
+/*! @} */
+
+/*! @name STALL_OL_DIS - Peripheral mode stall disable for endpoints 7 to 0 in OUT direction */
+/*! @{ */
+#define USB_STALL_OL_DIS_STALL_O_DIS0_MASK       (0x1U)
+#define USB_STALL_OL_DIS_STALL_O_DIS0_SHIFT      (0U)
+/*! STALL_O_DIS0 - STALL_O_DIS0
+ *  0b0..Endpoint 0 OUT direction stall is enabled.
+ *  0b1..Endpoint 0 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS0(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS0_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS0_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS1_MASK       (0x2U)
+#define USB_STALL_OL_DIS_STALL_O_DIS1_SHIFT      (1U)
+/*! STALL_O_DIS1 - STALL_O_DIS1
+ *  0b0..Endpoint 1 OUT direction stall is enabled.
+ *  0b1..Endpoint 1 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS1(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS1_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS1_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS2_MASK       (0x4U)
+#define USB_STALL_OL_DIS_STALL_O_DIS2_SHIFT      (2U)
+/*! STALL_O_DIS2 - STALL_O_DIS2
+ *  0b0..Endpoint 2 OUT direction stall is enabled.
+ *  0b1..Endpoint 2 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS2(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS2_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS2_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS3_MASK       (0x8U)
+#define USB_STALL_OL_DIS_STALL_O_DIS3_SHIFT      (3U)
+/*! STALL_O_DIS3 - STALL_O_DIS3
+ *  0b0..Endpoint 3 OUT direction stall is enabled.
+ *  0b1..Endpoint 3 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS3(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS3_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS3_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS4_MASK       (0x10U)
+#define USB_STALL_OL_DIS_STALL_O_DIS4_SHIFT      (4U)
+/*! STALL_O_DIS4 - STALL_O_DIS4
+ *  0b0..Endpoint 4 OUT direction stall is enabled.
+ *  0b1..Endpoint 4 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS4(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS4_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS4_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS5_MASK       (0x20U)
+#define USB_STALL_OL_DIS_STALL_O_DIS5_SHIFT      (5U)
+/*! STALL_O_DIS5 - STALL_O_DIS5
+ *  0b0..Endpoint 5 OUT direction stall is enabled.
+ *  0b1..Endpoint 5 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS5(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS5_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS5_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS6_MASK       (0x40U)
+#define USB_STALL_OL_DIS_STALL_O_DIS6_SHIFT      (6U)
+/*! STALL_O_DIS6 - STALL_O_DIS6
+ *  0b0..Endpoint 6 OUT direction stall is enabled.
+ *  0b1..Endpoint 6 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS6(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS6_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS6_MASK)
+#define USB_STALL_OL_DIS_STALL_O_DIS7_MASK       (0x80U)
+#define USB_STALL_OL_DIS_STALL_O_DIS7_SHIFT      (7U)
+/*! STALL_O_DIS7 - STALL_O_DIS7
+ *  0b0..Endpoint 7 OUT direction stall is enabled.
+ *  0b1..Endpoint 7 OUT direction stall is disabled.
+ */
+#define USB_STALL_OL_DIS_STALL_O_DIS7(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OL_DIS_STALL_O_DIS7_SHIFT)) & USB_STALL_OL_DIS_STALL_O_DIS7_MASK)
+/*! @} */
+
+/*! @name STALL_OH_DIS - Peripheral mode stall disable for endpoints 15 to 8 in OUT direction */
+/*! @{ */
+#define USB_STALL_OH_DIS_STALL_O_DIS8_MASK       (0x1U)
+#define USB_STALL_OH_DIS_STALL_O_DIS8_SHIFT      (0U)
+/*! STALL_O_DIS8 - STALL_O_DIS8
+ *  0b0..Endpoint 8 OUT direction stall is enabled.
+ *  0b1..Endpoint 8 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS8(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS8_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS8_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS9_MASK       (0x2U)
+#define USB_STALL_OH_DIS_STALL_O_DIS9_SHIFT      (1U)
+/*! STALL_O_DIS9 - STALL_O_DIS9
+ *  0b0..Endpoint 9 OUT direction stall is enabled.
+ *  0b1..Endpoint 9 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS9(x)         (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS9_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS9_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS10_MASK      (0x4U)
+#define USB_STALL_OH_DIS_STALL_O_DIS10_SHIFT     (2U)
+/*! STALL_O_DIS10 - STALL_O_DIS10
+ *  0b0..Endpoint 10 OUT direction stall is enabled.
+ *  0b1..Endpoint 10 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS10(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS10_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS10_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS11_MASK      (0x8U)
+#define USB_STALL_OH_DIS_STALL_O_DIS11_SHIFT     (3U)
+/*! STALL_O_DIS11 - STALL_O_DIS11
+ *  0b0..Endpoint 11 OUT direction stall is enabled.
+ *  0b1..Endpoint 11 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS11(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS11_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS11_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS12_MASK      (0x10U)
+#define USB_STALL_OH_DIS_STALL_O_DIS12_SHIFT     (4U)
+/*! STALL_O_DIS12 - STALL_O_DIS12
+ *  0b0..Endpoint 12 OUT direction stall is enabled.
+ *  0b1..Endpoint 12 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS12(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS12_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS12_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS13_MASK      (0x20U)
+#define USB_STALL_OH_DIS_STALL_O_DIS13_SHIFT     (5U)
+/*! STALL_O_DIS13 - STALL_O_DIS13
+ *  0b0..Endpoint 13 OUT direction stall is enabled.
+ *  0b1..Endpoint 13 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS13(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS13_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS13_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS14_MASK      (0x40U)
+#define USB_STALL_OH_DIS_STALL_O_DIS14_SHIFT     (6U)
+/*! STALL_O_DIS14 - STALL_O_DIS14
+ *  0b0..Endpoint 14 OUT direction stall is enabled.
+ *  0b1..Endpoint 14 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS14(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS14_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS14_MASK)
+#define USB_STALL_OH_DIS_STALL_O_DIS15_MASK      (0x80U)
+#define USB_STALL_OH_DIS_STALL_O_DIS15_SHIFT     (7U)
+/*! STALL_O_DIS15 - STALL_O_DIS15
+ *  0b0..Endpoint 15 OUT direction stall is enabled.
+ *  0b1..Endpoint 15 OUT direction stall is disabled.
+ */
+#define USB_STALL_OH_DIS_STALL_O_DIS15(x)        (((uint8_t)(((uint8_t)(x)) << USB_STALL_OH_DIS_STALL_O_DIS15_SHIFT)) & USB_STALL_OH_DIS_STALL_O_DIS15_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_CTRL - USB Clock recovery control */
+/*! @{ */
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK (0x20U)
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT (5U)
+/*! RESTART_IFRTRIM_EN - Restart from IFR trim value
+ *  0b0..Trim fine adjustment always works based on the previous updated trim fine value (default).
+ *  0b1..Trim fine restarts from the IFR trim value, whenever bus_reset/bus_resume is detected or module enable is desasserted.
+ */
+#define USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESTART_IFRTRIM_EN_MASK)
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK (0x40U)
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT (6U)
+/*! RESET_RESUME_ROUGH_EN - Reset/resume to rough phase enable
+ *  0b0..Always works in tracking phase after the first time rough phase, to track transition (default).
+ *  0b1..Go back to rough stage whenever a bus reset or bus resume occurs.
+ */
+#define USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_RESET_RESUME_ROUGH_EN_MASK)
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK (0x80U)
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT (7U)
+/*! CLOCK_RECOVER_EN - Crystal-less USB enable
+ *  0b0..Disable clock recovery block (default)
+ *  0b1..Enable clock recovery block
+ */
+#define USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN(x) (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_SHIFT)) & USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_IRC_EN - IRC48MFIRC oscillator enable register */
+/*! @{ */
+#define USB_CLK_RECOVER_IRC_EN_REG_EN_MASK       (0x1U)
+#define USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT      (0U)
+/*! REG_EN - Regulator enable
+ *  0b0..IRC48M local regulator is disabled
+ *  0b1..IRC48M local regulator is enabled (default)
+ */
+#define USB_CLK_RECOVER_IRC_EN_REG_EN(x)         (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_REG_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_REG_EN_MASK)
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK       (0x2U)
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT      (1U)
+/*! IRC_EN - IRC_EN
+ *  0b0..Disable the IRC48M module (default)
+ *  0b1..Enable the IRC48M module
+ */
+#define USB_CLK_RECOVER_IRC_EN_IRC_EN(x)         (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_IRC_EN_IRC_EN_SHIFT)) & USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_INT_EN - Clock recovery combined interrupt enable */
+/*! @{ */
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_MASK (0x10U)
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_SHIFT (4U)
+/*! OVF_ERROR_EN - OVF_ERROR_EN
+ *  0b0..The interrupt will be masked
+ *  0b1..The interrupt will be enabled (default)
+ */
+#define USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN(x)   (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_SHIFT)) & USB_CLK_RECOVER_INT_EN_OVF_ERROR_EN_MASK)
+/*! @} */
+
+/*! @name CLK_RECOVER_INT_STATUS - Clock recovery separated interrupt status */
+/*! @{ */
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK (0x10U)
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT (4U)
+/*! OVF_ERROR - OVF_ERROR
+ *  0b0..No interrupt is reported
+ *  0b1..Unmasked interrupt has been generated
+ */
+#define USB_CLK_RECOVER_INT_STATUS_OVF_ERROR(x)  (((uint8_t)(((uint8_t)(x)) << USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_SHIFT)) & USB_CLK_RECOVER_INT_STATUS_OVF_ERROR_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USB_Register_Masks */
+
+
+/* USB - Peripheral instance base addresses */
+/** Peripheral USB0 base address */
+#define USB0_BASE                                (0x40045000u)
+/** Peripheral USB0 base pointer */
+#define USB0                                     ((USB_Type *)USB0_BASE)
+/** Array initializer of USB peripheral base addresses */
+#define USB_BASE_ADDRS                           { USB0_BASE }
+/** Array initializer of USB peripheral base pointers */
+#define USB_BASE_PTRS                            { USB0 }
+/** Interrupt vectors for the USB peripheral type */
+#define USB_IRQS                                 { USB0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group USB_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USBVREG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USBVREG_Peripheral_Access_Layer USBVREG Peripheral Access Layer
+ * @{
+ */
+
+/** USBVREG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CTRL;                              /**< USB VREG Control Register, offset: 0x0 */
+  __IO uint32_t CFGCTRL;                           /**< USB VREG Configuration Control Register, offset: 0x4 */
+} USBVREG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USBVREG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USBVREG_Register_Masks USBVREG Register Masks
+ * @{
+ */
+
+/*! @name CTRL - USB VREG Control Register */
+/*! @{ */
+#define USBVREG_CTRL_VSTBY_MASK                  (0x20000000U)
+#define USBVREG_CTRL_VSTBY_SHIFT                 (29U)
+/*! VSTBY - USB Voltage Regulator in Standby Mode during VLPR and VLPW modes
+ *  0b0..USB voltage regulator is not in standby during VLPR and VLPW modes.
+ *  0b1..USB voltage regulator in standby during VLPR and VLPW modes.
+ */
+#define USBVREG_CTRL_VSTBY(x)                    (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_VSTBY_SHIFT)) & USBVREG_CTRL_VSTBY_MASK)
+#define USBVREG_CTRL_SSTBY_MASK                  (0x40000000U)
+#define USBVREG_CTRL_SSTBY_SHIFT                 (30U)
+/*! SSTBY - USB Voltage Regulator in Standby Mode during Stop, VLPS, LLS and VLLS Modes
+ *  0b0..USB voltage regulator is not in standby during Stop,VLPS,LLS and VLLS modes.
+ *  0b1..USB voltage regulator is in standby during Stop,VLPS,LLS and VLLS modes.
+ */
+#define USBVREG_CTRL_SSTBY(x)                    (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_SSTBY_SHIFT)) & USBVREG_CTRL_SSTBY_MASK)
+#define USBVREG_CTRL_EN_MASK                     (0x80000000U)
+#define USBVREG_CTRL_EN_SHIFT                    (31U)
+/*! EN - USB Voltage Regulator Enable
+ *  0b0..USB voltage regulator is disabled.
+ *  0b1..USB voltage regulator is enabled.
+ */
+#define USBVREG_CTRL_EN(x)                       (((uint32_t)(((uint32_t)(x)) << USBVREG_CTRL_EN_SHIFT)) & USBVREG_CTRL_EN_MASK)
+/*! @} */
+
+/*! @name CFGCTRL - USB VREG Configuration Control Register */
+/*! @{ */
+#define USBVREG_CFGCTRL_URWE_MASK                (0x1000000U)
+#define USBVREG_CFGCTRL_URWE_SHIFT               (24U)
+/*! URWE - USB Voltage Regulator Enable Write Enable
+ *  0b0..CTRL[EN] can not be written.
+ *  0b1..CTRL[EN] can be written.
+ */
+#define USBVREG_CFGCTRL_URWE(x)                  (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_URWE_SHIFT)) & USBVREG_CFGCTRL_URWE_MASK)
+#define USBVREG_CFGCTRL_UVSWE_MASK               (0x2000000U)
+#define USBVREG_CFGCTRL_UVSWE_SHIFT              (25U)
+/*! UVSWE - USB Voltage Regulator VLP Standby Write Enable
+ *  0b0..CTRL[VSTBY] cannot be written.
+ *  0b1..CTRL[VSTBY] can be written.
+ */
+#define USBVREG_CFGCTRL_UVSWE(x)                 (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_UVSWE_SHIFT)) & USBVREG_CFGCTRL_UVSWE_MASK)
+#define USBVREG_CFGCTRL_USSWE_MASK               (0x4000000U)
+#define USBVREG_CFGCTRL_USSWE_SHIFT              (26U)
+/*! USSWE - USB Voltage Rregulator Stop Standby Write Enable
+ *  0b0..CTRL[SSTBY] field cannot be written.
+ *  0b1..CTRL[SSTBY] can be written.
+ */
+#define USBVREG_CFGCTRL_USSWE(x)                 (((uint32_t)(((uint32_t)(x)) << USBVREG_CFGCTRL_USSWE_SHIFT)) & USBVREG_CFGCTRL_USSWE_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USBVREG_Register_Masks */
+
+
+/* USBVREG - Peripheral instance base addresses */
+/** Peripheral USBVREG base address */
+#define USBVREG_BASE                             (0x40027000u)
+/** Peripheral USBVREG base pointer */
+#define USBVREG                                  ((USBVREG_Type *)USBVREG_BASE)
+/** Array initializer of USBVREG peripheral base addresses */
+#define USBVREG_BASE_ADDRS                       { USBVREG_BASE }
+/** Array initializer of USBVREG peripheral base pointers */
+#define USBVREG_BASE_PTRS                        { USBVREG }
+
+/*!
+ * @}
+ */ /* end of group USBVREG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- USDHC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USDHC_Peripheral_Access_Layer USDHC Peripheral Access Layer
+ * @{
+ */
+
+/** USDHC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t DS_ADDR;                           /**< DMA System Address, offset: 0x0 */
+  __IO uint32_t BLK_ATT;                           /**< Block Attributes, offset: 0x4 */
+  __IO uint32_t CMD_ARG;                           /**< Command Argument, offset: 0x8 */
+  __IO uint32_t CMD_XFR_TYP;                       /**< Command Transfer Type, offset: 0xC */
+  __I  uint32_t CMD_RSP0;                          /**< Command Response0, offset: 0x10 */
+  __I  uint32_t CMD_RSP1;                          /**< Command Response1, offset: 0x14 */
+  __I  uint32_t CMD_RSP2;                          /**< Command Response2, offset: 0x18 */
+  __I  uint32_t CMD_RSP3;                          /**< Command Response3, offset: 0x1C */
+  __IO uint32_t DATA_BUFF_ACC_PORT;                /**< Data Buffer Access Port, offset: 0x20 */
+  __I  uint32_t PRES_STATE;                        /**< Present State, offset: 0x24 */
+  __IO uint32_t PROT_CTRL;                         /**< Protocol Control, offset: 0x28 */
+  __IO uint32_t SYS_CTRL;                          /**< System Control, offset: 0x2C */
+  __IO uint32_t INT_STATUS;                        /**< Interrupt Status, offset: 0x30 */
+  __IO uint32_t INT_STATUS_EN;                     /**< Interrupt Status Enable, offset: 0x34 */
+  __IO uint32_t INT_SIGNAL_EN;                     /**< Interrupt Signal Enable, offset: 0x38 */
+  __I  uint32_t AUTOCMD12_ERR_STATUS;              /**< Auto CMD12 Error Status, offset: 0x3C */
+  __I  uint32_t HOST_CTRL_CAP;                     /**< Host Controller Capabilities, offset: 0x40 */
+  __IO uint32_t WTMK_LVL;                          /**< Watermark Level, offset: 0x44 */
+  __IO uint32_t MIX_CTRL;                          /**< Mixer Control, offset: 0x48 */
+       uint8_t RESERVED_0[4];
+  __O  uint32_t FORCE_EVENT;                       /**< Force Event, offset: 0x50 */
+  __I  uint32_t ADMA_ERR_STATUS;                   /**< ADMA Error Status Register, offset: 0x54 */
+  __IO uint32_t ADMA_SYS_ADDR;                     /**< ADMA System Address, offset: 0x58 */
+       uint8_t RESERVED_1[100];
+  __IO uint32_t VEND_SPEC;                         /**< Vendor Specific Register, offset: 0xC0 */
+  __IO uint32_t MMC_BOOT;                          /**< MMC Boot Register, offset: 0xC4 */
+  __IO uint32_t VEND_SPEC2;                        /**< Vendor Specific 2 Register, offset: 0xC8 */
+} USDHC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- USDHC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup USDHC_Register_Masks USDHC Register Masks
+ * @{
+ */
+
+/*! @name DS_ADDR - DMA System Address */
+/*! @{ */
+#define USDHC_DS_ADDR_DS_ADDR_MASK               (0xFFFFFFFFU)
+#define USDHC_DS_ADDR_DS_ADDR_SHIFT              (0U)
+#define USDHC_DS_ADDR_DS_ADDR(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_DS_ADDR_DS_ADDR_SHIFT)) & USDHC_DS_ADDR_DS_ADDR_MASK)
+/*! @} */
+
+/*! @name BLK_ATT - Block Attributes */
+/*! @{ */
+#define USDHC_BLK_ATT_BLKSIZE_MASK               (0x1FFFU)
+#define USDHC_BLK_ATT_BLKSIZE_SHIFT              (0U)
+/*! BLKSIZE - Block Size
+ *  0b1000000000000..4096 Bytes
+ *  0b0100000000000..2048 Bytes
+ *  0b0001000000000..512 Bytes
+ *  0b0000111111111..511 Bytes
+ *  0b0000000000100..4 Bytes
+ *  0b0000000000011..3 Bytes
+ *  0b0000000000010..2 Bytes
+ *  0b0000000000001..1 Byte
+ *  0b0000000000000..No data transfer
+ */
+#define USDHC_BLK_ATT_BLKSIZE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_BLK_ATT_BLKSIZE_SHIFT)) & USDHC_BLK_ATT_BLKSIZE_MASK)
+#define USDHC_BLK_ATT_BLKCNT_MASK                (0xFFFF0000U)
+#define USDHC_BLK_ATT_BLKCNT_SHIFT               (16U)
+/*! BLKCNT - Block Count
+ *  0b1111111111111111..65535 blocks
+ *  0b0000000000000010..2 blocks
+ *  0b0000000000000001..1 block
+ *  0b0000000000000000..Stop Count
+ */
+#define USDHC_BLK_ATT_BLKCNT(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_BLK_ATT_BLKCNT_SHIFT)) & USDHC_BLK_ATT_BLKCNT_MASK)
+/*! @} */
+
+/*! @name CMD_ARG - Command Argument */
+/*! @{ */
+#define USDHC_CMD_ARG_CMDARG_MASK                (0xFFFFFFFFU)
+#define USDHC_CMD_ARG_CMDARG_SHIFT               (0U)
+#define USDHC_CMD_ARG_CMDARG(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_ARG_CMDARG_SHIFT)) & USDHC_CMD_ARG_CMDARG_MASK)
+/*! @} */
+
+/*! @name CMD_XFR_TYP - Command Transfer Type */
+/*! @{ */
+#define USDHC_CMD_XFR_TYP_RSPTYP_MASK            (0x30000U)
+#define USDHC_CMD_XFR_TYP_RSPTYP_SHIFT           (16U)
+/*! RSPTYP - Response Type Select
+ *  0b00..No Response
+ *  0b01..Response Length 136
+ *  0b10..Response Length 48
+ *  0b11..Response Length 48, check Busy after response
+ */
+#define USDHC_CMD_XFR_TYP_RSPTYP(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_RSPTYP_SHIFT)) & USDHC_CMD_XFR_TYP_RSPTYP_MASK)
+#define USDHC_CMD_XFR_TYP_CCCEN_MASK             (0x80000U)
+#define USDHC_CMD_XFR_TYP_CCCEN_SHIFT            (19U)
+/*! CCCEN - Command CRC Check Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_CMD_XFR_TYP_CCCEN(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CCCEN_SHIFT)) & USDHC_CMD_XFR_TYP_CCCEN_MASK)
+#define USDHC_CMD_XFR_TYP_CICEN_MASK             (0x100000U)
+#define USDHC_CMD_XFR_TYP_CICEN_SHIFT            (20U)
+/*! CICEN - Command Index Check Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_CMD_XFR_TYP_CICEN(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CICEN_SHIFT)) & USDHC_CMD_XFR_TYP_CICEN_MASK)
+#define USDHC_CMD_XFR_TYP_DPSEL_MASK             (0x200000U)
+#define USDHC_CMD_XFR_TYP_DPSEL_SHIFT            (21U)
+/*! DPSEL - Data Present Select
+ *  0b1..Data Present
+ *  0b0..No Data Present
+ */
+#define USDHC_CMD_XFR_TYP_DPSEL(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_DPSEL_SHIFT)) & USDHC_CMD_XFR_TYP_DPSEL_MASK)
+#define USDHC_CMD_XFR_TYP_CMDTYP_MASK            (0xC00000U)
+#define USDHC_CMD_XFR_TYP_CMDTYP_SHIFT           (22U)
+/*! CMDTYP - Command Type
+ *  0b11..Abort CMD12, CMD52 for writing I/O Abort in CCCR
+ *  0b10..Resume CMD52 for writing Function Select in CCCR
+ *  0b01..Suspend CMD52 for writing Bus Suspend in CCCR
+ *  0b00..Normal Other commands
+ */
+#define USDHC_CMD_XFR_TYP_CMDTYP(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CMDTYP_SHIFT)) & USDHC_CMD_XFR_TYP_CMDTYP_MASK)
+#define USDHC_CMD_XFR_TYP_CMDINX_MASK            (0x3F000000U)
+#define USDHC_CMD_XFR_TYP_CMDINX_SHIFT           (24U)
+#define USDHC_CMD_XFR_TYP_CMDINX(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_XFR_TYP_CMDINX_SHIFT)) & USDHC_CMD_XFR_TYP_CMDINX_MASK)
+/*! @} */
+
+/*! @name CMD_RSP0 - Command Response0 */
+/*! @{ */
+#define USDHC_CMD_RSP0_CMDRSP0_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP0_CMDRSP0_SHIFT             (0U)
+#define USDHC_CMD_RSP0_CMDRSP0(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP0_CMDRSP0_SHIFT)) & USDHC_CMD_RSP0_CMDRSP0_MASK)
+/*! @} */
+
+/*! @name CMD_RSP1 - Command Response1 */
+/*! @{ */
+#define USDHC_CMD_RSP1_CMDRSP1_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP1_CMDRSP1_SHIFT             (0U)
+#define USDHC_CMD_RSP1_CMDRSP1(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP1_CMDRSP1_SHIFT)) & USDHC_CMD_RSP1_CMDRSP1_MASK)
+/*! @} */
+
+/*! @name CMD_RSP2 - Command Response2 */
+/*! @{ */
+#define USDHC_CMD_RSP2_CMDRSP2_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP2_CMDRSP2_SHIFT             (0U)
+#define USDHC_CMD_RSP2_CMDRSP2(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP2_CMDRSP2_SHIFT)) & USDHC_CMD_RSP2_CMDRSP2_MASK)
+/*! @} */
+
+/*! @name CMD_RSP3 - Command Response3 */
+/*! @{ */
+#define USDHC_CMD_RSP3_CMDRSP3_MASK              (0xFFFFFFFFU)
+#define USDHC_CMD_RSP3_CMDRSP3_SHIFT             (0U)
+#define USDHC_CMD_RSP3_CMDRSP3(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_CMD_RSP3_CMDRSP3_SHIFT)) & USDHC_CMD_RSP3_CMDRSP3_MASK)
+/*! @} */
+
+/*! @name DATA_BUFF_ACC_PORT - Data Buffer Access Port */
+/*! @{ */
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT_MASK    (0xFFFFFFFFU)
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT_SHIFT   (0U)
+#define USDHC_DATA_BUFF_ACC_PORT_DATCONT(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_DATA_BUFF_ACC_PORT_DATCONT_SHIFT)) & USDHC_DATA_BUFF_ACC_PORT_DATCONT_MASK)
+/*! @} */
+
+/*! @name PRES_STATE - Present State */
+/*! @{ */
+#define USDHC_PRES_STATE_CIHB_MASK               (0x1U)
+#define USDHC_PRES_STATE_CIHB_SHIFT              (0U)
+/*! CIHB - Command Inhibit (CMD)
+ *  0b1..Cannot issue command
+ *  0b0..Can issue command using only CMD line
+ */
+#define USDHC_PRES_STATE_CIHB(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CIHB_SHIFT)) & USDHC_PRES_STATE_CIHB_MASK)
+#define USDHC_PRES_STATE_CDIHB_MASK              (0x2U)
+#define USDHC_PRES_STATE_CDIHB_SHIFT             (1U)
+/*! CDIHB - Command Inhibit (DATA)
+ *  0b1..Cannot issue command which uses the DATA line
+ *  0b0..Can issue command which uses the DATA line
+ */
+#define USDHC_PRES_STATE_CDIHB(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CDIHB_SHIFT)) & USDHC_PRES_STATE_CDIHB_MASK)
+#define USDHC_PRES_STATE_DLA_MASK                (0x4U)
+#define USDHC_PRES_STATE_DLA_SHIFT               (2U)
+/*! DLA - Data Line Active
+ *  0b1..DATA Line Active
+ *  0b0..DATA Line Inactive
+ */
+#define USDHC_PRES_STATE_DLA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_DLA_SHIFT)) & USDHC_PRES_STATE_DLA_MASK)
+#define USDHC_PRES_STATE_SDSTB_MASK              (0x8U)
+#define USDHC_PRES_STATE_SDSTB_SHIFT             (3U)
+/*! SDSTB - SD Clock Stable
+ *  0b1..Clock is stable.
+ *  0b0..Clock is changing frequency and not stable.
+ */
+#define USDHC_PRES_STATE_SDSTB(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_SDSTB_SHIFT)) & USDHC_PRES_STATE_SDSTB_MASK)
+#define USDHC_PRES_STATE_IPGOFF_MASK             (0x10U)
+#define USDHC_PRES_STATE_IPGOFF_SHIFT            (4U)
+/*! IPGOFF - IPG_CLK Gated Off Internally
+ *  0b1..IPG_CLK is gated off.
+ *  0b0..IPG_CLK is active.
+ */
+#define USDHC_PRES_STATE_IPGOFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_IPGOFF_SHIFT)) & USDHC_PRES_STATE_IPGOFF_MASK)
+#define USDHC_PRES_STATE_HCKOFF_MASK             (0x20U)
+#define USDHC_PRES_STATE_HCKOFF_SHIFT            (5U)
+/*! HCKOFF - HCLK Gated Off Internally
+ *  0b1..HCLK is gated off.
+ *  0b0..HCLK is active.
+ */
+#define USDHC_PRES_STATE_HCKOFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_HCKOFF_SHIFT)) & USDHC_PRES_STATE_HCKOFF_MASK)
+#define USDHC_PRES_STATE_PEROFF_MASK             (0x40U)
+#define USDHC_PRES_STATE_PEROFF_SHIFT            (6U)
+/*! PEROFF - IPG_PERCLK Gated Off Internally
+ *  0b1..IPG_PERCLK is gated off.
+ *  0b0..IPG_PERCLK is active.
+ */
+#define USDHC_PRES_STATE_PEROFF(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_PEROFF_SHIFT)) & USDHC_PRES_STATE_PEROFF_MASK)
+#define USDHC_PRES_STATE_SDOFF_MASK              (0x80U)
+#define USDHC_PRES_STATE_SDOFF_SHIFT             (7U)
+/*! SDOFF - SD Clock Gated Off Internally
+ *  0b1..SD Clock is gated off.
+ *  0b0..SD Clock is active.
+ */
+#define USDHC_PRES_STATE_SDOFF(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_SDOFF_SHIFT)) & USDHC_PRES_STATE_SDOFF_MASK)
+#define USDHC_PRES_STATE_WTA_MASK                (0x100U)
+#define USDHC_PRES_STATE_WTA_SHIFT               (8U)
+/*! WTA - Write Transfer Active
+ *  0b1..Transferring data
+ *  0b0..No valid data
+ */
+#define USDHC_PRES_STATE_WTA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_WTA_SHIFT)) & USDHC_PRES_STATE_WTA_MASK)
+#define USDHC_PRES_STATE_RTA_MASK                (0x200U)
+#define USDHC_PRES_STATE_RTA_SHIFT               (9U)
+/*! RTA - Read Transfer Active
+ *  0b1..Transferring data
+ *  0b0..No valid data
+ */
+#define USDHC_PRES_STATE_RTA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_RTA_SHIFT)) & USDHC_PRES_STATE_RTA_MASK)
+#define USDHC_PRES_STATE_BWEN_MASK               (0x400U)
+#define USDHC_PRES_STATE_BWEN_SHIFT              (10U)
+/*! BWEN - Buffer Write Enable
+ *  0b1..Write enable
+ *  0b0..Write disable
+ */
+#define USDHC_PRES_STATE_BWEN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_BWEN_SHIFT)) & USDHC_PRES_STATE_BWEN_MASK)
+#define USDHC_PRES_STATE_BREN_MASK               (0x800U)
+#define USDHC_PRES_STATE_BREN_SHIFT              (11U)
+/*! BREN - Buffer Read Enable
+ *  0b1..Read enable
+ *  0b0..Read disable
+ */
+#define USDHC_PRES_STATE_BREN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_BREN_SHIFT)) & USDHC_PRES_STATE_BREN_MASK)
+#define USDHC_PRES_STATE_CINST_MASK              (0x10000U)
+#define USDHC_PRES_STATE_CINST_SHIFT             (16U)
+/*! CINST - Card Inserted
+ *  0b1..Card Inserted
+ *  0b0..Power on Reset or No Card
+ */
+#define USDHC_PRES_STATE_CINST(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CINST_SHIFT)) & USDHC_PRES_STATE_CINST_MASK)
+#define USDHC_PRES_STATE_CDPL_MASK               (0x40000U)
+#define USDHC_PRES_STATE_CDPL_SHIFT              (18U)
+/*! CDPL - Card Detect Pin Level
+ *  0b1..Card present (CD_B = 0)
+ *  0b0..No card present (CD_B = 1)
+ */
+#define USDHC_PRES_STATE_CDPL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CDPL_SHIFT)) & USDHC_PRES_STATE_CDPL_MASK)
+#define USDHC_PRES_STATE_WPSPL_MASK              (0x80000U)
+#define USDHC_PRES_STATE_WPSPL_SHIFT             (19U)
+/*! WPSPL - Write Protect Switch Pin Level
+ *  0b1..Write enabled (WP = 0)
+ *  0b0..Write protected (WP = 1)
+ */
+#define USDHC_PRES_STATE_WPSPL(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_WPSPL_SHIFT)) & USDHC_PRES_STATE_WPSPL_MASK)
+#define USDHC_PRES_STATE_CLSL_MASK               (0x800000U)
+#define USDHC_PRES_STATE_CLSL_SHIFT              (23U)
+#define USDHC_PRES_STATE_CLSL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_CLSL_SHIFT)) & USDHC_PRES_STATE_CLSL_MASK)
+#define USDHC_PRES_STATE_DLSL_MASK               (0xFF000000U)
+#define USDHC_PRES_STATE_DLSL_SHIFT              (24U)
+/*! DLSL - DATA[7:0] Line Signal Level
+ *  0b00000111..Data 7 line signal level
+ *  0b00000110..Data 6 line signal level
+ *  0b00000101..Data 5 line signal level
+ *  0b00000100..Data 4 line signal level
+ *  0b00000011..Data 3 line signal level
+ *  0b00000010..Data 2 line signal level
+ *  0b00000001..Data 1 line signal level
+ *  0b00000000..Data 0 line signal level
+ */
+#define USDHC_PRES_STATE_DLSL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PRES_STATE_DLSL_SHIFT)) & USDHC_PRES_STATE_DLSL_MASK)
+/*! @} */
+
+/*! @name PROT_CTRL - Protocol Control */
+/*! @{ */
+#define USDHC_PROT_CTRL_LCTL_MASK                (0x1U)
+#define USDHC_PROT_CTRL_LCTL_SHIFT               (0U)
+/*! LCTL - LED Control
+ *  0b1..LED on
+ *  0b0..LED off
+ */
+#define USDHC_PROT_CTRL_LCTL(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_LCTL_SHIFT)) & USDHC_PROT_CTRL_LCTL_MASK)
+#define USDHC_PROT_CTRL_DTW_MASK                 (0x6U)
+#define USDHC_PROT_CTRL_DTW_SHIFT                (1U)
+/*! DTW - Data Transfer Width
+ *  0b10..8-bit mode
+ *  0b01..4-bit mode
+ *  0b00..1-bit mode
+ *  0b11..Reserved
+ */
+#define USDHC_PROT_CTRL_DTW(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_DTW_SHIFT)) & USDHC_PROT_CTRL_DTW_MASK)
+#define USDHC_PROT_CTRL_D3CD_MASK                (0x8U)
+#define USDHC_PROT_CTRL_D3CD_SHIFT               (3U)
+/*! D3CD - DATA3 as Card Detection Pin
+ *  0b1..DATA3 as Card Detection Pin
+ *  0b0..DATA3 does not monitor Card Insertion
+ */
+#define USDHC_PROT_CTRL_D3CD(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_D3CD_SHIFT)) & USDHC_PROT_CTRL_D3CD_MASK)
+#define USDHC_PROT_CTRL_EMODE_MASK               (0x30U)
+#define USDHC_PROT_CTRL_EMODE_SHIFT              (4U)
+/*! EMODE - Endian Mode
+ *  0b00..Big Endian Mode
+ *  0b01..Half Word Big Endian Mode
+ *  0b10..Little Endian Mode
+ *  0b11..Reserved
+ */
+#define USDHC_PROT_CTRL_EMODE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_EMODE_SHIFT)) & USDHC_PROT_CTRL_EMODE_MASK)
+#define USDHC_PROT_CTRL_CDTL_MASK                (0x40U)
+#define USDHC_PROT_CTRL_CDTL_SHIFT               (6U)
+/*! CDTL - Card Detect Test Level
+ *  0b1..Card Detect Test Level is 1, card inserted
+ *  0b0..Card Detect Test Level is 0, no card inserted
+ */
+#define USDHC_PROT_CTRL_CDTL(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CDTL_SHIFT)) & USDHC_PROT_CTRL_CDTL_MASK)
+#define USDHC_PROT_CTRL_CDSS_MASK                (0x80U)
+#define USDHC_PROT_CTRL_CDSS_SHIFT               (7U)
+/*! CDSS - Card Detect Signal Selection
+ *  0b1..Card Detection Test Level is selected (for test purpose).
+ *  0b0..Card Detection Level is selected (for normal purpose).
+ */
+#define USDHC_PROT_CTRL_CDSS(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CDSS_SHIFT)) & USDHC_PROT_CTRL_CDSS_MASK)
+#define USDHC_PROT_CTRL_DMASEL_MASK              (0x300U)
+#define USDHC_PROT_CTRL_DMASEL_SHIFT             (8U)
+/*! DMASEL - DMA Select
+ *  0b00..No DMA or Simple DMA is selected
+ *  0b01..ADMA1 is selected
+ *  0b10..ADMA2 is selected
+ *  0b11..reserved
+ */
+#define USDHC_PROT_CTRL_DMASEL(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_DMASEL_SHIFT)) & USDHC_PROT_CTRL_DMASEL_MASK)
+#define USDHC_PROT_CTRL_SABGREQ_MASK             (0x10000U)
+#define USDHC_PROT_CTRL_SABGREQ_SHIFT            (16U)
+/*! SABGREQ - Stop At Block Gap Request
+ *  0b1..Stop
+ *  0b0..Transfer
+ */
+#define USDHC_PROT_CTRL_SABGREQ(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_SABGREQ_SHIFT)) & USDHC_PROT_CTRL_SABGREQ_MASK)
+#define USDHC_PROT_CTRL_CREQ_MASK                (0x20000U)
+#define USDHC_PROT_CTRL_CREQ_SHIFT               (17U)
+/*! CREQ - Continue Request
+ *  0b1..Restart
+ *  0b0..No effect
+ */
+#define USDHC_PROT_CTRL_CREQ(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_CREQ_SHIFT)) & USDHC_PROT_CTRL_CREQ_MASK)
+#define USDHC_PROT_CTRL_RWCTL_MASK               (0x40000U)
+#define USDHC_PROT_CTRL_RWCTL_SHIFT              (18U)
+/*! RWCTL - Read Wait Control
+ *  0b1..Enable Read Wait Control, and assert Read Wait without stopping SD Clock at block gap when SABGREQ bit is set
+ *  0b0..Disable Read Wait Control, and stop SD Clock at block gap when SABGREQ bit is set
+ */
+#define USDHC_PROT_CTRL_RWCTL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_RWCTL_SHIFT)) & USDHC_PROT_CTRL_RWCTL_MASK)
+#define USDHC_PROT_CTRL_IABG_MASK                (0x80000U)
+#define USDHC_PROT_CTRL_IABG_SHIFT               (19U)
+/*! IABG - Interrupt At Block Gap
+ *  0b1..Enabled
+ *  0b0..Disabled
+ */
+#define USDHC_PROT_CTRL_IABG(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_IABG_SHIFT)) & USDHC_PROT_CTRL_IABG_MASK)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK_MASK     (0x100000U)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK_SHIFT    (20U)
+#define USDHC_PROT_CTRL_RD_DONE_NO_8CLK(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_RD_DONE_NO_8CLK_SHIFT)) & USDHC_PROT_CTRL_RD_DONE_NO_8CLK_MASK)
+#define USDHC_PROT_CTRL_WECINT_MASK              (0x1000000U)
+#define USDHC_PROT_CTRL_WECINT_SHIFT             (24U)
+/*! WECINT - Wakeup Event Enable On Card Interrupt
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECINT(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECINT_SHIFT)) & USDHC_PROT_CTRL_WECINT_MASK)
+#define USDHC_PROT_CTRL_WECINS_MASK              (0x2000000U)
+#define USDHC_PROT_CTRL_WECINS_SHIFT             (25U)
+/*! WECINS - Wakeup Event Enable On SD Card Insertion
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECINS(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECINS_SHIFT)) & USDHC_PROT_CTRL_WECINS_MASK)
+#define USDHC_PROT_CTRL_WECRM_MASK               (0x4000000U)
+#define USDHC_PROT_CTRL_WECRM_SHIFT              (26U)
+/*! WECRM - Wakeup Event Enable On SD Card Removal
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_PROT_CTRL_WECRM(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_WECRM_SHIFT)) & USDHC_PROT_CTRL_WECRM_MASK)
+#define USDHC_PROT_CTRL_BURST_LEN_EN_MASK        (0x38000000U)
+#define USDHC_PROT_CTRL_BURST_LEN_EN_SHIFT       (27U)
+/*! BURST_LEN_EN - BURST length enable for INCR, INCR4 / INCR8 / INCR16, INCR4-WRAP / INCR8-WRAP / INCR16-WRAP
+ *  0bxx1..Burst length is enabled for INCR
+ *  0bx1x..Burst length is enabled for INCR4 / INCR8 / INCR16
+ *  0b1xx..Burst length is enabled for INCR4-WRAP / INCR8-WRAP / INCR16-WRAP
+ */
+#define USDHC_PROT_CTRL_BURST_LEN_EN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_BURST_LEN_EN_SHIFT)) & USDHC_PROT_CTRL_BURST_LEN_EN_MASK)
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD_MASK    (0x40000000U)
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD_SHIFT   (30U)
+/*! NON_EXACT_BLK_RD - NON_EXACT_BLK_RD
+ *  0b1..The block read is non-exact block read. Host driver needs to issue abort command to terminate this multi-block read.
+ *  0b0..The block read is exact block read. Host driver doesn't need to issue abort command to terminate this multi-block read.
+ */
+#define USDHC_PROT_CTRL_NON_EXACT_BLK_RD(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_PROT_CTRL_NON_EXACT_BLK_RD_SHIFT)) & USDHC_PROT_CTRL_NON_EXACT_BLK_RD_MASK)
+/*! @} */
+
+/*! @name SYS_CTRL - System Control */
+/*! @{ */
+#define USDHC_SYS_CTRL_DVS_MASK                  (0xF0U)
+#define USDHC_SYS_CTRL_DVS_SHIFT                 (4U)
+/*! DVS - Divisor
+ *  0b0000..Divide-by-1
+ *  0b0001..Divide-by-2
+ *  0b1110..Divide-by-15
+ *  0b1111..Divide-by-16
+ */
+#define USDHC_SYS_CTRL_DVS(x)                    (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_DVS_SHIFT)) & USDHC_SYS_CTRL_DVS_MASK)
+#define USDHC_SYS_CTRL_SDCLKFS_MASK              (0xFF00U)
+#define USDHC_SYS_CTRL_SDCLKFS_SHIFT             (8U)
+#define USDHC_SYS_CTRL_SDCLKFS(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_SDCLKFS_SHIFT)) & USDHC_SYS_CTRL_SDCLKFS_MASK)
+#define USDHC_SYS_CTRL_DTOCV_MASK                (0xF0000U)
+#define USDHC_SYS_CTRL_DTOCV_SHIFT               (16U)
+/*! DTOCV - Data Timeout Counter Value
+ *  0b1111..SDCLK x 2 29
+ *  0b1110..SDCLK x 2 28
+ *  0b1101..SDCLK x 2 27
+ *  0b0001..SDCLK x 2 15
+ *  0b0000..SDCLK x 2 14
+ */
+#define USDHC_SYS_CTRL_DTOCV(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_DTOCV_SHIFT)) & USDHC_SYS_CTRL_DTOCV_MASK)
+#define USDHC_SYS_CTRL_IPP_RST_N_MASK            (0x800000U)
+#define USDHC_SYS_CTRL_IPP_RST_N_SHIFT           (23U)
+#define USDHC_SYS_CTRL_IPP_RST_N(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_IPP_RST_N_SHIFT)) & USDHC_SYS_CTRL_IPP_RST_N_MASK)
+#define USDHC_SYS_CTRL_RSTA_MASK                 (0x1000000U)
+#define USDHC_SYS_CTRL_RSTA_SHIFT                (24U)
+/*! RSTA - Software Reset For ALL
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTA(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTA_SHIFT)) & USDHC_SYS_CTRL_RSTA_MASK)
+#define USDHC_SYS_CTRL_RSTC_MASK                 (0x2000000U)
+#define USDHC_SYS_CTRL_RSTC_SHIFT                (25U)
+/*! RSTC - Software Reset For CMD Line
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTC_SHIFT)) & USDHC_SYS_CTRL_RSTC_MASK)
+#define USDHC_SYS_CTRL_RSTD_MASK                 (0x4000000U)
+#define USDHC_SYS_CTRL_RSTD_SHIFT                (26U)
+/*! RSTD - Software Reset For DATA Line
+ *  0b1..Reset
+ *  0b0..No Reset
+ */
+#define USDHC_SYS_CTRL_RSTD(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_RSTD_SHIFT)) & USDHC_SYS_CTRL_RSTD_MASK)
+#define USDHC_SYS_CTRL_INITA_MASK                (0x8000000U)
+#define USDHC_SYS_CTRL_INITA_SHIFT               (27U)
+#define USDHC_SYS_CTRL_INITA(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_SYS_CTRL_INITA_SHIFT)) & USDHC_SYS_CTRL_INITA_MASK)
+/*! @} */
+
+/*! @name INT_STATUS - Interrupt Status */
+/*! @{ */
+#define USDHC_INT_STATUS_CC_MASK                 (0x1U)
+#define USDHC_INT_STATUS_CC_SHIFT                (0U)
+/*! CC - Command Complete
+ *  0b1..Command complete
+ *  0b0..Command not complete
+ */
+#define USDHC_INT_STATUS_CC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CC_SHIFT)) & USDHC_INT_STATUS_CC_MASK)
+#define USDHC_INT_STATUS_TC_MASK                 (0x2U)
+#define USDHC_INT_STATUS_TC_SHIFT                (1U)
+/*! TC - Transfer Complete
+ *  0b1..Transfer complete
+ *  0b0..Transfer not complete
+ */
+#define USDHC_INT_STATUS_TC(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_TC_SHIFT)) & USDHC_INT_STATUS_TC_MASK)
+#define USDHC_INT_STATUS_BGE_MASK                (0x4U)
+#define USDHC_INT_STATUS_BGE_SHIFT               (2U)
+/*! BGE - Block Gap Event
+ *  0b1..Transaction stopped at block gap
+ *  0b0..No block gap event
+ */
+#define USDHC_INT_STATUS_BGE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BGE_SHIFT)) & USDHC_INT_STATUS_BGE_MASK)
+#define USDHC_INT_STATUS_DINT_MASK               (0x8U)
+#define USDHC_INT_STATUS_DINT_SHIFT              (3U)
+/*! DINT - DMA Interrupt
+ *  0b1..DMA Interrupt is generated
+ *  0b0..No DMA Interrupt
+ */
+#define USDHC_INT_STATUS_DINT(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DINT_SHIFT)) & USDHC_INT_STATUS_DINT_MASK)
+#define USDHC_INT_STATUS_BWR_MASK                (0x10U)
+#define USDHC_INT_STATUS_BWR_SHIFT               (4U)
+/*! BWR - Buffer Write Ready
+ *  0b1..Ready to write buffer:
+ *  0b0..Not ready to write buffer
+ */
+#define USDHC_INT_STATUS_BWR(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BWR_SHIFT)) & USDHC_INT_STATUS_BWR_MASK)
+#define USDHC_INT_STATUS_BRR_MASK                (0x20U)
+#define USDHC_INT_STATUS_BRR_SHIFT               (5U)
+/*! BRR - Buffer Read Ready
+ *  0b1..Ready to read buffer
+ *  0b0..Not ready to read buffer
+ */
+#define USDHC_INT_STATUS_BRR(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_BRR_SHIFT)) & USDHC_INT_STATUS_BRR_MASK)
+#define USDHC_INT_STATUS_CINS_MASK               (0x40U)
+#define USDHC_INT_STATUS_CINS_SHIFT              (6U)
+/*! CINS - Card Insertion
+ *  0b1..Card inserted
+ *  0b0..Card state unstable or removed
+ */
+#define USDHC_INT_STATUS_CINS(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CINS_SHIFT)) & USDHC_INT_STATUS_CINS_MASK)
+#define USDHC_INT_STATUS_CRM_MASK                (0x80U)
+#define USDHC_INT_STATUS_CRM_SHIFT               (7U)
+/*! CRM - Card Removal
+ *  0b1..Card removed
+ *  0b0..Card state unstable or inserted
+ */
+#define USDHC_INT_STATUS_CRM(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CRM_SHIFT)) & USDHC_INT_STATUS_CRM_MASK)
+#define USDHC_INT_STATUS_CINT_MASK               (0x100U)
+#define USDHC_INT_STATUS_CINT_SHIFT              (8U)
+/*! CINT - Card Interrupt
+ *  0b1..Generate Card Interrupt
+ *  0b0..No Card Interrupt
+ */
+#define USDHC_INT_STATUS_CINT(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CINT_SHIFT)) & USDHC_INT_STATUS_CINT_MASK)
+#define USDHC_INT_STATUS_CTOE_MASK               (0x10000U)
+#define USDHC_INT_STATUS_CTOE_SHIFT              (16U)
+/*! CTOE - Command Timeout Error
+ *  0b1..Time out
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CTOE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CTOE_SHIFT)) & USDHC_INT_STATUS_CTOE_MASK)
+#define USDHC_INT_STATUS_CCE_MASK                (0x20000U)
+#define USDHC_INT_STATUS_CCE_SHIFT               (17U)
+/*! CCE - Command CRC Error
+ *  0b1..CRC Error Generated.
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CCE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CCE_SHIFT)) & USDHC_INT_STATUS_CCE_MASK)
+#define USDHC_INT_STATUS_CEBE_MASK               (0x40000U)
+#define USDHC_INT_STATUS_CEBE_SHIFT              (18U)
+/*! CEBE - Command End Bit Error
+ *  0b1..End Bit Error Generated
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CEBE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CEBE_SHIFT)) & USDHC_INT_STATUS_CEBE_MASK)
+#define USDHC_INT_STATUS_CIE_MASK                (0x80000U)
+#define USDHC_INT_STATUS_CIE_SHIFT               (19U)
+/*! CIE - Command Index Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_CIE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_CIE_SHIFT)) & USDHC_INT_STATUS_CIE_MASK)
+#define USDHC_INT_STATUS_DTOE_MASK               (0x100000U)
+#define USDHC_INT_STATUS_DTOE_SHIFT              (20U)
+/*! DTOE - Data Timeout Error
+ *  0b1..Time out
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DTOE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DTOE_SHIFT)) & USDHC_INT_STATUS_DTOE_MASK)
+#define USDHC_INT_STATUS_DCE_MASK                (0x200000U)
+#define USDHC_INT_STATUS_DCE_SHIFT               (21U)
+/*! DCE - Data CRC Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DCE(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DCE_SHIFT)) & USDHC_INT_STATUS_DCE_MASK)
+#define USDHC_INT_STATUS_DEBE_MASK               (0x400000U)
+#define USDHC_INT_STATUS_DEBE_SHIFT              (22U)
+/*! DEBE - Data End Bit Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DEBE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DEBE_SHIFT)) & USDHC_INT_STATUS_DEBE_MASK)
+#define USDHC_INT_STATUS_AC12E_MASK              (0x1000000U)
+#define USDHC_INT_STATUS_AC12E_SHIFT             (24U)
+/*! AC12E - Auto CMD12 Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_AC12E(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_AC12E_SHIFT)) & USDHC_INT_STATUS_AC12E_MASK)
+#define USDHC_INT_STATUS_DMAE_MASK               (0x10000000U)
+#define USDHC_INT_STATUS_DMAE_SHIFT              (28U)
+/*! DMAE - DMA Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_INT_STATUS_DMAE(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_DMAE_SHIFT)) & USDHC_INT_STATUS_DMAE_MASK)
+/*! @} */
+
+/*! @name INT_STATUS_EN - Interrupt Status Enable */
+/*! @{ */
+#define USDHC_INT_STATUS_EN_CCSEN_MASK           (0x1U)
+#define USDHC_INT_STATUS_EN_CCSEN_SHIFT          (0U)
+/*! CCSEN - Command Complete Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CCSEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CCSEN_SHIFT)) & USDHC_INT_STATUS_EN_CCSEN_MASK)
+#define USDHC_INT_STATUS_EN_TCSEN_MASK           (0x2U)
+#define USDHC_INT_STATUS_EN_TCSEN_SHIFT          (1U)
+/*! TCSEN - Transfer Complete Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_TCSEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_TCSEN_SHIFT)) & USDHC_INT_STATUS_EN_TCSEN_MASK)
+#define USDHC_INT_STATUS_EN_BGESEN_MASK          (0x4U)
+#define USDHC_INT_STATUS_EN_BGESEN_SHIFT         (2U)
+/*! BGESEN - Block Gap Event Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BGESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BGESEN_SHIFT)) & USDHC_INT_STATUS_EN_BGESEN_MASK)
+#define USDHC_INT_STATUS_EN_DINTSEN_MASK         (0x8U)
+#define USDHC_INT_STATUS_EN_DINTSEN_SHIFT        (3U)
+/*! DINTSEN - DMA Interrupt Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DINTSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DINTSEN_SHIFT)) & USDHC_INT_STATUS_EN_DINTSEN_MASK)
+#define USDHC_INT_STATUS_EN_BWRSEN_MASK          (0x10U)
+#define USDHC_INT_STATUS_EN_BWRSEN_SHIFT         (4U)
+/*! BWRSEN - Buffer Write Ready Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BWRSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BWRSEN_SHIFT)) & USDHC_INT_STATUS_EN_BWRSEN_MASK)
+#define USDHC_INT_STATUS_EN_BRRSEN_MASK          (0x20U)
+#define USDHC_INT_STATUS_EN_BRRSEN_SHIFT         (5U)
+/*! BRRSEN - Buffer Read Ready Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_BRRSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_BRRSEN_SHIFT)) & USDHC_INT_STATUS_EN_BRRSEN_MASK)
+#define USDHC_INT_STATUS_EN_CINSSEN_MASK         (0x40U)
+#define USDHC_INT_STATUS_EN_CINSSEN_SHIFT        (6U)
+/*! CINSSEN - Card Insertion Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CINSSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CINSSEN_SHIFT)) & USDHC_INT_STATUS_EN_CINSSEN_MASK)
+#define USDHC_INT_STATUS_EN_CRMSEN_MASK          (0x80U)
+#define USDHC_INT_STATUS_EN_CRMSEN_SHIFT         (7U)
+/*! CRMSEN - Card Removal Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CRMSEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CRMSEN_SHIFT)) & USDHC_INT_STATUS_EN_CRMSEN_MASK)
+#define USDHC_INT_STATUS_EN_CINTSEN_MASK         (0x100U)
+#define USDHC_INT_STATUS_EN_CINTSEN_SHIFT        (8U)
+/*! CINTSEN - Card Interrupt Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CINTSEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CINTSEN_SHIFT)) & USDHC_INT_STATUS_EN_CINTSEN_MASK)
+#define USDHC_INT_STATUS_EN_CTOESEN_MASK         (0x10000U)
+#define USDHC_INT_STATUS_EN_CTOESEN_SHIFT        (16U)
+/*! CTOESEN - Command Timeout Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CTOESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CTOESEN_SHIFT)) & USDHC_INT_STATUS_EN_CTOESEN_MASK)
+#define USDHC_INT_STATUS_EN_CCESEN_MASK          (0x20000U)
+#define USDHC_INT_STATUS_EN_CCESEN_SHIFT         (17U)
+/*! CCESEN - Command CRC Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CCESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CCESEN_SHIFT)) & USDHC_INT_STATUS_EN_CCESEN_MASK)
+#define USDHC_INT_STATUS_EN_CEBESEN_MASK         (0x40000U)
+#define USDHC_INT_STATUS_EN_CEBESEN_SHIFT        (18U)
+/*! CEBESEN - Command End Bit Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CEBESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CEBESEN_SHIFT)) & USDHC_INT_STATUS_EN_CEBESEN_MASK)
+#define USDHC_INT_STATUS_EN_CIESEN_MASK          (0x80000U)
+#define USDHC_INT_STATUS_EN_CIESEN_SHIFT         (19U)
+/*! CIESEN - Command Index Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_CIESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_CIESEN_SHIFT)) & USDHC_INT_STATUS_EN_CIESEN_MASK)
+#define USDHC_INT_STATUS_EN_DTOESEN_MASK         (0x100000U)
+#define USDHC_INT_STATUS_EN_DTOESEN_SHIFT        (20U)
+/*! DTOESEN - Data Timeout Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DTOESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DTOESEN_SHIFT)) & USDHC_INT_STATUS_EN_DTOESEN_MASK)
+#define USDHC_INT_STATUS_EN_DCESEN_MASK          (0x200000U)
+#define USDHC_INT_STATUS_EN_DCESEN_SHIFT         (21U)
+/*! DCESEN - Data CRC Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DCESEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DCESEN_SHIFT)) & USDHC_INT_STATUS_EN_DCESEN_MASK)
+#define USDHC_INT_STATUS_EN_DEBESEN_MASK         (0x400000U)
+#define USDHC_INT_STATUS_EN_DEBESEN_SHIFT        (22U)
+/*! DEBESEN - Data End Bit Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DEBESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DEBESEN_SHIFT)) & USDHC_INT_STATUS_EN_DEBESEN_MASK)
+#define USDHC_INT_STATUS_EN_AC12ESEN_MASK        (0x1000000U)
+#define USDHC_INT_STATUS_EN_AC12ESEN_SHIFT       (24U)
+/*! AC12ESEN - Auto CMD12 Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_AC12ESEN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_AC12ESEN_SHIFT)) & USDHC_INT_STATUS_EN_AC12ESEN_MASK)
+#define USDHC_INT_STATUS_EN_DMAESEN_MASK         (0x10000000U)
+#define USDHC_INT_STATUS_EN_DMAESEN_SHIFT        (28U)
+/*! DMAESEN - DMA Error Status Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_STATUS_EN_DMAESEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_STATUS_EN_DMAESEN_SHIFT)) & USDHC_INT_STATUS_EN_DMAESEN_MASK)
+/*! @} */
+
+/*! @name INT_SIGNAL_EN - Interrupt Signal Enable */
+/*! @{ */
+#define USDHC_INT_SIGNAL_EN_CCIEN_MASK           (0x1U)
+#define USDHC_INT_SIGNAL_EN_CCIEN_SHIFT          (0U)
+/*! CCIEN - Command Complete Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CCIEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CCIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CCIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_TCIEN_MASK           (0x2U)
+#define USDHC_INT_SIGNAL_EN_TCIEN_SHIFT          (1U)
+/*! TCIEN - Transfer Complete Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_TCIEN(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_TCIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_TCIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BGEIEN_MASK          (0x4U)
+#define USDHC_INT_SIGNAL_EN_BGEIEN_SHIFT         (2U)
+/*! BGEIEN - Block Gap Event Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BGEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BGEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BGEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DINTIEN_MASK         (0x8U)
+#define USDHC_INT_SIGNAL_EN_DINTIEN_SHIFT        (3U)
+/*! DINTIEN - DMA Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DINTIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DINTIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DINTIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BWRIEN_MASK          (0x10U)
+#define USDHC_INT_SIGNAL_EN_BWRIEN_SHIFT         (4U)
+/*! BWRIEN - Buffer Write Ready Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BWRIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BWRIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BWRIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_BRRIEN_MASK          (0x20U)
+#define USDHC_INT_SIGNAL_EN_BRRIEN_SHIFT         (5U)
+/*! BRRIEN - Buffer Read Ready Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_BRRIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_BRRIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_BRRIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CINSIEN_MASK         (0x40U)
+#define USDHC_INT_SIGNAL_EN_CINSIEN_SHIFT        (6U)
+/*! CINSIEN - Card Insertion Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CINSIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CINSIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CINSIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CRMIEN_MASK          (0x80U)
+#define USDHC_INT_SIGNAL_EN_CRMIEN_SHIFT         (7U)
+/*! CRMIEN - Card Removal Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CRMIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CRMIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CRMIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CINTIEN_MASK         (0x100U)
+#define USDHC_INT_SIGNAL_EN_CINTIEN_SHIFT        (8U)
+/*! CINTIEN - Card Interrupt Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CINTIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CINTIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CINTIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CTOEIEN_MASK         (0x10000U)
+#define USDHC_INT_SIGNAL_EN_CTOEIEN_SHIFT        (16U)
+/*! CTOEIEN - Command Timeout Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CTOEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CTOEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CTOEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CCEIEN_MASK          (0x20000U)
+#define USDHC_INT_SIGNAL_EN_CCEIEN_SHIFT         (17U)
+/*! CCEIEN - Command CRC Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CCEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CCEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CCEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CEBEIEN_MASK         (0x40000U)
+#define USDHC_INT_SIGNAL_EN_CEBEIEN_SHIFT        (18U)
+/*! CEBEIEN - Command End Bit Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CEBEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CEBEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CEBEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_CIEIEN_MASK          (0x80000U)
+#define USDHC_INT_SIGNAL_EN_CIEIEN_SHIFT         (19U)
+/*! CIEIEN - Command Index Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_CIEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_CIEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_CIEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DTOEIEN_MASK         (0x100000U)
+#define USDHC_INT_SIGNAL_EN_DTOEIEN_SHIFT        (20U)
+/*! DTOEIEN - Data Timeout Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DTOEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DTOEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DTOEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DCEIEN_MASK          (0x200000U)
+#define USDHC_INT_SIGNAL_EN_DCEIEN_SHIFT         (21U)
+/*! DCEIEN - Data CRC Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DCEIEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DCEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DCEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DEBEIEN_MASK         (0x400000U)
+#define USDHC_INT_SIGNAL_EN_DEBEIEN_SHIFT        (22U)
+/*! DEBEIEN - Data End Bit Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DEBEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DEBEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DEBEIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_AC12EIEN_MASK        (0x1000000U)
+#define USDHC_INT_SIGNAL_EN_AC12EIEN_SHIFT       (24U)
+/*! AC12EIEN - Auto CMD12 Error Interrupt Enable
+ *  0b1..Enabled
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_AC12EIEN(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_AC12EIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_AC12EIEN_MASK)
+#define USDHC_INT_SIGNAL_EN_DMAEIEN_MASK         (0x10000000U)
+#define USDHC_INT_SIGNAL_EN_DMAEIEN_SHIFT        (28U)
+/*! DMAEIEN - DMA Error Interrupt Enable
+ *  0b1..Enable
+ *  0b0..Masked
+ */
+#define USDHC_INT_SIGNAL_EN_DMAEIEN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_INT_SIGNAL_EN_DMAEIEN_SHIFT)) & USDHC_INT_SIGNAL_EN_DMAEIEN_MASK)
+/*! @} */
+
+/*! @name AUTOCMD12_ERR_STATUS - Auto CMD12 Error Status */
+/*! @{ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE_MASK   (0x1U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE_SHIFT  (0U)
+/*! AC12NE - Auto CMD12 Not Executed
+ *  0b1..Not executed
+ *  0b0..Executed
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12NE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12NE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12NE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_MASK  (0x2U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_SHIFT (1U)
+/*! AC12TOE - Auto CMD12 / 23 Timeout Error
+ *  0b1..Time out
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12TOE(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12TOE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_MASK  (0x4U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_SHIFT (2U)
+/*! AC12EBE - Auto CMD12 / 23 End Bit Error
+ *  0b1..End Bit Error Generated
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12EBE(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12EBE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE_MASK   (0x8U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE_SHIFT  (3U)
+/*! AC12CE - Auto CMD12 / 23 CRC Error
+ *  0b1..CRC Error Met in Auto CMD12/23 Response
+ *  0b0..No CRC error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12CE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12CE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12CE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE_MASK   (0x10U)
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE_SHIFT  (4U)
+/*! AC12IE - Auto CMD12 / 23 Index Error
+ *  0b1..Error, the CMD index in response is not CMD12/23
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_AC12IE(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_AC12IE_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_AC12IE_MASK)
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_MASK (0x80U)
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_SHIFT (7U)
+/*! CNIBAC12E - Command Not Issued By Auto CMD12 Error
+ *  0b1..Not Issued
+ *  0b0..No error
+ */
+#define USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E(x)  (((uint32_t)(((uint32_t)(x)) << USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_SHIFT)) & USDHC_AUTOCMD12_ERR_STATUS_CNIBAC12E_MASK)
+/*! @} */
+
+/*! @name HOST_CTRL_CAP - Host Controller Capabilities */
+/*! @{ */
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_MASK   (0x4U)
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_SHIFT  (2U)
+#define USDHC_HOST_CTRL_CAP_DDR50_SUPPORT(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_SHIFT)) & USDHC_HOST_CTRL_CAP_DDR50_SUPPORT_MASK)
+#define USDHC_HOST_CTRL_CAP_MBL_MASK             (0x70000U)
+#define USDHC_HOST_CTRL_CAP_MBL_SHIFT            (16U)
+/*! MBL - Max Block Length
+ *  0b000..512 bytes
+ *  0b001..1024 bytes
+ *  0b010..2048 bytes
+ *  0b011..4096 bytes
+ */
+#define USDHC_HOST_CTRL_CAP_MBL(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_MBL_SHIFT)) & USDHC_HOST_CTRL_CAP_MBL_MASK)
+#define USDHC_HOST_CTRL_CAP_ADMAS_MASK           (0x100000U)
+#define USDHC_HOST_CTRL_CAP_ADMAS_SHIFT          (20U)
+/*! ADMAS - ADMA Support
+ *  0b1..Advanced DMA Supported
+ *  0b0..Advanced DMA Not supported
+ */
+#define USDHC_HOST_CTRL_CAP_ADMAS(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_ADMAS_SHIFT)) & USDHC_HOST_CTRL_CAP_ADMAS_MASK)
+#define USDHC_HOST_CTRL_CAP_HSS_MASK             (0x200000U)
+#define USDHC_HOST_CTRL_CAP_HSS_SHIFT            (21U)
+/*! HSS - High Speed Support
+ *  0b1..High Speed Supported
+ *  0b0..High Speed Not Supported
+ */
+#define USDHC_HOST_CTRL_CAP_HSS(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_HSS_SHIFT)) & USDHC_HOST_CTRL_CAP_HSS_MASK)
+#define USDHC_HOST_CTRL_CAP_DMAS_MASK            (0x400000U)
+#define USDHC_HOST_CTRL_CAP_DMAS_SHIFT           (22U)
+/*! DMAS - DMA Support
+ *  0b1..DMA Supported
+ *  0b0..DMA not supported
+ */
+#define USDHC_HOST_CTRL_CAP_DMAS(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_DMAS_SHIFT)) & USDHC_HOST_CTRL_CAP_DMAS_MASK)
+#define USDHC_HOST_CTRL_CAP_SRS_MASK             (0x800000U)
+#define USDHC_HOST_CTRL_CAP_SRS_SHIFT            (23U)
+/*! SRS - Suspend / Resume Support
+ *  0b1..Supported
+ *  0b0..Not supported
+ */
+#define USDHC_HOST_CTRL_CAP_SRS(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_SRS_SHIFT)) & USDHC_HOST_CTRL_CAP_SRS_MASK)
+#define USDHC_HOST_CTRL_CAP_VS33_MASK            (0x1000000U)
+#define USDHC_HOST_CTRL_CAP_VS33_SHIFT           (24U)
+/*! VS33 - Voltage Support 3.3V
+ *  0b1..3.3V supported
+ *  0b0..3.3V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS33(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS33_SHIFT)) & USDHC_HOST_CTRL_CAP_VS33_MASK)
+#define USDHC_HOST_CTRL_CAP_VS30_MASK            (0x2000000U)
+#define USDHC_HOST_CTRL_CAP_VS30_SHIFT           (25U)
+/*! VS30 - Voltage Support 3.0 V
+ *  0b1..3.0V supported
+ *  0b0..3.0V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS30(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS30_SHIFT)) & USDHC_HOST_CTRL_CAP_VS30_MASK)
+#define USDHC_HOST_CTRL_CAP_VS18_MASK            (0x4000000U)
+#define USDHC_HOST_CTRL_CAP_VS18_SHIFT           (26U)
+/*! VS18 - Voltage Support 1.8 V
+ *  0b1..1.8V supported
+ *  0b0..1.8V not supported
+ */
+#define USDHC_HOST_CTRL_CAP_VS18(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_HOST_CTRL_CAP_VS18_SHIFT)) & USDHC_HOST_CTRL_CAP_VS18_MASK)
+/*! @} */
+
+/*! @name WTMK_LVL - Watermark Level */
+/*! @{ */
+#define USDHC_WTMK_LVL_RD_WML_MASK               (0xFFU)
+#define USDHC_WTMK_LVL_RD_WML_SHIFT              (0U)
+#define USDHC_WTMK_LVL_RD_WML(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_RD_WML_SHIFT)) & USDHC_WTMK_LVL_RD_WML_MASK)
+#define USDHC_WTMK_LVL_RD_BRST_LEN_MASK          (0x1F00U)
+#define USDHC_WTMK_LVL_RD_BRST_LEN_SHIFT         (8U)
+#define USDHC_WTMK_LVL_RD_BRST_LEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_RD_BRST_LEN_SHIFT)) & USDHC_WTMK_LVL_RD_BRST_LEN_MASK)
+#define USDHC_WTMK_LVL_WR_WML_MASK               (0xFF0000U)
+#define USDHC_WTMK_LVL_WR_WML_SHIFT              (16U)
+#define USDHC_WTMK_LVL_WR_WML(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_WR_WML_SHIFT)) & USDHC_WTMK_LVL_WR_WML_MASK)
+#define USDHC_WTMK_LVL_WR_BRST_LEN_MASK          (0x1F000000U)
+#define USDHC_WTMK_LVL_WR_BRST_LEN_SHIFT         (24U)
+#define USDHC_WTMK_LVL_WR_BRST_LEN(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_WTMK_LVL_WR_BRST_LEN_SHIFT)) & USDHC_WTMK_LVL_WR_BRST_LEN_MASK)
+/*! @} */
+
+/*! @name MIX_CTRL - Mixer Control */
+/*! @{ */
+#define USDHC_MIX_CTRL_DMAEN_MASK                (0x1U)
+#define USDHC_MIX_CTRL_DMAEN_SHIFT               (0U)
+/*! DMAEN - DMA Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_DMAEN(x)                  (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DMAEN_SHIFT)) & USDHC_MIX_CTRL_DMAEN_MASK)
+#define USDHC_MIX_CTRL_BCEN_MASK                 (0x2U)
+#define USDHC_MIX_CTRL_BCEN_SHIFT                (1U)
+/*! BCEN - Block Count Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_BCEN(x)                   (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_BCEN_SHIFT)) & USDHC_MIX_CTRL_BCEN_MASK)
+#define USDHC_MIX_CTRL_AC12EN_MASK               (0x4U)
+#define USDHC_MIX_CTRL_AC12EN_SHIFT              (2U)
+/*! AC12EN - Auto CMD12 Enable
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define USDHC_MIX_CTRL_AC12EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_AC12EN_SHIFT)) & USDHC_MIX_CTRL_AC12EN_MASK)
+#define USDHC_MIX_CTRL_DDR_EN_MASK               (0x8U)
+#define USDHC_MIX_CTRL_DDR_EN_SHIFT              (3U)
+#define USDHC_MIX_CTRL_DDR_EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DDR_EN_SHIFT)) & USDHC_MIX_CTRL_DDR_EN_MASK)
+#define USDHC_MIX_CTRL_DTDSEL_MASK               (0x10U)
+#define USDHC_MIX_CTRL_DTDSEL_SHIFT              (4U)
+/*! DTDSEL - Data Transfer Direction Select
+ *  0b1..Read (Card to Host)
+ *  0b0..Write (Host to Card)
+ */
+#define USDHC_MIX_CTRL_DTDSEL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_DTDSEL_SHIFT)) & USDHC_MIX_CTRL_DTDSEL_MASK)
+#define USDHC_MIX_CTRL_MSBSEL_MASK               (0x20U)
+#define USDHC_MIX_CTRL_MSBSEL_SHIFT              (5U)
+/*! MSBSEL - Multi / Single Block Select
+ *  0b1..Multiple Blocks
+ *  0b0..Single Block
+ */
+#define USDHC_MIX_CTRL_MSBSEL(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_MSBSEL_SHIFT)) & USDHC_MIX_CTRL_MSBSEL_MASK)
+#define USDHC_MIX_CTRL_NIBBLE_POS_MASK           (0x40U)
+#define USDHC_MIX_CTRL_NIBBLE_POS_SHIFT          (6U)
+#define USDHC_MIX_CTRL_NIBBLE_POS(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_NIBBLE_POS_SHIFT)) & USDHC_MIX_CTRL_NIBBLE_POS_MASK)
+#define USDHC_MIX_CTRL_AC23EN_MASK               (0x80U)
+#define USDHC_MIX_CTRL_AC23EN_SHIFT              (7U)
+#define USDHC_MIX_CTRL_AC23EN(x)                 (((uint32_t)(((uint32_t)(x)) << USDHC_MIX_CTRL_AC23EN_SHIFT)) & USDHC_MIX_CTRL_AC23EN_MASK)
+/*! @} */
+
+/*! @name FORCE_EVENT - Force Event */
+/*! @{ */
+#define USDHC_FORCE_EVENT_FEVTAC12NE_MASK        (0x1U)
+#define USDHC_FORCE_EVENT_FEVTAC12NE_SHIFT       (0U)
+#define USDHC_FORCE_EVENT_FEVTAC12NE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12NE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12NE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE_MASK       (0x2U)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE_SHIFT      (1U)
+#define USDHC_FORCE_EVENT_FEVTAC12TOE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12TOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12TOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12CE_MASK        (0x4U)
+#define USDHC_FORCE_EVENT_FEVTAC12CE_SHIFT       (2U)
+#define USDHC_FORCE_EVENT_FEVTAC12CE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12CE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12CE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE_MASK       (0x8U)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE_SHIFT      (3U)
+#define USDHC_FORCE_EVENT_FEVTAC12EBE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12EBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12EBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12IE_MASK        (0x10U)
+#define USDHC_FORCE_EVENT_FEVTAC12IE_SHIFT       (4U)
+#define USDHC_FORCE_EVENT_FEVTAC12IE(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12IE_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12IE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E_MASK     (0x80U)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E_SHIFT    (7U)
+#define USDHC_FORCE_EVENT_FEVTCNIBAC12E(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCNIBAC12E_SHIFT)) & USDHC_FORCE_EVENT_FEVTCNIBAC12E_MASK)
+#define USDHC_FORCE_EVENT_FEVTCTOE_MASK          (0x10000U)
+#define USDHC_FORCE_EVENT_FEVTCTOE_SHIFT         (16U)
+#define USDHC_FORCE_EVENT_FEVTCTOE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCTOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCTOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCCE_MASK           (0x20000U)
+#define USDHC_FORCE_EVENT_FEVTCCE_SHIFT          (17U)
+#define USDHC_FORCE_EVENT_FEVTCCE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCCE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCCE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCEBE_MASK          (0x40000U)
+#define USDHC_FORCE_EVENT_FEVTCEBE_SHIFT         (18U)
+#define USDHC_FORCE_EVENT_FEVTCEBE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCEBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCEBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCIE_MASK           (0x80000U)
+#define USDHC_FORCE_EVENT_FEVTCIE_SHIFT          (19U)
+#define USDHC_FORCE_EVENT_FEVTCIE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCIE_SHIFT)) & USDHC_FORCE_EVENT_FEVTCIE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDTOE_MASK          (0x100000U)
+#define USDHC_FORCE_EVENT_FEVTDTOE_SHIFT         (20U)
+#define USDHC_FORCE_EVENT_FEVTDTOE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDTOE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDTOE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDCE_MASK           (0x200000U)
+#define USDHC_FORCE_EVENT_FEVTDCE_SHIFT          (21U)
+#define USDHC_FORCE_EVENT_FEVTDCE(x)             (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDCE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDCE_MASK)
+#define USDHC_FORCE_EVENT_FEVTDEBE_MASK          (0x400000U)
+#define USDHC_FORCE_EVENT_FEVTDEBE_SHIFT         (22U)
+#define USDHC_FORCE_EVENT_FEVTDEBE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDEBE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDEBE_MASK)
+#define USDHC_FORCE_EVENT_FEVTAC12E_MASK         (0x1000000U)
+#define USDHC_FORCE_EVENT_FEVTAC12E_SHIFT        (24U)
+#define USDHC_FORCE_EVENT_FEVTAC12E(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTAC12E_SHIFT)) & USDHC_FORCE_EVENT_FEVTAC12E_MASK)
+#define USDHC_FORCE_EVENT_FEVTDMAE_MASK          (0x10000000U)
+#define USDHC_FORCE_EVENT_FEVTDMAE_SHIFT         (28U)
+#define USDHC_FORCE_EVENT_FEVTDMAE(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTDMAE_SHIFT)) & USDHC_FORCE_EVENT_FEVTDMAE_MASK)
+#define USDHC_FORCE_EVENT_FEVTCINT_MASK          (0x80000000U)
+#define USDHC_FORCE_EVENT_FEVTCINT_SHIFT         (31U)
+#define USDHC_FORCE_EVENT_FEVTCINT(x)            (((uint32_t)(((uint32_t)(x)) << USDHC_FORCE_EVENT_FEVTCINT_SHIFT)) & USDHC_FORCE_EVENT_FEVTCINT_MASK)
+/*! @} */
+
+/*! @name ADMA_ERR_STATUS - ADMA Error Status Register */
+/*! @{ */
+#define USDHC_ADMA_ERR_STATUS_ADMAES_MASK        (0x3U)
+#define USDHC_ADMA_ERR_STATUS_ADMAES_SHIFT       (0U)
+#define USDHC_ADMA_ERR_STATUS_ADMAES(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMAES_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMAES_MASK)
+#define USDHC_ADMA_ERR_STATUS_ADMALME_MASK       (0x4U)
+#define USDHC_ADMA_ERR_STATUS_ADMALME_SHIFT      (2U)
+/*! ADMALME - ADMA Length Mismatch Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_ADMA_ERR_STATUS_ADMALME(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMALME_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMALME_MASK)
+#define USDHC_ADMA_ERR_STATUS_ADMADCE_MASK       (0x8U)
+#define USDHC_ADMA_ERR_STATUS_ADMADCE_SHIFT      (3U)
+/*! ADMADCE - ADMA Descriptor Error
+ *  0b1..Error
+ *  0b0..No Error
+ */
+#define USDHC_ADMA_ERR_STATUS_ADMADCE(x)         (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_ERR_STATUS_ADMADCE_SHIFT)) & USDHC_ADMA_ERR_STATUS_ADMADCE_MASK)
+/*! @} */
+
+/*! @name ADMA_SYS_ADDR - ADMA System Address */
+/*! @{ */
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR_MASK        (0xFFFFFFFCU)
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR_SHIFT       (2U)
+#define USDHC_ADMA_SYS_ADDR_ADS_ADDR(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_ADMA_SYS_ADDR_ADS_ADDR_SHIFT)) & USDHC_ADMA_SYS_ADDR_ADS_ADDR_MASK)
+/*! @} */
+
+/*! @name VEND_SPEC - Vendor Specific Register */
+/*! @{ */
+#define USDHC_VEND_SPEC_VSELECT_MASK             (0x2U)
+#define USDHC_VEND_SPEC_VSELECT_SHIFT            (1U)
+/*! VSELECT - Voltage Selection
+ *  0b1..Change the voltage to low voltage range, around 1.8 V
+ *  0b0..Change the voltage to high voltage range, around 3.0 V
+ */
+#define USDHC_VEND_SPEC_VSELECT(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_VSELECT_SHIFT)) & USDHC_VEND_SPEC_VSELECT_MASK)
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN_MASK     (0x4U)
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN_SHIFT    (2U)
+/*! CONFLICT_CHK_EN - Conflict check enable.
+ *  0b0..Conflict check disable
+ *  0b1..Conflict check enable
+ */
+#define USDHC_VEND_SPEC_CONFLICT_CHK_EN(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CONFLICT_CHK_EN_SHIFT)) & USDHC_VEND_SPEC_CONFLICT_CHK_EN_MASK)
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_MASK  (0x8U)
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_SHIFT (3U)
+/*! AC12_WR_CHKBUSY_EN - AC12_WR_CHKBUSY_EN
+ *  0b0..Do not check busy after auto CMD12 for write data packet
+ *  0b1..Check busy after auto CMD12 for write data packet
+ */
+#define USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN(x)    (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_SHIFT)) & USDHC_VEND_SPEC_AC12_WR_CHKBUSY_EN_MASK)
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON_MASK        (0x100U)
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON_SHIFT       (8U)
+/*! FRC_SDCLK_ON - FRC_SDCLK_ON
+ *  0b0..CLK active or inactive is fully controlled by the hardware.
+ *  0b1..Force CLK active.
+ */
+#define USDHC_VEND_SPEC_FRC_SDCLK_ON(x)          (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_FRC_SDCLK_ON_SHIFT)) & USDHC_VEND_SPEC_FRC_SDCLK_ON_MASK)
+#define USDHC_VEND_SPEC_CRC_CHK_DIS_MASK         (0x8000U)
+#define USDHC_VEND_SPEC_CRC_CHK_DIS_SHIFT        (15U)
+/*! CRC_CHK_DIS - CRC Check Disable
+ *  0b0..Check CRC16 for every read data packet and check CRC bits for every write data packet
+ *  0b1..Ignore CRC16 check for every read data packet and ignore CRC bits check for every write data packet
+ */
+#define USDHC_VEND_SPEC_CRC_CHK_DIS(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CRC_CHK_DIS_SHIFT)) & USDHC_VEND_SPEC_CRC_CHK_DIS_MASK)
+#define USDHC_VEND_SPEC_CMD_BYTE_EN_MASK         (0x80000000U)
+#define USDHC_VEND_SPEC_CMD_BYTE_EN_SHIFT        (31U)
+/*! CMD_BYTE_EN - CMD_BYTE_EN
+ *  0b0..Disable
+ *  0b1..Enable
+ */
+#define USDHC_VEND_SPEC_CMD_BYTE_EN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC_CMD_BYTE_EN_SHIFT)) & USDHC_VEND_SPEC_CMD_BYTE_EN_MASK)
+/*! @} */
+
+/*! @name MMC_BOOT - MMC Boot Register */
+/*! @{ */
+#define USDHC_MMC_BOOT_DTOCV_ACK_MASK            (0xFU)
+#define USDHC_MMC_BOOT_DTOCV_ACK_SHIFT           (0U)
+/*! DTOCV_ACK - DTOCV_ACK
+ *  0b0000..SDCLK x 2^14
+ *  0b0001..SDCLK x 2^15
+ *  0b0010..SDCLK x 2^16
+ *  0b0011..SDCLK x 2^17
+ *  0b0100..SDCLK x 2^18
+ *  0b0101..SDCLK x 2^19
+ *  0b0110..SDCLK x 2^20
+ *  0b0111..SDCLK x 2^21
+ *  0b1110..SDCLK x 2^28
+ *  0b1111..SDCLK x 2^29
+ */
+#define USDHC_MMC_BOOT_DTOCV_ACK(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_DTOCV_ACK_SHIFT)) & USDHC_MMC_BOOT_DTOCV_ACK_MASK)
+#define USDHC_MMC_BOOT_BOOT_ACK_MASK             (0x10U)
+#define USDHC_MMC_BOOT_BOOT_ACK_SHIFT            (4U)
+/*! BOOT_ACK - BOOT_ACK
+ *  0b0..No ack
+ *  0b1..Ack
+ */
+#define USDHC_MMC_BOOT_BOOT_ACK(x)               (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_ACK_SHIFT)) & USDHC_MMC_BOOT_BOOT_ACK_MASK)
+#define USDHC_MMC_BOOT_BOOT_MODE_MASK            (0x20U)
+#define USDHC_MMC_BOOT_BOOT_MODE_SHIFT           (5U)
+/*! BOOT_MODE - BOOT_MODE
+ *  0b0..Normal boot
+ *  0b1..Alternative boot
+ */
+#define USDHC_MMC_BOOT_BOOT_MODE(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_MODE_SHIFT)) & USDHC_MMC_BOOT_BOOT_MODE_MASK)
+#define USDHC_MMC_BOOT_BOOT_EN_MASK              (0x40U)
+#define USDHC_MMC_BOOT_BOOT_EN_SHIFT             (6U)
+/*! BOOT_EN - BOOT_EN
+ *  0b0..Fast boot disable
+ *  0b1..Fast boot enable
+ */
+#define USDHC_MMC_BOOT_BOOT_EN(x)                (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_EN_SHIFT)) & USDHC_MMC_BOOT_BOOT_EN_MASK)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN_MASK         (0x80U)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN_SHIFT        (7U)
+#define USDHC_MMC_BOOT_AUTO_SABG_EN(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_AUTO_SABG_EN_SHIFT)) & USDHC_MMC_BOOT_AUTO_SABG_EN_MASK)
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT_MASK     (0x100U)
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT_SHIFT    (8U)
+/*! DISABLE_TIME_OUT - Disable Time Out
+ *  0b0..Enable time out
+ *  0b1..Disable time out
+ */
+#define USDHC_MMC_BOOT_DISABLE_TIME_OUT(x)       (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_DISABLE_TIME_OUT_SHIFT)) & USDHC_MMC_BOOT_DISABLE_TIME_OUT_MASK)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT_MASK         (0xFFFF0000U)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT_SHIFT        (16U)
+#define USDHC_MMC_BOOT_BOOT_BLK_CNT(x)           (((uint32_t)(((uint32_t)(x)) << USDHC_MMC_BOOT_BOOT_BLK_CNT_SHIFT)) & USDHC_MMC_BOOT_BOOT_BLK_CNT_MASK)
+/*! @} */
+
+/*! @name VEND_SPEC2 - Vendor Specific 2 Register */
+/*! @{ */
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST_MASK   (0x8U)
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST_SHIFT  (3U)
+/*! CARD_INT_D3_TEST - Card Interrupt Detection Test
+ *  0b0..Check the card interrupt only when DATA3 is high.
+ *  0b1..Check the card interrupt by ignoring the status of DATA3.
+ */
+#define USDHC_VEND_SPEC2_CARD_INT_D3_TEST(x)     (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_CARD_INT_D3_TEST_SHIFT)) & USDHC_VEND_SPEC2_CARD_INT_D3_TEST_MASK)
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_MASK    (0x1000U)
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_SHIFT   (12U)
+/*! ACMD23_ARGU2_EN - Argument2 register enable for ACMD23
+ *  0b1..Argument2 register enable for ACMD23 sharing with SDMA system address register. Default is enable.
+ *  0b0..Disable
+ */
+#define USDHC_VEND_SPEC2_ACMD23_ARGU2_EN(x)      (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_SHIFT)) & USDHC_VEND_SPEC2_ACMD23_ARGU2_EN_MASK)
+#define USDHC_VEND_SPEC2_AHB_RST_MASK            (0x4000U)
+#define USDHC_VEND_SPEC2_AHB_RST_SHIFT           (14U)
+#define USDHC_VEND_SPEC2_AHB_RST(x)              (((uint32_t)(((uint32_t)(x)) << USDHC_VEND_SPEC2_AHB_RST_SHIFT)) & USDHC_VEND_SPEC2_AHB_RST_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group USDHC_Register_Masks */
+
+
+/* USDHC - Peripheral instance base addresses */
+/** Peripheral USDHC0 base address */
+#define USDHC0_BASE                              (0x4003E000u)
+/** Peripheral USDHC0 base pointer */
+#define USDHC0                                   ((USDHC_Type *)USDHC0_BASE)
+/** Array initializer of USDHC peripheral base addresses */
+#define USDHC_BASE_ADDRS                         { USDHC0_BASE }
+/** Array initializer of USDHC peripheral base pointers */
+#define USDHC_BASE_PTRS                          { USDHC0 }
+/** Interrupt vectors for the USDHC peripheral type */
+#define USDHC_IRQS                               { USDHC0_IRQn }
+
+/*!
+ * @}
+ */ /* end of group USDHC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- VREF Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup VREF_Peripheral_Access_Layer VREF Peripheral Access Layer
+ * @{
+ */
+
+/** VREF - Register Layout Typedef */
+typedef struct {
+  __IO uint8_t TRM;                                /**< VREF Trim Register, offset: 0x0 */
+  __IO uint8_t SC;                                 /**< VREF Status and Control Register, offset: 0x1 */
+       uint8_t RESERVED_0[3];
+  __IO uint8_t TRM4;                               /**< VREF Trim 2.1V Register, offset: 0x5 */
+} VREF_Type;
+
+/* ----------------------------------------------------------------------------
+   -- VREF Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup VREF_Register_Masks VREF Register Masks
+ * @{
+ */
+
+/*! @name TRM - VREF Trim Register */
+/*! @{ */
+#define VREF_TRM_TRIM_MASK                       (0x3FU)
+#define VREF_TRM_TRIM_SHIFT                      (0U)
+/*! TRIM - Trim bits
+ *  0b000000..Min
+ *  0b111111..Max
+ */
+#define VREF_TRM_TRIM(x)                         (((uint8_t)(((uint8_t)(x)) << VREF_TRM_TRIM_SHIFT)) & VREF_TRM_TRIM_MASK)
+#define VREF_TRM_CHOPEN_MASK                     (0x40U)
+#define VREF_TRM_CHOPEN_SHIFT                    (6U)
+/*! CHOPEN - Chop oscillator enable. When set, the internal chopping operation is enabled and the internal analog offset will be minimized.
+ *  0b0..Chop oscillator is disabled.
+ *  0b1..Chop oscillator is enabled.
+ */
+#define VREF_TRM_CHOPEN(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_TRM_CHOPEN_SHIFT)) & VREF_TRM_CHOPEN_MASK)
+/*! @} */
+
+/*! @name SC - VREF Status and Control Register */
+/*! @{ */
+#define VREF_SC_MODE_LV_MASK                     (0x3U)
+#define VREF_SC_MODE_LV_SHIFT                    (0U)
+/*! MODE_LV - Buffer Mode selection
+ *  0b00..Bandgap on only, for stabilization and startup
+ *  0b01..High power buffer mode enabled
+ *  0b10..Low-power buffer mode enabled
+ *  0b11..Reserved
+ */
+#define VREF_SC_MODE_LV(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_SC_MODE_LV_SHIFT)) & VREF_SC_MODE_LV_MASK)
+#define VREF_SC_VREFST_MASK                      (0x4U)
+#define VREF_SC_VREFST_SHIFT                     (2U)
+/*! VREFST - Internal Voltage Reference stable
+ *  0b0..The module is disabled or not stable.
+ *  0b1..The module is stable.
+ */
+#define VREF_SC_VREFST(x)                        (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFST_SHIFT)) & VREF_SC_VREFST_MASK)
+#define VREF_SC_ICOMPEN_MASK                     (0x20U)
+#define VREF_SC_ICOMPEN_SHIFT                    (5U)
+/*! ICOMPEN - Second order curvature compensation enable
+ *  0b0..Disabled
+ *  0b1..Enabled
+ */
+#define VREF_SC_ICOMPEN(x)                       (((uint8_t)(((uint8_t)(x)) << VREF_SC_ICOMPEN_SHIFT)) & VREF_SC_ICOMPEN_MASK)
+#define VREF_SC_REGEN_MASK                       (0x40U)
+#define VREF_SC_REGEN_SHIFT                      (6U)
+/*! REGEN - Regulator enable
+ *  0b0..Internal 1.75 V regulator is disabled.
+ *  0b1..Internal 1.75 V regulator is enabled.
+ */
+#define VREF_SC_REGEN(x)                         (((uint8_t)(((uint8_t)(x)) << VREF_SC_REGEN_SHIFT)) & VREF_SC_REGEN_MASK)
+#define VREF_SC_VREFEN_MASK                      (0x80U)
+#define VREF_SC_VREFEN_SHIFT                     (7U)
+/*! VREFEN - Internal Voltage Reference enable
+ *  0b0..The module is disabled.
+ *  0b1..The module is enabled.
+ */
+#define VREF_SC_VREFEN(x)                        (((uint8_t)(((uint8_t)(x)) << VREF_SC_VREFEN_SHIFT)) & VREF_SC_VREFEN_MASK)
+/*! @} */
+
+/*! @name TRM4 - VREF Trim 2.1V Register */
+/*! @{ */
+#define VREF_TRM4_TRIM2V1_MASK                   (0x3FU)
+#define VREF_TRM4_TRIM2V1_SHIFT                  (0U)
+/*! TRIM2V1 - VREF 2.1V Trim Bits
+ *  0b000000..Max
+ *  0b111111..Min
+ */
+#define VREF_TRM4_TRIM2V1(x)                     (((uint8_t)(((uint8_t)(x)) << VREF_TRM4_TRIM2V1_SHIFT)) & VREF_TRM4_TRIM2V1_MASK)
+#define VREF_TRM4_VREF2V1_EN_MASK                (0x80U)
+#define VREF_TRM4_VREF2V1_EN_SHIFT               (7U)
+/*! VREF2V1_EN - Internal Voltage Reference (2.1V) Enable
+ *  0b0..VREF 2.1V is enabled
+ *  0b1..VREF 2.1V is disabled
+ */
+#define VREF_TRM4_VREF2V1_EN(x)                  (((uint8_t)(((uint8_t)(x)) << VREF_TRM4_VREF2V1_EN_SHIFT)) & VREF_TRM4_VREF2V1_EN_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group VREF_Register_Masks */
+
+
+/* VREF - Peripheral instance base addresses */
+/** Peripheral VREF base address */
+#define VREF_BASE                                (0x4004D000u)
+/** Peripheral VREF base pointer */
+#define VREF                                     ((VREF_Type *)VREF_BASE)
+/** Array initializer of VREF peripheral base addresses */
+#define VREF_BASE_ADDRS                          { VREF_BASE }
+/** Array initializer of VREF peripheral base pointers */
+#define VREF_BASE_PTRS                           { VREF }
+
+/*!
+ * @}
+ */ /* end of group VREF_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- WDOG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup WDOG_Peripheral_Access_Layer WDOG Peripheral Access Layer
+ * @{
+ */
+
+/** WDOG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CS;                                /**< Watchdog Control and Status Register, offset: 0x0 */
+  __IO uint32_t CNT;                               /**< Watchdog Counter Register, offset: 0x4 */
+  __IO uint32_t TOVAL;                             /**< Watchdog Timeout Value Register, offset: 0x8 */
+  __IO uint32_t WIN;                               /**< Watchdog Window Register, offset: 0xC */
+} WDOG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- WDOG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup WDOG_Register_Masks WDOG Register Masks
+ * @{
+ */
+
+/*! @name CS - Watchdog Control and Status Register */
+/*! @{ */
+#define WDOG_CS_STOP_MASK                        (0x1U)
+#define WDOG_CS_STOP_SHIFT                       (0U)
+/*! STOP - Stop Enable
+ *  0b0..Watchdog disabled in chip stop mode.
+ *  0b1..Watchdog enabled in chip stop mode.
+ */
+#define WDOG_CS_STOP(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_STOP_SHIFT)) & WDOG_CS_STOP_MASK)
+#define WDOG_CS_WAIT_MASK                        (0x2U)
+#define WDOG_CS_WAIT_SHIFT                       (1U)
+/*! WAIT - Wait Enable
+ *  0b0..Watchdog disabled in chip wait mode.
+ *  0b1..Watchdog enabled in chip wait mode.
+ */
+#define WDOG_CS_WAIT(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_WAIT_SHIFT)) & WDOG_CS_WAIT_MASK)
+#define WDOG_CS_DBG_MASK                         (0x4U)
+#define WDOG_CS_DBG_SHIFT                        (2U)
+/*! DBG - Debug Enable
+ *  0b0..Watchdog disabled in chip debug mode.
+ *  0b1..Watchdog enabled in chip debug mode.
+ */
+#define WDOG_CS_DBG(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_DBG_SHIFT)) & WDOG_CS_DBG_MASK)
+#define WDOG_CS_TST_MASK                         (0x18U)
+#define WDOG_CS_TST_SHIFT                        (3U)
+/*! TST - Watchdog Test
+ *  0b00..Watchdog test mode disabled.
+ *  0b01..Watchdog user mode enabled. (Watchdog test mode disabled.) After testing the watchdog, software should use this setting to indicate that the watchdog is functioning normally in user mode.
+ *  0b10..Watchdog test mode enabled, only the low byte is used. CNT[CNTLOW] is compared with TOVAL[TOVALLOW].
+ *  0b11..Watchdog test mode enabled, only the high byte is used. CNT[CNTHIGH] is compared with TOVAL[TOVALHIGH].
+ */
+#define WDOG_CS_TST(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_TST_SHIFT)) & WDOG_CS_TST_MASK)
+#define WDOG_CS_UPDATE_MASK                      (0x20U)
+#define WDOG_CS_UPDATE_SHIFT                     (5U)
+/*! UPDATE - Allow updates
+ *  0b0..Updates not allowed. After the initial configuration, the watchdog cannot be later modified without forcing a reset.
+ *  0b1..Updates allowed. Software can modify the watchdog configuration registers within 128 bus clocks after performing the unlock write sequence.
+ */
+#define WDOG_CS_UPDATE(x)                        (((uint32_t)(((uint32_t)(x)) << WDOG_CS_UPDATE_SHIFT)) & WDOG_CS_UPDATE_MASK)
+#define WDOG_CS_INT_MASK                         (0x40U)
+#define WDOG_CS_INT_SHIFT                        (6U)
+/*! INT - Watchdog Interrupt
+ *  0b0..Watchdog interrupts are disabled. Watchdog resets are not delayed.
+ *  0b1..Watchdog interrupts are enabled. Watchdog resets are delayed by 128 bus clocks from the interrupt vector fetch.
+ */
+#define WDOG_CS_INT(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_INT_SHIFT)) & WDOG_CS_INT_MASK)
+#define WDOG_CS_EN_MASK                          (0x80U)
+#define WDOG_CS_EN_SHIFT                         (7U)
+/*! EN - Watchdog Enable
+ *  0b0..Watchdog disabled.
+ *  0b1..Watchdog enabled.
+ */
+#define WDOG_CS_EN(x)                            (((uint32_t)(((uint32_t)(x)) << WDOG_CS_EN_SHIFT)) & WDOG_CS_EN_MASK)
+#define WDOG_CS_CLK_MASK                         (0x300U)
+#define WDOG_CS_CLK_SHIFT                        (8U)
+/*! CLK - Watchdog Clock
+ *  0b00..Bus clock
+ *  0b01..LPO clock
+ *  0b10..INTCLK (internal clock)
+ *  0b11..ERCLK (external reference clock)
+ */
+#define WDOG_CS_CLK(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_CLK_SHIFT)) & WDOG_CS_CLK_MASK)
+#define WDOG_CS_RCS_MASK                         (0x400U)
+#define WDOG_CS_RCS_SHIFT                        (10U)
+/*! RCS - Reconfiguration Success
+ *  0b0..Reconfiguring WDOG.
+ *  0b1..Reconfiguration is successful.
+ */
+#define WDOG_CS_RCS(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_RCS_SHIFT)) & WDOG_CS_RCS_MASK)
+#define WDOG_CS_ULK_MASK                         (0x800U)
+#define WDOG_CS_ULK_SHIFT                        (11U)
+/*! ULK - Unlock status
+ *  0b0..WDOG is locked.
+ *  0b1..WDOG is unlocked.
+ */
+#define WDOG_CS_ULK(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_ULK_SHIFT)) & WDOG_CS_ULK_MASK)
+#define WDOG_CS_PRES_MASK                        (0x1000U)
+#define WDOG_CS_PRES_SHIFT                       (12U)
+/*! PRES - Watchdog prescaler
+ *  0b0..256 prescaler disabled.
+ *  0b1..256 prescaler enabled.
+ */
+#define WDOG_CS_PRES(x)                          (((uint32_t)(((uint32_t)(x)) << WDOG_CS_PRES_SHIFT)) & WDOG_CS_PRES_MASK)
+#define WDOG_CS_CMD32EN_MASK                     (0x2000U)
+#define WDOG_CS_CMD32EN_SHIFT                    (13U)
+/*! CMD32EN - Enables or disables WDOG support for 32-bit (otherwise 16-bit or 8-bit) refresh/unlock command write words
+ *  0b0..Disables support for 32-bit refresh/unlock command write words. Only 16-bit or 8-bit is supported.
+ *  0b1..Enables support for 32-bit refresh/unlock command write words. 16-bit or 8-bit is NOT supported.
+ */
+#define WDOG_CS_CMD32EN(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_CS_CMD32EN_SHIFT)) & WDOG_CS_CMD32EN_MASK)
+#define WDOG_CS_FLG_MASK                         (0x4000U)
+#define WDOG_CS_FLG_SHIFT                        (14U)
+/*! FLG - Watchdog Interrupt Flag
+ *  0b0..No interrupt occurred.
+ *  0b1..An interrupt occurred.
+ */
+#define WDOG_CS_FLG(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_FLG_SHIFT)) & WDOG_CS_FLG_MASK)
+#define WDOG_CS_WIN_MASK                         (0x8000U)
+#define WDOG_CS_WIN_SHIFT                        (15U)
+/*! WIN - Watchdog Window
+ *  0b0..Window mode disabled.
+ *  0b1..Window mode enabled.
+ */
+#define WDOG_CS_WIN(x)                           (((uint32_t)(((uint32_t)(x)) << WDOG_CS_WIN_SHIFT)) & WDOG_CS_WIN_MASK)
+/*! @} */
+
+/*! @name CNT - Watchdog Counter Register */
+/*! @{ */
+#define WDOG_CNT_CNTLOW_MASK                     (0xFFU)
+#define WDOG_CNT_CNTLOW_SHIFT                    (0U)
+#define WDOG_CNT_CNTLOW(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_CNT_CNTLOW_SHIFT)) & WDOG_CNT_CNTLOW_MASK)
+#define WDOG_CNT_CNTHIGH_MASK                    (0xFF00U)
+#define WDOG_CNT_CNTHIGH_SHIFT                   (8U)
+#define WDOG_CNT_CNTHIGH(x)                      (((uint32_t)(((uint32_t)(x)) << WDOG_CNT_CNTHIGH_SHIFT)) & WDOG_CNT_CNTHIGH_MASK)
+/*! @} */
+
+/*! @name TOVAL - Watchdog Timeout Value Register */
+/*! @{ */
+#define WDOG_TOVAL_TOVALLOW_MASK                 (0xFFU)
+#define WDOG_TOVAL_TOVALLOW_SHIFT                (0U)
+#define WDOG_TOVAL_TOVALLOW(x)                   (((uint32_t)(((uint32_t)(x)) << WDOG_TOVAL_TOVALLOW_SHIFT)) & WDOG_TOVAL_TOVALLOW_MASK)
+#define WDOG_TOVAL_TOVALHIGH_MASK                (0xFF00U)
+#define WDOG_TOVAL_TOVALHIGH_SHIFT               (8U)
+#define WDOG_TOVAL_TOVALHIGH(x)                  (((uint32_t)(((uint32_t)(x)) << WDOG_TOVAL_TOVALHIGH_SHIFT)) & WDOG_TOVAL_TOVALHIGH_MASK)
+/*! @} */
+
+/*! @name WIN - Watchdog Window Register */
+/*! @{ */
+#define WDOG_WIN_WINLOW_MASK                     (0xFFU)
+#define WDOG_WIN_WINLOW_SHIFT                    (0U)
+#define WDOG_WIN_WINLOW(x)                       (((uint32_t)(((uint32_t)(x)) << WDOG_WIN_WINLOW_SHIFT)) & WDOG_WIN_WINLOW_MASK)
+#define WDOG_WIN_WINHIGH_MASK                    (0xFF00U)
+#define WDOG_WIN_WINHIGH_SHIFT                   (8U)
+#define WDOG_WIN_WINHIGH(x)                      (((uint32_t)(((uint32_t)(x)) << WDOG_WIN_WINHIGH_SHIFT)) & WDOG_WIN_WINHIGH_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group WDOG_Register_Masks */
+
+
+/* WDOG - Peripheral instance base addresses */
+/** Peripheral WDOG0 base address */
+#define WDOG0_BASE                               (0x4002A000u)
+/** Peripheral WDOG0 base pointer */
+#define WDOG0                                    ((WDOG_Type *)WDOG0_BASE)
+/** Peripheral WDOG1 base address */
+#define WDOG1_BASE                               (0x41026000u)
+/** Peripheral WDOG1 base pointer */
+#define WDOG1                                    ((WDOG_Type *)WDOG1_BASE)
+/** Array initializer of WDOG peripheral base addresses */
+#define WDOG_BASE_ADDRS                          { WDOG0_BASE, WDOG1_BASE }
+/** Array initializer of WDOG peripheral base pointers */
+#define WDOG_BASE_PTRS                           { WDOG0, WDOG1 }
+/** Interrupt vectors for the WDOG peripheral type */
+#define WDOG_IRQS                                { NotAvail_IRQn, WDOG1_IRQn }
+/* Extra definition */
+#define WDOG_UPDATE_KEY                          (0xD928C520U)
+#define WDOG_REFRESH_KEY                         (0xB480A602U)
+
+
+/*!
+ * @}
+ */ /* end of group WDOG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_ANALOG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_ANALOG_Peripheral_Access_Layer XCVR_ANALOG Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_ANALOG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t BB_LDO_1;                          /**< RF Analog Baseband LDO Control 1, offset: 0x0 */
+  __IO uint32_t BB_LDO_2;                          /**< RF Analog Baseband LDO Control 2, offset: 0x4 */
+  __IO uint32_t RX_ADC;                            /**< RF Analog ADC Control, offset: 0x8 */
+  __IO uint32_t RX_BBA;                            /**< RF Analog BBA Control, offset: 0xC */
+  __IO uint32_t RX_LNA;                            /**< RF Analog LNA Control, offset: 0x10 */
+  __IO uint32_t RX_TZA;                            /**< RF Analog TZA Control, offset: 0x14 */
+  __IO uint32_t RX_AUXPLL;                         /**< RF Analog Aux PLL Control, offset: 0x18 */
+  __IO uint32_t SY_CTRL_1;                         /**< RF Analog Synthesizer Control 1, offset: 0x1C */
+  __IO uint32_t SY_CTRL_2;                         /**< RF Analog Synthesizer Control 2, offset: 0x20 */
+  __IO uint32_t TX_DAC_PA;                         /**< RF Analog TX HPM DAC and PA Control, offset: 0x24 */
+  __IO uint32_t BALUN_TX;                          /**< RF Analog Balun TX Mode Control, offset: 0x28 */
+  __IO uint32_t BALUN_RX;                          /**< RF Analog Balun RX Mode Control, offset: 0x2C */
+  __I  uint32_t DFT_OBSV_1;                        /**< RF Analog DFT Observation Register 1, offset: 0x30 */
+  __IO uint32_t DFT_OBSV_2;                        /**< RF Analog DFT Observation Register 2, offset: 0x34 */
+  __IO uint32_t DFT_OBSV_3;                        /**< RF Analog DFT Observation Register 3, offset: 0x38 */
+} XCVR_ANALOG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_ANALOG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_ANALOG_Register_Masks XCVR_ANALOG Register Masks
+ * @{
+ */
+
+/*! @name BB_LDO_1 - RF Analog Baseband LDO Control 1 */
+/*! @{ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_BYP_MASK (0x1U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_BYP_SHIFT (0U)
+/*! BB_LDO_ADCDAC_BYP - rmap_bb_ldo_adcdac_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_BYP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_DIAGSEL_MASK (0x2U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_DIAGSEL_SHIFT (1U)
+/*! BB_LDO_ADCDAC_DIAGSEL - rmap_bb_ldo_adcdac_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_SPARE_MASK (0xCU)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_SPARE_SHIFT (2U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_SPARE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_TRIM_MASK (0x70U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_TRIM_SHIFT (4U)
+/*! BB_LDO_ADCDAC_TRIM - rmap_bb_ldo_adcdac_trim[2:0]
+ *  0b000..1.20 V ( Default )
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_TRIM(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_ADCDAC_TRIM_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_BYP_MASK (0x100U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_BYP_SHIFT (8U)
+/*! BB_LDO_BBA_BYP - rmap_bb_ldo_bba_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_BYP(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_DIAGSEL_MASK (0x200U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_DIAGSEL_SHIFT (9U)
+/*! BB_LDO_BBA_DIAGSEL - rmap_bb_ldo_bba_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_SPARE_MASK (0xC00U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_SPARE_SHIFT (10U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_SPARE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_TRIM_MASK (0x7000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_TRIM_SHIFT (12U)
+/*! BB_LDO_BBA_TRIM - rmap_bb_ldo_bba_trim[2:0]
+ *  0b000..1.20 V ( Default )
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_TRIM(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_BBA_TRIM_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_BYP_MASK (0x10000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_BYP_SHIFT (16U)
+/*! BB_LDO_FDBK_BYP - rmap_bb_ldo_fdbk_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_BYP(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_DIAGSEL_MASK (0x20000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_DIAGSEL_SHIFT (17U)
+/*! BB_LDO_FDBK_DIAGSEL - rmap_bb_ldo_fdbk_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_SPARE_MASK (0xC0000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_SPARE_SHIFT (18U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_SPARE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_TRIM_MASK (0x700000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_TRIM_SHIFT (20U)
+/*! BB_LDO_FDBK_TRIM - rmap_bb_ldo_fdbk_trim[2:0]
+ *  0b000..1.2/1.176 V ( Default )
+ *  0b001..1.138/1.115 V
+ *  0b010..1.085/1.066 V
+ *  0b011..1.04/1.025 V
+ *  0b100..1.28/1.25 V
+ *  0b101..1.4/1.35 V
+ *  0b110..1.55/1.4 V
+ *  0b111..1.78/1.4 V
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_TRIM(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_FDBK_TRIM_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_BYP_MASK  (0x1000000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_BYP_SHIFT (24U)
+/*! BB_LDO_HF_BYP - rmap_bb_ldo_hf_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_BYP(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_DIAGSEL_MASK (0x2000000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_DIAGSEL_SHIFT (25U)
+/*! BB_LDO_HF_DIAGSEL - rmap_bb_ldo_hf_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_SPARE_MASK (0xC000000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_SPARE_SHIFT (26U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_SPARE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_TRIM_MASK (0x70000000U)
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_TRIM_SHIFT (28U)
+/*! BB_LDO_HF_TRIM - rmap_bb_ldo_hf_trim[2:0]
+ *  0b000..1.20 V ( Default )
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_TRIM(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_1_BB_LDO_HF_TRIM_MASK)
+/*! @} */
+
+/*! @name BB_LDO_2 - RF Analog Baseband LDO Control 2 */
+/*! @{ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_BYP_MASK  (0x1U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_BYP_SHIFT (0U)
+/*! BB_LDO_PD_BYP - rmap_bb_ldo_pd_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_BYP(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_DIAGSEL_MASK (0x2U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_DIAGSEL_SHIFT (1U)
+/*! BB_LDO_PD_DIAGSEL - rmap_bb_ldo_pd_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_SPARE_MASK (0xCU)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_SPARE_SHIFT (2U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_SPARE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_TRIM_MASK (0x70U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_TRIM_SHIFT (4U)
+/*! BB_LDO_PD_TRIM - rmap_bb_ldo_pd_trim[2:0]
+ *  0b000..1.20 V ( Default )
+ *  0b001..1.25 V
+ *  0b010..1.28 V
+ *  0b011..1.33 V
+ *  0b100..1.40 V
+ *  0b101..1.44 V
+ *  0b110..1.50 V
+ *  0b111..1.66 V
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_TRIM(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_PD_TRIM_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCO_SPARE_MASK (0x300U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCO_SPARE_SHIFT (8U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCO_SPARE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VCO_SPARE_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VCO_SPARE_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_BYP_MASK (0x400U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_BYP_SHIFT (10U)
+/*! BB_LDO_VCOLO_BYP - rmap_bb_ldo_vcolo_byp
+ *  0b0..Bypass disabled.
+ *  0b1..Bypass enabled
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_BYP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_BYP_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_BYP_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_DIAGSEL_MASK (0x800U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_DIAGSEL_SHIFT (11U)
+/*! BB_LDO_VCOLO_DIAGSEL - rmap_bb_ldo_vcolo_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_TRIM_MASK (0x7000U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_TRIM_SHIFT (12U)
+/*! BB_LDO_VCOLO_TRIM - rmap_bb_ldo_vcolo_trim[2:0]
+ *  0b000..1.138/1.117 V ( Default )
+ *  0b001..1.076/1.058 V
+ *  0b010..1.027/1.012 V
+ *  0b011..0.98/0.97 V
+ *  0b100..1.22/1.19 V
+ *  0b101..1.33/1.3 V
+ *  0b110..1.5/1.4 V
+ *  0b111..1.82/1.4 V
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_TRIM(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_TRIM_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VCOLO_TRIM_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_DIAGSEL_MASK (0x10000U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_DIAGSEL_SHIFT (16U)
+/*! BB_LDO_VTREF_DIAGSEL - rmap_bb_ldo_vtref_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_DIAGSEL_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_DIAGSEL_MASK)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_TC_MASK (0x60000U)
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_TC_SHIFT (17U)
+/*! BB_LDO_VTREF_TC - rmap_bb_ldo_vtref_tc[1:0]
+ *  0b00..1.117/1.176 V
+ *  0b01..1.134/1.188 V
+ *  0b10..1.10/1.162 V
+ *  0b11..1.09/1.152 V
+ */
+#define XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_TC(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_TC_SHIFT)) & XCVR_ANALOG_BB_LDO_2_BB_LDO_VTREF_TC_MASK)
+/*! @} */
+
+/*! @name RX_ADC - RF Analog ADC Control */
+/*! @{ */
+#define XCVR_ANALOG_RX_ADC_RX_ADC_BUMP_MASK      (0xFFU)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_BUMP_SHIFT     (0U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_BUMP(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_ADC_RX_ADC_BUMP_SHIFT)) & XCVR_ANALOG_RX_ADC_RX_ADC_BUMP_MASK)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_FS_SEL_MASK    (0x300U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_FS_SEL_SHIFT   (8U)
+/*! RX_ADC_FS_SEL - rmap_rx_adc_fs_sel[1:0]
+ *  0b00..52MHz (2x26MHz)
+ *  0b01..64MHz (2x32MHz)
+ *  0b10..+13% of 64MHz
+ *  0b11..- 11% of 64MHz
+ */
+#define XCVR_ANALOG_RX_ADC_RX_ADC_FS_SEL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_ADC_RX_ADC_FS_SEL_SHIFT)) & XCVR_ANALOG_RX_ADC_RX_ADC_FS_SEL_MASK)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_I_DIAGSEL_MASK (0x400U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_I_DIAGSEL_SHIFT (10U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_I_DIAGSEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_ADC_RX_ADC_I_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_ADC_RX_ADC_I_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_Q_DIAGSEL_MASK (0x800U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_Q_DIAGSEL_SHIFT (11U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_Q_DIAGSEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_ADC_RX_ADC_Q_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_ADC_RX_ADC_Q_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_SPARE_MASK     (0xF000U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_SPARE_SHIFT    (12U)
+#define XCVR_ANALOG_RX_ADC_RX_ADC_SPARE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_ADC_RX_ADC_SPARE_SHIFT)) & XCVR_ANALOG_RX_ADC_RX_ADC_SPARE_MASK)
+/*! @} */
+
+/*! @name RX_BBA - RF Analog BBA Control */
+/*! @{ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_MASK    (0x7U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_SHIFT   (0U)
+/*! RX_BBA_BW_SEL - rmap_rx_bba_bw_sel[2:0]
+ *  0b000..1000K
+ *  0b001..900K
+ *  0b010..800K
+ *  0b011..700K Default
+ *  0b100..600K
+ *  0b101..500K
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_CUR_BUMP_MASK  (0x8U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_CUR_BUMP_SHIFT (3U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_CUR_BUMP(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_CUR_BUMP_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_CUR_BUMP_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL1_MASK  (0x10U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL1_SHIFT (4U)
+/*! RX_BBA_DIAGSEL1 - rmap_rx_bba_diagsel1
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL1(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL1_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL1_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL2_MASK  (0x20U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL2_SHIFT (5U)
+/*! RX_BBA_DIAGSEL2 - rmap_rx_bba_diagsel2
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL2(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL2_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL2_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL3_MASK  (0x40U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL3_SHIFT (6U)
+/*! RX_BBA_DIAGSEL3 - rmap_rx_bba_diagsel3
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL3(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL3_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL3_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL4_MASK  (0x80U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL4_SHIFT (7U)
+/*! RX_BBA_DIAGSEL4 - rmap_rx_bba_diagsel4
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL4(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL4_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_DIAGSEL4_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_SPARE_MASK     (0x3F0000U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA_SPARE_SHIFT    (16U)
+/*! RX_BBA_SPARE - rmap_rx_bba_spare[5:0]
+ *  0b000000..600mV (Default)
+ *  0b000001..675mV
+ *  0b000010..450mV
+ *  0b000011..525mV
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA_SPARE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA_SPARE_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA_SPARE_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_MASK   (0x7000000U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_SHIFT  (24U)
+/*! RX_BBA2_BW_SEL - rmap_bba2_bw_sel[2:0]
+ *  0b000..1000K
+ *  0b001..900K
+ *  0b010..800K
+ *  0b011..700K Default
+ *  0b100..600K
+ *  0b101..500K
+ */
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_MASK)
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_SPARE_MASK    (0x70000000U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_SPARE_SHIFT   (28U)
+#define XCVR_ANALOG_RX_BBA_RX_BBA2_SPARE(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_BBA_RX_BBA2_SPARE_SHIFT)) & XCVR_ANALOG_RX_BBA_RX_BBA2_SPARE_MASK)
+/*! @} */
+
+/*! @name RX_LNA - RF Analog LNA Control */
+/*! @{ */
+#define XCVR_ANALOG_RX_LNA_RX_LNA_BUMP_MASK      (0xFU)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_BUMP_SHIFT     (0U)
+/*! RX_LNA_BUMP - rmap_rx_lna_bump[3:0]
+ *  0b0000..Default
+ *  0b0001..-25%
+ *  0b0010..+50%
+ *  0b0011..+25%
+ *  0b0100..CM 480mV
+ *  0b1000..CM 600mV
+ *  0b1100..CM 660mV
+ */
+#define XCVR_ANALOG_RX_LNA_RX_LNA_BUMP(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_LNA_BUMP_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_LNA_BUMP_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HG_DIAGSEL_MASK (0x10U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HG_DIAGSEL_SHIFT (4U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HG_DIAGSEL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_LNA_HG_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_LNA_HG_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HIZ_ENABLE_MASK (0x20U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HIZ_ENABLE_SHIFT (5U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_HIZ_ENABLE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_LNA_HIZ_ENABLE_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_LNA_HIZ_ENABLE_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_LG_DIAGSEL_MASK (0x40U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_LG_DIAGSEL_SHIFT (6U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_LG_DIAGSEL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_LNA_LG_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_LNA_LG_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_SPARE_MASK     (0x300U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_SPARE_SHIFT    (8U)
+#define XCVR_ANALOG_RX_LNA_RX_LNA_SPARE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_LNA_SPARE_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_LNA_SPARE_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_BUMP_MASK    (0xF0000U)
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_BUMP_SHIFT   (16U)
+/*! RX_MIXER_BUMP - rmap_rx_mixer_bump[3:0]
+ *  0b0000..825mV (Default)
+ *  0b0001..750mV
+ *  0b0010..900mV
+ *  0b0011..975mV
+ */
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_BUMP(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_MIXER_BUMP_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_MIXER_BUMP_MASK)
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_SPARE_MASK   (0x100000U)
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_SPARE_SHIFT  (20U)
+#define XCVR_ANALOG_RX_LNA_RX_MIXER_SPARE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_LNA_RX_MIXER_SPARE_SHIFT)) & XCVR_ANALOG_RX_LNA_RX_MIXER_SPARE_MASK)
+/*! @} */
+
+/*! @name RX_TZA - RF Analog TZA Control */
+/*! @{ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_MASK    (0x7U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_SHIFT   (0U)
+/*! RX_TZA_BW_SEL - rmap_rx_tza_bw_sel[2:0]
+ *  0b000..1000K
+ *  0b001..900K
+ *  0b010..800K
+ *  0b011..700K Default
+ *  0b100..600K
+ *  0b101..500K
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_CUR_BUMP_MASK  (0x8U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_CUR_BUMP_SHIFT (3U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_CUR_BUMP(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA_CUR_BUMP_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA_CUR_BUMP_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_GAIN_BUMP_MASK (0x10U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_GAIN_BUMP_SHIFT (4U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_GAIN_BUMP(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA_GAIN_BUMP_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA_GAIN_BUMP_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_SPARE_MASK     (0x3F0000U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA_SPARE_SHIFT    (16U)
+/*! RX_TZA_SPARE - rmap_rx_tza_spare[5:0]
+ *  0b000000..600mV (Default)
+ *  0b000001..675mV
+ *  0b000010..450mV
+ *  0b000011..525mV
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA_SPARE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA_SPARE_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA_SPARE_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA1_DIAGSEL_MASK  (0x1000000U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA1_DIAGSEL_SHIFT (24U)
+/*! RX_TZA1_DIAGSEL - rmap_rx_tza1_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA1_DIAGSEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA1_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA1_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA2_DIAGSEL_MASK  (0x2000000U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA2_DIAGSEL_SHIFT (25U)
+/*! RX_TZA2_DIAGSEL - rmap_rx_tza2_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA2_DIAGSEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA2_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA2_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA3_DIAGSEL_MASK  (0x4000000U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA3_DIAGSEL_SHIFT (26U)
+/*! RX_TZA3_DIAGSEL - rmap_rx_tza3_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA3_DIAGSEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA3_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA3_DIAGSEL_MASK)
+#define XCVR_ANALOG_RX_TZA_RX_TZA4_DIAGSEL_MASK  (0x8000000U)
+#define XCVR_ANALOG_RX_TZA_RX_TZA4_DIAGSEL_SHIFT (27U)
+/*! RX_TZA4_DIAGSEL - rmap_rx_tza4_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_RX_TZA_RX_TZA4_DIAGSEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_TZA_RX_TZA4_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_TZA_RX_TZA4_DIAGSEL_MASK)
+/*! @} */
+
+/*! @name RX_AUXPLL - RF Analog Aux PLL Control */
+/*! @{ */
+#define XCVR_ANALOG_RX_AUXPLL_BIAS_TRIM_MASK     (0x7U)
+#define XCVR_ANALOG_RX_AUXPLL_BIAS_TRIM_SHIFT    (0U)
+#define XCVR_ANALOG_RX_AUXPLL_BIAS_TRIM(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_BIAS_TRIM_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_BIAS_TRIM_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL1_MASK      (0x8U)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL1_SHIFT     (3U)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL1(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_DIAGSEL1_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_DIAGSEL1_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL2_MASK      (0x10U)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL2_SHIFT     (4U)
+#define XCVR_ANALOG_RX_AUXPLL_DIAGSEL2(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_DIAGSEL2_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_DIAGSEL2_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_LF_CNTL_MASK       (0xE0U)
+#define XCVR_ANALOG_RX_AUXPLL_LF_CNTL_SHIFT      (5U)
+#define XCVR_ANALOG_RX_AUXPLL_LF_CNTL(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_LF_CNTL_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_LF_CNTL_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_SPARE_MASK         (0xF00U)
+#define XCVR_ANALOG_RX_AUXPLL_SPARE_SHIFT        (8U)
+#define XCVR_ANALOG_RX_AUXPLL_SPARE(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_SPARE_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_SPARE_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_VCO_DAC_REF_ADJUST_MASK (0xF000U)
+#define XCVR_ANALOG_RX_AUXPLL_VCO_DAC_REF_ADJUST_SHIFT (12U)
+#define XCVR_ANALOG_RX_AUXPLL_VCO_DAC_REF_ADJUST(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_VCO_DAC_REF_ADJUST_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_VCO_DAC_REF_ADJUST_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_VTUNE_TESTMODE_MASK (0x10000U)
+#define XCVR_ANALOG_RX_AUXPLL_VTUNE_TESTMODE_SHIFT (16U)
+#define XCVR_ANALOG_RX_AUXPLL_VTUNE_TESTMODE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_VTUNE_TESTMODE_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_VTUNE_TESTMODE_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_BIAST_MASK (0x300000U)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_BIAST_SHIFT (20U)
+/*! RXTX_BAL_BIAST - rmap_rxtx_bal_biast[1:0]
+ *  0b00..0.6
+ *  0b01..0.4
+ *  0b10..0.9
+ *  0b11..1.2
+ */
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_BIAST(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_BIAST_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_BIAST_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_SPARE_MASK (0x7000000U)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_SPARE_SHIFT (24U)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_SPARE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_SPARE_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_RXTX_BAL_SPARE_MASK)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_RCCAL_DIAGSEL_MASK (0x10000000U)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_RCCAL_DIAGSEL_SHIFT (28U)
+#define XCVR_ANALOG_RX_AUXPLL_RXTX_RCCAL_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_RX_AUXPLL_RXTX_RCCAL_DIAGSEL_SHIFT)) & XCVR_ANALOG_RX_AUXPLL_RXTX_RCCAL_DIAGSEL_MASK)
+/*! @} */
+
+/*! @name SY_CTRL_1 - RF Analog Synthesizer Control 1 */
+/*! @{ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_DIVN_SPARE_MASK (0x1U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_DIVN_SPARE_SHIFT (0U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_DIVN_SPARE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_DIVN_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_DIVN_SPARE_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_FCAL_SPARE_MASK (0x2U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_FCAL_SPARE_SHIFT (1U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_FCAL_SPARE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_FCAL_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_FCAL_SPARE_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_FDBK_MASK (0x30U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_FDBK_SHIFT (4U)
+/*! SY_LO_BUMP_RTLO_FDBK - rmap_sy_lo_bump_rtlo_fdbk[1:0]
+ *  0b00..1.045 V
+ *  0b01..1.084 V
+ *  0b10..1.097 V
+ *  0b11..1.10 V
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_FDBK(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_FDBK_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_FDBK_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_RX_MASK (0xC0U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_RX_SHIFT (6U)
+/*! SY_LO_BUMP_RTLO_RX - rmap_sy_lo_bump_rtlo_rx[1:0]
+ *  0b00..1.051/1.037 V
+ *  0b01..1.082/1.075 V
+ *  0b10..1.092/1.088 V
+ *  0b11..1.098/1.094 V
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_RX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_RX_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_RX_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_TX_MASK (0x300U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_TX_SHIFT (8U)
+/*! SY_LO_BUMP_RTLO_TX - rmap_sy_lo_bump_rtlo_tx[1:0]
+ *  0b00..1.071/1.065 V
+ *  0b01..1.092/1.090 V
+ *  0b10..1.099/1.098 V
+ *  0b11..1.10/1.1 V
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_TX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_TX_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LO_BUMP_RTLO_TX_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_DIAGSEL_MASK (0x400U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_DIAGSEL_SHIFT (10U)
+/*! SY_LO_DIAGSEL - rmap_sy_lo_diagsel
+ *  0b0..Diag disable
+ *  0b1..Diag enable
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_DIAGSEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LO_DIAGSEL_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LO_DIAGSEL_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_SPARE_MASK   (0x7000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_SPARE_SHIFT  (12U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LO_SPARE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LO_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LO_SPARE_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL_MASK (0x70000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL_SHIFT (16U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LPF_FILT_CTRL_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_SPARE_MASK  (0x80000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_SPARE_SHIFT (19U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_LPF_SPARE(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_LPF_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_LPF_SPARE_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_DIAGSEL_MASK (0x100000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_DIAGSEL_SHIFT (20U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_DIAGSEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_PD_DIAGSEL_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_PD_DIAGSEL_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_TUNE_MASK (0x600000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_TUNE_SHIFT (21U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_TUNE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_TUNE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_TUNE_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_SEL_MASK (0x800000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_SEL_SHIFT (23U)
+/*! SY_PD_PCH_SEL - rmap_sy_pd_pch_sel
+ *  0b0..inverter based precharge
+ *  0b1..resistor divider based precharge
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_SEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_SEL_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_PD_PCH_SEL_MASK)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_SPARE_MASK   (0x3000000U)
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_SPARE_SHIFT  (24U)
+/*! SY_PD_SPARE - rmap_sy_pd_spare[1:0]
+ *  0b00..Default ;
+ *  0b01..PD output is pulled down.
+ */
+#define XCVR_ANALOG_SY_CTRL_1_SY_PD_SPARE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_1_SY_PD_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_1_SY_PD_SPARE_MASK)
+/*! @} */
+
+/*! @name SY_CTRL_2 - RF Analog Synthesizer Control 2 */
+/*! @{ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_BIAS_MASK   (0x7U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_BIAS_SHIFT  (0U)
+/*! SY_VCO_BIAS - rmap_sy_vco_bias[2:0]
+ *  0b000..0.97V
+ *  0b001..1.033V
+ *  0b010..1.06V
+ *  0b011..1.07V
+ *  0b100..1.08V
+ *  0b101..1.085V
+ *  0b110..1.090V
+ *  0b111..1.095V
+ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_BIAS(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_BIAS_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_BIAS_MASK)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_DIAGSEL_MASK (0x8U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_DIAGSEL_SHIFT (3U)
+/*! SY_VCO_DIAGSEL - rmap_sy_vco_diagsel
+ *  0b1..Diag enable
+ *  0b0..Diag disable
+ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_DIAGSEL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_DIAGSEL_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_DIAGSEL_MASK)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KV_MASK     (0x70U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KV_SHIFT    (4U)
+/*! SY_VCO_KV - rmap_sy_vco_kv[2:0]
+ *  0b000..50MHz/V
+ *  0b001..60MHz/V
+ *  0b010..70MHz/V
+ *  0b011..80MHz/V
+ *  0b100..80MHz/V
+ *  0b101..80MHz/V
+ *  0b110..80MHz/V
+ *  0b111..80MHz/V
+ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KV(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_KV_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_KV_MASK)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_MASK    (0x700U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_SHIFT   (8U)
+/*! SY_VCO_KVM - rmap_sy_vco_kvm[2:0]
+ *  0b000..10MHz/V
+ *  0b001..20MHz/V
+ *  0b010..30MHz/V
+ *  0b011..40MHz/V
+ *  0b100..40MHz/V
+ *  0b101..40MHz/V
+ *  0b110..40MHz/V
+ *  0b111..40MHz/V
+ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_MASK)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_PK_DET_ON_MASK (0x1000U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_PK_DET_ON_SHIFT (12U)
+/*! SY_VCO_PK_DET_ON - rmap_sy_vco_pk_det_on
+ *  0b1..Enable
+ *  0b0..Disable
+ */
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_PK_DET_ON(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_PK_DET_ON_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_PK_DET_ON_MASK)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_SPARE_MASK  (0x1C000U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_SPARE_SHIFT (14U)
+#define XCVR_ANALOG_SY_CTRL_2_SY_VCO_SPARE(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_SY_CTRL_2_SY_VCO_SPARE_SHIFT)) & XCVR_ANALOG_SY_CTRL_2_SY_VCO_SPARE_MASK)
+/*! @} */
+
+/*! @name TX_DAC_PA - RF Analog TX HPM DAC and PA Control */
+/*! @{ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_CAP_MASK (0x3U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_CAP_SHIFT (0U)
+/*! TX_DAC_BUMP_CAP - rmap_tx_dac_bump_cap[1:0]
+ *  0b00..1pF(default)
+ *  0b01..1.5pF
+ *  0b10..1.5pF
+ *  0b11..2pF
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_CAP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_CAP_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_CAP_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_IDAC_MASK (0x18U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_IDAC_SHIFT (3U)
+/*! TX_DAC_BUMP_IDAC - rmap_tx_dac_bump_idac[1:0]
+ *  0b00..250nA(default)
+ *  0b01..207nA
+ *  0b10..312nA
+ *  0b11..415nA
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_IDAC(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_IDAC_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_IDAC_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_RLOAD_MASK (0xC0U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_RLOAD_SHIFT (6U)
+/*! TX_DAC_BUMP_RLOAD - rmap_tx_dac_bump_rload[1:0]
+ *  0b00..3.12 kohms(default)
+ *  0b01..2.34 kohms
+ *  0b10..3.9 kohms
+ *  0b11..4.6 kohms
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_RLOAD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_RLOAD_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_BUMP_RLOAD_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_DIAGSEL_MASK (0x200U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_DIAGSEL_SHIFT (9U)
+/*! TX_DAC_DIAGSEL - rmap_tx_dac_diagsel
+ *  0b0..Disable Diag
+ *  0b1..Enable Diag
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_DIAGSEL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_DIAGSEL_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_DIAGSEL_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_INVERT_CLK_MASK (0x400U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_INVERT_CLK_SHIFT (10U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_INVERT_CLK(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_INVERT_CLK_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_INVERT_CLK_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_OPAMP_DIAGSEL_MASK (0x800U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_OPAMP_DIAGSEL_SHIFT (11U)
+/*! TX_DAC_OPAMP_DIAGSEL - rmap_tx_dac_opamp_diagsel
+ *  0b0..Disable Diag
+ *  0b1..Enable Diag
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_OPAMP_DIAGSEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_OPAMP_DIAGSEL_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_OPAMP_DIAGSEL_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_SPARE_MASK  (0xE000U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_SPARE_SHIFT (13U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_DAC_SPARE(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_DAC_SPARE_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_DAC_SPARE_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_BUMP_VBIAS_MASK (0xE0000U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_BUMP_VBIAS_SHIFT (17U)
+/*! TX_PA_BUMP_VBIAS - rmap_tx_pa_bump_vbias[2:0]
+ *  0b000..0.557
+ *  0b001..0.651
+ *  0b010..0.741
+ *  0b011..0.822
+ *  0b100..0.590
+ *  0b101..0.683
+ *  0b110..0.771
+ *  0b111..0.850
+ */
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_BUMP_VBIAS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_PA_BUMP_VBIAS_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_PA_BUMP_VBIAS_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_DIAGSEL_MASK (0x200000U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_DIAGSEL_SHIFT (21U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_DIAGSEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_PA_DIAGSEL_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_PA_DIAGSEL_MASK)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_SPARE_MASK   (0x3800000U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_SPARE_SHIFT  (23U)
+#define XCVR_ANALOG_TX_DAC_PA_TX_PA_SPARE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_TX_DAC_PA_TX_PA_SPARE_SHIFT)) & XCVR_ANALOG_TX_DAC_PA_TX_PA_SPARE_MASK)
+/*! @} */
+
+/*! @name BALUN_TX - RF Analog Balun TX Mode Control */
+/*! @{ */
+#define XCVR_ANALOG_BALUN_TX_RXTX_BAL_TX_CODE_MASK (0xFFFFFFU)
+#define XCVR_ANALOG_BALUN_TX_RXTX_BAL_TX_CODE_SHIFT (0U)
+#define XCVR_ANALOG_BALUN_TX_RXTX_BAL_TX_CODE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BALUN_TX_RXTX_BAL_TX_CODE_SHIFT)) & XCVR_ANALOG_BALUN_TX_RXTX_BAL_TX_CODE_MASK)
+/*! @} */
+
+/*! @name BALUN_RX - RF Analog Balun RX Mode Control */
+/*! @{ */
+#define XCVR_ANALOG_BALUN_RX_RXTX_BAL_RX_CODE_MASK (0xFFFFFFU)
+#define XCVR_ANALOG_BALUN_RX_RXTX_BAL_RX_CODE_SHIFT (0U)
+#define XCVR_ANALOG_BALUN_RX_RXTX_BAL_RX_CODE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_BALUN_RX_RXTX_BAL_RX_CODE_SHIFT)) & XCVR_ANALOG_BALUN_RX_RXTX_BAL_RX_CODE_MASK)
+/*! @} */
+
+/*! @name DFT_OBSV_1 - RF Analog DFT Observation Register 1 */
+/*! @{ */
+#define XCVR_ANALOG_DFT_OBSV_1_DFT_FREQ_COUNTER_MASK (0x7FFFFU)
+#define XCVR_ANALOG_DFT_OBSV_1_DFT_FREQ_COUNTER_SHIFT (0U)
+#define XCVR_ANALOG_DFT_OBSV_1_DFT_FREQ_COUNTER(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_1_DFT_FREQ_COUNTER_SHIFT)) & XCVR_ANALOG_DFT_OBSV_1_DFT_FREQ_COUNTER_MASK)
+#define XCVR_ANALOG_DFT_OBSV_1_CTUNE_MAX_DIFF_MASK (0xFFF00000U)
+#define XCVR_ANALOG_DFT_OBSV_1_CTUNE_MAX_DIFF_SHIFT (20U)
+#define XCVR_ANALOG_DFT_OBSV_1_CTUNE_MAX_DIFF(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_1_CTUNE_MAX_DIFF_SHIFT)) & XCVR_ANALOG_DFT_OBSV_1_CTUNE_MAX_DIFF_MASK)
+/*! @} */
+
+/*! @name DFT_OBSV_2 - RF Analog DFT Observation Register 2 */
+/*! @{ */
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_MASK (0x1FFFFU)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_SHIFT (0U)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_SHIFT)) & XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_MASK)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_CH_MASK (0x7F000000U)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_CH_SHIFT (24U)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_CH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_CH_SHIFT)) & XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_MAX_DIFF_CH_MASK)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_IGNORE_FAILS_MASK (0x80000000U)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_IGNORE_FAILS_SHIFT (31U)
+#define XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_IGNORE_FAILS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_IGNORE_FAILS_SHIFT)) & XCVR_ANALOG_DFT_OBSV_2_SYN_BIST_IGNORE_FAILS_MASK)
+/*! @} */
+
+/*! @name DFT_OBSV_3 - RF Analog DFT Observation Register 3 */
+/*! @{ */
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_INCREMENT_MASK (0x7U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_INCREMENT_SHIFT (0U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_INCREMENT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_INCREMENT_SHIFT)) & XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_INCREMENT_MASK)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_STOP_MASK (0xFF00U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_STOP_SHIFT (8U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_STOP(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_STOP_SHIFT)) & XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_STOP_MASK)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_START_MASK (0xFF0000U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_START_SHIFT (16U)
+#define XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_START(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_START_SHIFT)) & XCVR_ANALOG_DFT_OBSV_3_HPM_BIST_START_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_ANALOG_Register_Masks */
+
+
+/* XCVR_ANALOG - Peripheral instance base addresses */
+/** Peripheral XCVR_ANA base address */
+#define XCVR_ANA_BASE                            (0x41030500u)
+/** Peripheral XCVR_ANA base pointer */
+#define XCVR_ANA                                 ((XCVR_ANALOG_Type *)XCVR_ANA_BASE)
+/** Array initializer of XCVR_ANALOG peripheral base addresses */
+#define XCVR_ANALOG_BASE_ADDRS                   { XCVR_ANA_BASE }
+/** Array initializer of XCVR_ANALOG peripheral base pointers */
+#define XCVR_ANALOG_BASE_PTRS                    { XCVR_ANA }
+
+/*!
+ * @}
+ */ /* end of group XCVR_ANALOG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_CTRL Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_CTRL_Peripheral_Access_Layer XCVR_CTRL Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_CTRL - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t XCVR_CTRL;                         /**< TRANSCEIVER CONTROL, offset: 0x0 */
+  __IO uint32_t XCVR_STATUS;                       /**< TRANSCEIVER STATUS, offset: 0x4 */
+  __IO uint32_t BLE_ARB_CTRL;                      /**< BLE ARBITRATION CONTROL, offset: 0x8 */
+  __IO uint32_t OVERWRITE_VER;                     /**< OVERWRITE VERSION, offset: 0xC */
+  __IO uint32_t DTEST_CTRL;                        /**< DIGITAL TEST MUX CONTROL, offset: 0x10 */
+  __IO uint32_t DMA_CTRL;                          /**< TRANSCEIVER DMA CONTROL, offset: 0x14 */
+  __I  uint32_t DMA_DATA;                          /**< TRANSCEIVER DMA DATA, offset: 0x18 */
+  __IO uint32_t PACKET_RAM_CTRL;                   /**< PACKET RAM CONTROL, offset: 0x1C */
+  __I  uint32_t RAM_STOP_ADDR;                     /**< PACKET RAM DEBUG RAM STOP ADDRESS, offset: 0x20 */
+  __IO uint32_t FAD_CTRL;                          /**< FAD CONTROL, offset: 0x24 */
+  __IO uint32_t LPPS_CTRL;                         /**< LOW POWER PREAMBLE SEARCH CONTROL, offset: 0x28 */
+  __IO uint32_t COEX_CTRL;                         /**< COEXISTENCE CONTROL, offset: 0x2C */
+  __IO uint32_t CRCW_CFG;                          /**< CRC/WHITENER CONFIG REGISTER, offset: 0x30 */
+  __I  uint32_t CRC_EC_MASK;                       /**< CRC ERROR CORRECTION MASK, offset: 0x34 */
+  __I  uint32_t CRC_RES_OUT;                       /**< CRC RESULT, offset: 0x38 */
+  __IO uint32_t CRCW_CFG2;                         /**< CRC/WHITENER CONFIG 2 REGISTER, offset: 0x3C */
+} XCVR_CTRL_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_CTRL Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_CTRL_Register_Masks XCVR_CTRL Register Masks
+ * @{
+ */
+
+/*! @name XCVR_CTRL - TRANSCEIVER CONTROL */
+/*! @{ */
+#define XCVR_CTRL_XCVR_CTRL_PROTOCOL_MASK        (0xFU)
+#define XCVR_CTRL_XCVR_CTRL_PROTOCOL_SHIFT       (0U)
+/*! PROTOCOL - Radio Protocol Selection
+ *  0b0000..BLE
+ *  0b0001..BLE in MBAN
+ *  0b0010..BLE overlap MBAN
+ *  0b0011..Reserved
+ *  0b0100..802.15.4
+ *  0b0101..802.15.4j
+ *  0b0110..Radio Channels 0-127 selectable, FSK
+ *  0b0111..Radio Channels 0-127 selectable, GFSK
+ *  0b1000..Generic GFSK, with Gaussian Filter
+ *  0b1001..Generic MSK, O-QPSK encoding
+ *  0b1010..Generic FSK, direct +/- Fdev FSK
+ */
+#define XCVR_CTRL_XCVR_CTRL_PROTOCOL(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_PROTOCOL_SHIFT)) & XCVR_CTRL_XCVR_CTRL_PROTOCOL_MASK)
+#define XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC_MASK     (0x70U)
+#define XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC_SHIFT    (4U)
+#define XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC_SHIFT)) & XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC_MASK)
+#define XCVR_CTRL_XCVR_CTRL_REF_CLK_FREQ_MASK    (0x300U)
+#define XCVR_CTRL_XCVR_CTRL_REF_CLK_FREQ_SHIFT   (8U)
+/*! REF_CLK_FREQ - Radio Reference Clock Frequency
+ *  0b00..32 MHz
+ *  0b01..26 MHz
+ *  0b10..Reserved
+ *  0b11..Reserved
+ */
+#define XCVR_CTRL_XCVR_CTRL_REF_CLK_FREQ(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_REF_CLK_FREQ_SHIFT)) & XCVR_CTRL_XCVR_CTRL_REF_CLK_FREQ_MASK)
+#define XCVR_CTRL_XCVR_CTRL_SOC_RF_OSC_CLK_GATE_EN_MASK (0x800U)
+#define XCVR_CTRL_XCVR_CTRL_SOC_RF_OSC_CLK_GATE_EN_SHIFT (11U)
+#define XCVR_CTRL_XCVR_CTRL_SOC_RF_OSC_CLK_GATE_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_SOC_RF_OSC_CLK_GATE_EN_SHIFT)) & XCVR_CTRL_XCVR_CTRL_SOC_RF_OSC_CLK_GATE_EN_MASK)
+#define XCVR_CTRL_XCVR_CTRL_DEMOD_SEL_MASK       (0x3000U)
+#define XCVR_CTRL_XCVR_CTRL_DEMOD_SEL_SHIFT      (12U)
+/*! DEMOD_SEL - Demodulator Selector
+ *  0b00..No demodulator selected
+ *  0b01..Use NXP Multi-standard PHY demodulator
+ *  0b10..Use Legacy 802.15.4 demodulator
+ *  0b11..Reserved
+ */
+#define XCVR_CTRL_XCVR_CTRL_DEMOD_SEL(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_DEMOD_SEL_SHIFT)) & XCVR_CTRL_XCVR_CTRL_DEMOD_SEL_MASK)
+#define XCVR_CTRL_XCVR_CTRL_MAN_DSM_SEL_MASK     (0xC000U)
+#define XCVR_CTRL_XCVR_CTRL_MAN_DSM_SEL_SHIFT    (14U)
+#define XCVR_CTRL_XCVR_CTRL_MAN_DSM_SEL(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_MAN_DSM_SEL_SHIFT)) & XCVR_CTRL_XCVR_CTRL_MAN_DSM_SEL_MASK)
+#define XCVR_CTRL_XCVR_CTRL_RADIO0_IRQ_SEL_MASK  (0x70000U)
+#define XCVR_CTRL_XCVR_CTRL_RADIO0_IRQ_SEL_SHIFT (16U)
+/*! RADIO0_IRQ_SEL - RADIO0_IRQ_SEL
+ *  0b000..Assign Radio #0 Interrupt to BLE
+ *  0b001..Assign Radio #0 Interrupt to 802.15.4
+ *  0b010..Radio #0 Interrupt unassigned
+ *  0b011..Assign Radio #0 Interrupt to GENERIC_FSK
+ *  0b100..Radio #0 Interrupt unassigned
+ *  0b101..Radio #0 Interrupt unassigned
+ *  0b110..Radio #0 Interrupt unassigned
+ *  0b111..Radio #0 Interrupt unassigned
+ */
+#define XCVR_CTRL_XCVR_CTRL_RADIO0_IRQ_SEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_RADIO0_IRQ_SEL_SHIFT)) & XCVR_CTRL_XCVR_CTRL_RADIO0_IRQ_SEL_MASK)
+#define XCVR_CTRL_XCVR_CTRL_RADIO1_IRQ_SEL_MASK  (0x700000U)
+#define XCVR_CTRL_XCVR_CTRL_RADIO1_IRQ_SEL_SHIFT (20U)
+/*! RADIO1_IRQ_SEL - RADIO1_IRQ_SEL
+ *  0b000..Assign Radio #1 Interrupt to BLE
+ *  0b001..Assign Radio #1 Interrupt to 802.15.4
+ *  0b010..Radio #1 Interrupt unassigned
+ *  0b011..Assign Radio #1 Interrupt to GENERIC_FSK
+ *  0b100..Radio #1 Interrupt unassigned
+ *  0b101..Radio #1 Interrupt unassigned
+ *  0b110..Radio #1 Interrupt unassigned
+ *  0b111..Radio #1 Interrupt unassigned
+ */
+#define XCVR_CTRL_XCVR_CTRL_RADIO1_IRQ_SEL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_RADIO1_IRQ_SEL_SHIFT)) & XCVR_CTRL_XCVR_CTRL_RADIO1_IRQ_SEL_MASK)
+#define XCVR_CTRL_XCVR_CTRL_TSM_LL_INHIBIT_MASK  (0xF000000U)
+#define XCVR_CTRL_XCVR_CTRL_TSM_LL_INHIBIT_SHIFT (24U)
+#define XCVR_CTRL_XCVR_CTRL_TSM_LL_INHIBIT(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_CTRL_TSM_LL_INHIBIT_SHIFT)) & XCVR_CTRL_XCVR_CTRL_TSM_LL_INHIBIT_MASK)
+/*! @} */
+
+/*! @name XCVR_STATUS - TRANSCEIVER STATUS */
+/*! @{ */
+#define XCVR_CTRL_XCVR_STATUS_TSM_COUNT_MASK     (0xFFU)
+#define XCVR_CTRL_XCVR_STATUS_TSM_COUNT_SHIFT    (0U)
+#define XCVR_CTRL_XCVR_STATUS_TSM_COUNT(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_TSM_COUNT_SHIFT)) & XCVR_CTRL_XCVR_STATUS_TSM_COUNT_MASK)
+#define XCVR_CTRL_XCVR_STATUS_PLL_SEQ_STATE_MASK (0xF00U)
+#define XCVR_CTRL_XCVR_STATUS_PLL_SEQ_STATE_SHIFT (8U)
+/*! PLL_SEQ_STATE - PLL Sequence State
+ *  0b0000..PLL OFF
+ *  0b0010..CTUNE
+ *  0b0011..CTUNE_SETTLE
+ *  0b0110..HPMCAL1
+ *  0b1000..HPMCAL1_SETTLE
+ *  0b1010..HPMCAL2
+ *  0b1100..HPMCAL2_SETTLE
+ *  0b1111..PLLREADY
+ */
+#define XCVR_CTRL_XCVR_STATUS_PLL_SEQ_STATE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_PLL_SEQ_STATE_SHIFT)) & XCVR_CTRL_XCVR_STATUS_PLL_SEQ_STATE_MASK)
+#define XCVR_CTRL_XCVR_STATUS_RX_MODE_MASK       (0x1000U)
+#define XCVR_CTRL_XCVR_STATUS_RX_MODE_SHIFT      (12U)
+#define XCVR_CTRL_XCVR_STATUS_RX_MODE(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_RX_MODE_SHIFT)) & XCVR_CTRL_XCVR_STATUS_RX_MODE_MASK)
+#define XCVR_CTRL_XCVR_STATUS_TX_MODE_MASK       (0x2000U)
+#define XCVR_CTRL_XCVR_STATUS_TX_MODE_SHIFT      (13U)
+#define XCVR_CTRL_XCVR_STATUS_TX_MODE(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_TX_MODE_SHIFT)) & XCVR_CTRL_XCVR_STATUS_TX_MODE_MASK)
+#define XCVR_CTRL_XCVR_STATUS_BTLE_SYSCLK_REQ_MASK (0x10000U)
+#define XCVR_CTRL_XCVR_STATUS_BTLE_SYSCLK_REQ_SHIFT (16U)
+#define XCVR_CTRL_XCVR_STATUS_BTLE_SYSCLK_REQ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_BTLE_SYSCLK_REQ_SHIFT)) & XCVR_CTRL_XCVR_STATUS_BTLE_SYSCLK_REQ_MASK)
+#define XCVR_CTRL_XCVR_STATUS_RIF_LL_ACTIVE_MASK (0x20000U)
+#define XCVR_CTRL_XCVR_STATUS_RIF_LL_ACTIVE_SHIFT (17U)
+#define XCVR_CTRL_XCVR_STATUS_RIF_LL_ACTIVE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_RIF_LL_ACTIVE_SHIFT)) & XCVR_CTRL_XCVR_STATUS_RIF_LL_ACTIVE_MASK)
+#define XCVR_CTRL_XCVR_STATUS_XTAL_READY_MASK    (0x40000U)
+#define XCVR_CTRL_XCVR_STATUS_XTAL_READY_SHIFT   (18U)
+/*! XTAL_READY - RF Osciallator Xtal Ready
+ *  0b0..Indicates that the RF Oscillator is disabled or has not completed its warmup.
+ *  0b1..Indicates that the RF Oscillator has completed its warmup count and is ready for use.
+ */
+#define XCVR_CTRL_XCVR_STATUS_XTAL_READY(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_XTAL_READY_SHIFT)) & XCVR_CTRL_XCVR_STATUS_XTAL_READY_MASK)
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ0_MASK      (0x1000000U)
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ0_SHIFT     (24U)
+/*! TSM_IRQ0 - TSM Interrupt #0
+ *  0b0..TSM Interrupt #0 is not asserted.
+ *  0b1..TSM Interrupt #0 is asserted. Write '1' to this bit to clear it.
+ */
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ0(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_TSM_IRQ0_SHIFT)) & XCVR_CTRL_XCVR_STATUS_TSM_IRQ0_MASK)
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ1_MASK      (0x2000000U)
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ1_SHIFT     (25U)
+/*! TSM_IRQ1 - TSM Interrupt #1
+ *  0b0..TSM Interrupt #1 is not asserted.
+ *  0b1..TSM Interrupt #1 is asserted. Write '1' to this bit to clear it.
+ */
+#define XCVR_CTRL_XCVR_STATUS_TSM_IRQ1(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_XCVR_STATUS_TSM_IRQ1_SHIFT)) & XCVR_CTRL_XCVR_STATUS_TSM_IRQ1_MASK)
+/*! @} */
+
+/*! @name BLE_ARB_CTRL - BLE ARBITRATION CONTROL */
+/*! @{ */
+#define XCVR_CTRL_BLE_ARB_CTRL_BLE_RELINQUISH_MASK (0x1U)
+#define XCVR_CTRL_BLE_ARB_CTRL_BLE_RELINQUISH_SHIFT (0U)
+#define XCVR_CTRL_BLE_ARB_CTRL_BLE_RELINQUISH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_BLE_ARB_CTRL_BLE_RELINQUISH_SHIFT)) & XCVR_CTRL_BLE_ARB_CTRL_BLE_RELINQUISH_MASK)
+#define XCVR_CTRL_BLE_ARB_CTRL_XCVR_BUSY_MASK    (0x2U)
+#define XCVR_CTRL_BLE_ARB_CTRL_XCVR_BUSY_SHIFT   (1U)
+/*! XCVR_BUSY - Transceiver Busy Status Bit
+ *  0b0..RF Channel in available (TSM is idle)
+ *  0b1..RF Channel in use (TSM is busy)
+ */
+#define XCVR_CTRL_BLE_ARB_CTRL_XCVR_BUSY(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_BLE_ARB_CTRL_XCVR_BUSY_SHIFT)) & XCVR_CTRL_BLE_ARB_CTRL_XCVR_BUSY_MASK)
+/*! @} */
+
+/*! @name OVERWRITE_VER - OVERWRITE VERSION */
+/*! @{ */
+#define XCVR_CTRL_OVERWRITE_VER_OVERWRITE_VER_MASK (0xFFU)
+#define XCVR_CTRL_OVERWRITE_VER_OVERWRITE_VER_SHIFT (0U)
+#define XCVR_CTRL_OVERWRITE_VER_OVERWRITE_VER(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_OVERWRITE_VER_OVERWRITE_VER_SHIFT)) & XCVR_CTRL_OVERWRITE_VER_OVERWRITE_VER_MASK)
+/*! @} */
+
+/*! @name DTEST_CTRL - DIGITAL TEST MUX CONTROL */
+/*! @{ */
+#define XCVR_CTRL_DTEST_CTRL_DTEST_PAGE_MASK     (0x3FU)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_PAGE_SHIFT    (0U)
+/*! DTEST_PAGE - DTEST Page Selector
+ *  0b000000..PLLFREQCAL
+ *  0b000001..PLLBESTDIFF
+ *  0b000010..PLLRIPPLE
+ *  0b000011..PLLHPMCAL
+ *  0b000100..PLLVCOMOD
+ *  0b000101..PLLUNLOCK
+ *  0b000110..PLLCYCSLIP
+ *  0b000111..PLLCHAN
+ *  0b001000..TXWARMUP
+ *  0b001001..TXPOWER
+ *  0b001010..TXFREQWORD
+ *  0b001011..RXWARMUP
+ *  0b001100..RXADC
+ *  0b001101..RXDMA
+ *  0b001110..RXDIGIQ
+ *  0b001111..RXDMA2
+ *  0b010000..RXINPH
+ *  0b010001..RSSI0
+ *  0b010010..RSSI1
+ *  0b010011..AGC0
+ *  0b010100..AGC1
+ *  0b010101..DCOC0
+ *  0b010110..DCOC1
+ *  0b010111..DCOC2
+ *  0b011000..DCOC3
+ *  0b011001..TSM
+ *  0b011010..MTTSMCAL
+ *  0b011011..MTADV
+ *  0b011100..MTINIT
+ *  0b011101..MTSCAN
+ *  0b011110..MTCONN
+ *  0b011111..MTDTM
+ *  0b100000..MTADVXCV
+ *  0b100001..MTCONXCV
+ *  0b100010..MTDTM2
+ *  0b100011..DSM
+ *  0b100100..PHY_FSK_STATE
+ *  0b100101..PHY_CFO_EST_PD
+ *  0b100110..PHY_CFO_EST_PD2
+ *  0b100111..PHY_EARLY_LATE
+ *  0b101000..PHY_FSK_DEMOD
+ *  0b101001..PHY_AA_SEARCH
+ *  0b101010..PHY_DATA_OUT
+ *  0b101011..PHY_SAMP_TIME
+ *  0b101100..CCA_ED_LQI
+ *  0b101101..CCA_ED_LQI2
+ *  0b101110..Reserved
+ *  0b101111..Reserved
+ *  0b110000..Reserved
+ *  0b110001..Reserved
+ *  0b110010..Reserved
+ *  0b110011..Reserved
+ *  0b110100..Reserved
+ *  0b110101..Reserved
+ *  0b110110..Reserved
+ *  0b110111..Reserved
+ *  0b111000..Reserved
+ *  0b111001..Reserved
+ *  0b111010..RCCAL
+ *  0b111011..AUXPLLFCAL
+ *  0b111100..GENFSKTX
+ *  0b111101..GENFSKRX
+ *  0b111110..GENFSKSTATE
+ *  0b111111..GENFILTER
+ */
+#define XCVR_CTRL_DTEST_CTRL_DTEST_PAGE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_DTEST_PAGE_SHIFT)) & XCVR_CTRL_DTEST_CTRL_DTEST_PAGE_MASK)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_EN_MASK       (0x80U)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_EN_SHIFT      (7U)
+/*! DTEST_EN - DTEST Enable
+ *  0b0..Disables DTEST. The DTEST pins assume their mission function.
+ *  0b1..Enables DTEST. The contents of the selected page (DTEST_PAGE) will appear on the DTEST output pins.
+ */
+#define XCVR_CTRL_DTEST_CTRL_DTEST_EN(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_DTEST_EN_SHIFT)) & XCVR_CTRL_DTEST_CTRL_DTEST_EN_MASK)
+#define XCVR_CTRL_DTEST_CTRL_GPIO0_OVLAY_PIN_MASK (0xF00U)
+#define XCVR_CTRL_DTEST_CTRL_GPIO0_OVLAY_PIN_SHIFT (8U)
+#define XCVR_CTRL_DTEST_CTRL_GPIO0_OVLAY_PIN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_GPIO0_OVLAY_PIN_SHIFT)) & XCVR_CTRL_DTEST_CTRL_GPIO0_OVLAY_PIN_MASK)
+#define XCVR_CTRL_DTEST_CTRL_GPIO1_OVLAY_PIN_MASK (0xF000U)
+#define XCVR_CTRL_DTEST_CTRL_GPIO1_OVLAY_PIN_SHIFT (12U)
+#define XCVR_CTRL_DTEST_CTRL_GPIO1_OVLAY_PIN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_GPIO1_OVLAY_PIN_SHIFT)) & XCVR_CTRL_DTEST_CTRL_GPIO1_OVLAY_PIN_MASK)
+#define XCVR_CTRL_DTEST_CTRL_TSM_GPIO_OVLAY_MASK (0x30000U)
+#define XCVR_CTRL_DTEST_CTRL_TSM_GPIO_OVLAY_SHIFT (16U)
+/*! TSM_GPIO_OVLAY - TSM GPIO Overlay Pin Control
+ *  0b00..there is no overlay, and the DTEST Page Table dictates the node that appears on each DTEST pin.
+ *  0b01..the register GPIO0_OVLAY_PIN[3:0] selects the DTEST pin on which GPIO0_TRIG_EN will appear.
+ *  0b10..the register GPIO1_OVLAY_PIN[3:0] selects the DTEST pin on which GPIO1_TRIG_EN will appear.
+ *  0b11..the register GPIO0_OVLAY_PIN[3:0] selects the DTEST pin on which GPIO0_TRIG_EN will appear, and the register GPIO1_OVLAY_PIN[3:0] selects the DTEST pin on which GPIO1_TRIG_EN will appear.
+ */
+#define XCVR_CTRL_DTEST_CTRL_TSM_GPIO_OVLAY(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_TSM_GPIO_OVLAY_SHIFT)) & XCVR_CTRL_DTEST_CTRL_TSM_GPIO_OVLAY_MASK)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_SHFT_MASK     (0x7000000U)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_SHFT_SHIFT    (24U)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_SHFT(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_DTEST_SHFT_SHIFT)) & XCVR_CTRL_DTEST_CTRL_DTEST_SHFT_MASK)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_CCA2_SEL_MASK (0x8000000U)
+#define XCVR_CTRL_DTEST_CTRL_DTEST_CCA2_SEL_SHIFT (27U)
+/*! DTEST_CCA2_SEL - DTEST CCA Mode 2 Selector
+ *  0b0..cca2_max_or_sym[7:0] = cca2_cnt_sym[7:0]
+ *  0b1..cca2_max_or_sym[7:0] = cca2_cnt_max[7:0]
+ */
+#define XCVR_CTRL_DTEST_CTRL_DTEST_CCA2_SEL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_DTEST_CCA2_SEL_SHIFT)) & XCVR_CTRL_DTEST_CTRL_DTEST_CCA2_SEL_MASK)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_I_MASK     (0x10000000U)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_I_SHIFT    (28U)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_I(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_RAW_MODE_I_SHIFT)) & XCVR_CTRL_DTEST_CTRL_RAW_MODE_I_MASK)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_Q_MASK     (0x20000000U)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_Q_SHIFT    (29U)
+#define XCVR_CTRL_DTEST_CTRL_RAW_MODE_Q(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DTEST_CTRL_RAW_MODE_Q_SHIFT)) & XCVR_CTRL_DTEST_CTRL_RAW_MODE_Q_MASK)
+/*! @} */
+
+/*! @name DMA_CTRL - TRANSCEIVER DMA CONTROL */
+/*! @{ */
+#define XCVR_CTRL_DMA_CTRL_DMA_PAGE_MASK         (0xFU)
+#define XCVR_CTRL_DMA_CTRL_DMA_PAGE_SHIFT        (0U)
+/*! DMA_PAGE - Transceiver DMA Page Selector
+ *  0b0000..DMA Idle
+ *  0b0001..RX_DIG I and Q
+ *  0b0010..RX_DIG I Only
+ *  0b0011..RX_DIG Q Only
+ *  0b0100..RAW ADC I and Q
+ *  0b0101..RAW ADC I Only
+ *  0b0110..RAW ADC Q only
+ *  0b0111..DC Estimator I and Q
+ *  0b1000..DC Estimator I Only
+ *  0b1001..DC Estimator Q only
+ *  0b1010..RX_DIG Phase Output
+ *  0b1011..Reserved
+ *  0b1100..Demodulator Soft Decision
+ *  0b1101..Demodulator Data Output
+ *  0b1110..Demodulator CFO Phase Output
+ *  0b1111..Reserved
+ */
+#define XCVR_CTRL_DMA_CTRL_DMA_PAGE(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_PAGE_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_PAGE_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_EN_MASK           (0x10U)
+#define XCVR_CTRL_DMA_CTRL_DMA_EN_SHIFT          (4U)
+#define XCVR_CTRL_DMA_CTRL_DMA_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_EN_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_EN_MASK)
+#define XCVR_CTRL_DMA_CTRL_BYPASS_DMA_SYNC_MASK  (0x20U)
+#define XCVR_CTRL_DMA_CTRL_BYPASS_DMA_SYNC_SHIFT (5U)
+/*! BYPASS_DMA_SYNC - Bypass External DMA Synchronization
+ *  0b0..Don't Bypass External Synchronization. Use this setting if SINGLE_REQ_MODE=1.
+ *  0b1..Bypass External Synchronization. This setting is mandatory if SINGLE_REQ_MODE=0.
+ */
+#define XCVR_CTRL_DMA_CTRL_BYPASS_DMA_SYNC(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_BYPASS_DMA_SYNC_SHIFT)) & XCVR_CTRL_DMA_CTRL_BYPASS_DMA_SYNC_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_AA_TRIGGERED_MASK (0x40U)
+#define XCVR_CTRL_DMA_CTRL_DMA_AA_TRIGGERED_SHIFT (6U)
+#define XCVR_CTRL_DMA_CTRL_DMA_AA_TRIGGERED(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_AA_TRIGGERED_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_AA_TRIGGERED_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMED_OUT_MASK    (0x80U)
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMED_OUT_SHIFT   (7U)
+/*! DMA_TIMED_OUT - DMA Transfer Timed Out
+ *  0b0..A DMA timeout has not occurred
+ *  0b1..A DMA timeout has occurred in Single Request Mode since the last time this bit was cleared
+ */
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMED_OUT(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_TIMED_OUT_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_TIMED_OUT_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMEOUT_MASK      (0xF00U)
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMEOUT_SHIFT     (8U)
+#define XCVR_CTRL_DMA_CTRL_DMA_TIMEOUT(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_TIMEOUT_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_TIMEOUT_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRG_MASK    (0x7000U)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRG_SHIFT   (12U)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRG(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_START_TRG_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_START_TRG_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_EDGE_MASK   (0x8000U)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_EDGE_SHIFT  (15U)
+/*! DMA_START_EDGE - DMA Start Trigger Edge Selector
+ *  0b0..Trigger fires on a rising edge of the selected trigger source
+ *  0b1..Trigger fires on a falling edge of the selected trigger source
+ */
+#define XCVR_CTRL_DMA_CTRL_DMA_START_EDGE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_START_EDGE_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_START_EDGE_MASK)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRIGGERED_MASK (0x10000U)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRIGGERED_SHIFT (16U)
+#define XCVR_CTRL_DMA_CTRL_DMA_START_TRIGGERED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_DMA_START_TRIGGERED_SHIFT)) & XCVR_CTRL_DMA_CTRL_DMA_START_TRIGGERED_MASK)
+#define XCVR_CTRL_DMA_CTRL_SINGLE_REQ_MODE_MASK  (0x20000U)
+#define XCVR_CTRL_DMA_CTRL_SINGLE_REQ_MODE_SHIFT (17U)
+/*! SINGLE_REQ_MODE - DMA Single Request Mode
+ *  0b0..Disable Single Request Mode. The transceiver will assert ipd_req_radio_rx whenever it has a new sample ready for transfer.
+ *  0b1..Enable Single Request Mode. A single initial request by the transceiver will transfer the entire DMA block of data
+ */
+#define XCVR_CTRL_DMA_CTRL_SINGLE_REQ_MODE(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_CTRL_SINGLE_REQ_MODE_SHIFT)) & XCVR_CTRL_DMA_CTRL_SINGLE_REQ_MODE_MASK)
+/*! @} */
+
+/*! @name DMA_DATA - TRANSCEIVER DMA DATA */
+/*! @{ */
+#define XCVR_CTRL_DMA_DATA_DMA_DATA_MASK         (0xFFFFFFFFU)
+#define XCVR_CTRL_DMA_DATA_DMA_DATA_SHIFT        (0U)
+#define XCVR_CTRL_DMA_DATA_DMA_DATA(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_DMA_DATA_DMA_DATA_SHIFT)) & XCVR_CTRL_DMA_DATA_DMA_DATA_MASK)
+/*! @} */
+
+/*! @name PACKET_RAM_CTRL - PACKET RAM CONTROL */
+/*! @{ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_PAGE_MASK  (0xFU)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_PAGE_SHIFT (0U)
+/*! DBG_PAGE - Packet RAM Debug Page Selector
+ *  0b0000..Packet RAM Debug Mode Idle
+ *  0b0001..RX_DIG I and Q
+ *  0b0010..Reserved
+ *  0b0011..Reserved
+ *  0b0100..RAW ADC I and Q
+ *  0b0101..Reserved
+ *  0b0110..Reserved
+ *  0b0111..DC Estimator I and Q
+ *  0b1000..Reserved
+ *  0b1001..Reserved
+ *  0b1010..RX_DIG Phase Output
+ *  0b1011..Reserved
+ *  0b1100..Demodulator Soft Decision
+ *  0b1101..Demodulator Data Output
+ *  0b1110..Demodulator CFO Phase Output
+ *  0b1111..Reserved
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_PAGE(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_PAGE_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_PAGE_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_EN_MASK    (0x10U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_EN_SHIFT   (4U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_EN_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_EN_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_PAGE_MASK (0x20U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_PAGE_SHIFT (5U)
+/*! XCVR_RAM_PAGE - RAM Page Selector for XCVR Access
+ *  0b0..RAM0 is mapped into XCVR address space, between XCVR_BASE + 0x700, and XCVR_BASE + 0xFFF
+ *  0b1..RAM1 is mapped into XCVR address space, between XCVR_BASE + 0x700, and XCVR_BASE + 0xFFF
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_PAGE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_PAGE_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_PAGE_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_ALLOW_MASK (0x40U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_ALLOW_SHIFT (6U)
+/*! XCVR_RAM_ALLOW - Allow Packet RAM Transceiver Access
+ *  0b0..Protocol Engines, and associated IPS busses, have exclusive access to Packet RAM (mission mode)
+ *  0b1..Transceiver-space access to Packet RAM, including Packet RAM debug mode, are allowed
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_ALLOW(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_ALLOW_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_XCVR_RAM_ALLOW_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_ALL_PROTOCOLS_ALLOW_MASK (0x80U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_ALL_PROTOCOLS_ALLOW_SHIFT (7U)
+/*! ALL_PROTOCOLS_ALLOW - Allow IPS bus access to Packet RAM for any protocol at any time.
+ *  0b0..IPS bus access to Packet RAM is restricted to the protocol engine currently selected by XCVR_CTRL[PROTOCOL].
+ *  0b1..All IPS bus access to Packet RAM permitted, regardless of XCVR_CTRL[PROTOCOL] setting
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_ALL_PROTOCOLS_ALLOW(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_ALL_PROTOCOLS_ALLOW_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_ALL_PROTOCOLS_ALLOW_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_RAM_FULL_MASK (0x300U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_RAM_FULL_SHIFT (8U)
+/*! DBG_RAM_FULL - DBG_RAM_FULL[1:0]
+ *  0b00..Neither Packet RAM0 nor RAM1 is full
+ *  0bx1..Packet RAM0 has been filled to capacity.
+ *  0b1x..Packet RAM1 has been filled to capacity.
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_RAM_FULL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_RAM_FULL_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_RAM_FULL_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_AA_TRIGGERED_MASK (0x400U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_AA_TRIGGERED_SHIFT (10U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_AA_TRIGGERED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_AA_TRIGGERED_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_AA_TRIGGERED_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_SOFT_INFO_SEL_MASK (0x800U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_SOFT_INFO_SEL_SHIFT (11U)
+/*! DBG_SOFT_INFO_SEL - Packet RAM Debug PHY Soft Info Output Selector
+ *  0b0..PHY output bit_valid_int is used to capture soft decision data
+ *  0b1..PHY output demod_vout is used to capture soft decision data
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_SOFT_INFO_SEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_SOFT_INFO_SEL_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_SOFT_INFO_SEL_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRG_MASK (0x7000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRG_SHIFT (12U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRG_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRG_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_EDGE_MASK (0x8000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_EDGE_SHIFT (15U)
+/*! DBG_START_EDGE - Packet RAM Debug Start Trigger Edge Selector
+ *  0b0..Trigger fires on a rising edge of the selected trigger source
+ *  0b1..Trigger fires on a falling edge of the selected trigger source
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_EDGE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_EDGE_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_EDGE_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRG_MASK (0xF0000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRG_SHIFT (16U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRG_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRG_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_EDGE_MASK (0x100000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_EDGE_SHIFT (20U)
+/*! DBG_STOP_EDGE - Packet RAM Debug Stop Trigger Edge Selector
+ *  0b0..Trigger fires on a rising edge of the selected trigger source
+ *  0b1..Trigger fires on a falling edge of the selected trigger source
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_EDGE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_EDGE_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_EDGE_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRIGGERED_MASK (0x200000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRIGGERED_SHIFT (21U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRIGGERED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRIGGERED_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_START_TRIGGERED_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRIGGERED_MASK (0x400000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRIGGERED_SHIFT (22U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRIGGERED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRIGGERED_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_DBG_STOP_TRIGGERED_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_PB_PROTECT_MASK (0x800000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_PB_PROTECT_SHIFT (23U)
+/*! PB_PROTECT - Packet Buffer Protect
+ *  0b0..Incoming received packets overwrite Packet Buffer RX contents (default)
+ *  0b1..Incoming received packets are blocked from overwriting Packet Buffer RX contents
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_PB_PROTECT(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_PB_PROTECT_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_PB_PROTECT_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_EN_MASK (0x1000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_EN_SHIFT (24U)
+/*! RAM0_CLK_ON_OVRD_EN - Override control for RAM0 Clock Gate Enable
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RAM0_CLK_ON_OVRD to override the RAM0 Clock Gate Enable.
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_EN_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_EN_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_MASK (0x2000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_SHIFT (25U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CLK_ON_OVRD_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_EN_MASK (0x4000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_EN_SHIFT (26U)
+/*! RAM1_CLK_ON_OVRD_EN - Override control for RAM1 Clock Gate Enable
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RAM1_CLK_ON_OVRD to override the RAM1 Clock Gate Enable.
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_EN_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_EN_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_MASK (0x8000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_SHIFT (27U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CLK_ON_OVRD_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_EN_MASK (0x10000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_EN_SHIFT (28U)
+/*! RAM0_CE_ON_OVRD_EN - Override control for RAM0 CE (Chip Enable)
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RAM0_CE_ON_OVRD to override the RAM0 CE.
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_EN_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_EN_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_MASK (0x20000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_SHIFT (29U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM0_CE_ON_OVRD_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_EN_MASK (0x40000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_EN_SHIFT (30U)
+/*! RAM1_CE_ON_OVRD_EN - Override control for RAM1 CE (Chip Enable)
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RAM1_CE_ON_OVRD to override the RAM1 CE.
+ */
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_EN_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_EN_MASK)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_MASK (0x80000000U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_SHIFT (31U)
+#define XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_SHIFT)) & XCVR_CTRL_PACKET_RAM_CTRL_RAM1_CE_ON_OVRD_MASK)
+/*! @} */
+
+/*! @name RAM_STOP_ADDR - PACKET RAM DEBUG RAM STOP ADDRESS */
+/*! @{ */
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM0_STOP_ADDR_MASK (0x7FFU)
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM0_STOP_ADDR_SHIFT (0U)
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM0_STOP_ADDR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_RAM_STOP_ADDR_RAM0_STOP_ADDR_SHIFT)) & XCVR_CTRL_RAM_STOP_ADDR_RAM0_STOP_ADDR_MASK)
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM1_STOP_ADDR_MASK (0x7FF0000U)
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM1_STOP_ADDR_SHIFT (16U)
+#define XCVR_CTRL_RAM_STOP_ADDR_RAM1_STOP_ADDR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_RAM_STOP_ADDR_RAM1_STOP_ADDR_SHIFT)) & XCVR_CTRL_RAM_STOP_ADDR_RAM1_STOP_ADDR_MASK)
+/*! @} */
+
+/*! @name FAD_CTRL - FAD CONTROL */
+/*! @{ */
+#define XCVR_CTRL_FAD_CTRL_FAD_EN_MASK           (0x1U)
+#define XCVR_CTRL_FAD_CTRL_FAD_EN_SHIFT          (0U)
+/*! FAD_EN - Fast Antenna Diversity Enable
+ *  0b0..Fast Antenna Diversity disabled
+ *  0b1..Fast Antenna Diversity enabled
+ */
+#define XCVR_CTRL_FAD_CTRL_FAD_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_FAD_EN_SHIFT)) & XCVR_CTRL_FAD_CTRL_FAD_EN_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_MASK             (0x2U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_SHIFT            (1U)
+#define XCVR_CTRL_FAD_CTRL_ANTX(x)               (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD_EN_MASK     (0x4U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD_EN_SHIFT    (2U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD_EN(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_OVRD_EN_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_OVRD_EN_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD_MASK        (0x8U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD_SHIFT       (3U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_OVRD(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_OVRD_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_OVRD_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_EN_MASK          (0x30U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_EN_SHIFT         (4U)
+/*! ANTX_EN - FAD Antenna Controls Enable
+ *  0b00..all disabled (held low)
+ *  0b01..only RX/TX_SWITCH enabled
+ *  0b10..only ANT_A/B enabled
+ *  0b11..all enabled
+ */
+#define XCVR_CTRL_FAD_CTRL_ANTX_EN(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_EN_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_EN_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_HZ_MASK          (0x40U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_HZ_SHIFT         (6U)
+/*! ANTX_HZ - FAD PAD Tristate Control
+ *  0b0..ANT_A, ANT_B, RX_SWITCH and TX_SWITCH are actively driven outputs.
+ *  0b1..Antenna controls high impedance- Set ANT_A, ANT_B, RX_SWITCH and TX_SWITCH in high impedance.
+ */
+#define XCVR_CTRL_FAD_CTRL_ANTX_HZ(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_HZ_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_HZ_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_CTRLMODE_MASK    (0x80U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_CTRLMODE_SHIFT   (7U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_CTRLMODE(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_CTRLMODE_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_CTRLMODE_MASK)
+#define XCVR_CTRL_FAD_CTRL_ANTX_POL_MASK         (0xF00U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_POL_SHIFT        (8U)
+#define XCVR_CTRL_FAD_CTRL_ANTX_POL(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_ANTX_POL_SHIFT)) & XCVR_CTRL_FAD_CTRL_ANTX_POL_MASK)
+#define XCVR_CTRL_FAD_CTRL_FAD_NOT_GPIO_MASK     (0xF000U)
+#define XCVR_CTRL_FAD_CTRL_FAD_NOT_GPIO_SHIFT    (12U)
+#define XCVR_CTRL_FAD_CTRL_FAD_NOT_GPIO(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_FAD_CTRL_FAD_NOT_GPIO_SHIFT)) & XCVR_CTRL_FAD_CTRL_FAD_NOT_GPIO_MASK)
+/*! @} */
+
+/*! @name LPPS_CTRL - LOW POWER PREAMBLE SEARCH CONTROL */
+/*! @{ */
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ENABLE_MASK     (0x1U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ENABLE_SHIFT    (0U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ENABLE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_ENABLE_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_ENABLE_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_TZA_ALLOW_MASK  (0x2U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_TZA_ALLOW_SHIFT (1U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_TZA_ALLOW(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_TZA_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_TZA_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_BBA_ALLOW_MASK  (0x4U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_BBA_ALLOW_SHIFT (2U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_BBA_ALLOW(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_BBA_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_BBA_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ADC_ALLOW_MASK  (0x8U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ADC_ALLOW_SHIFT (3U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_ADC_ALLOW(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_ADC_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_ADC_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_ALLOW_MASK (0x10U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_ALLOW_SHIFT (4U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_ALLOW(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_PDET_ALLOW_MASK (0x20U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_PDET_ALLOW_SHIFT (5U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_PDET_ALLOW(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_PDET_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_PDET_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_ALLOW_MASK (0x40U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_ALLOW_SHIFT (6U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_ALLOW(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_BUF_ALLOW_MASK (0x80U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_BUF_ALLOW_SHIFT (7U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_BUF_ALLOW(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_BUF_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_SY_LO_BUF_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_RX_DIG_ALLOW_MASK (0x100U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_RX_DIG_ALLOW_SHIFT (8U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_RX_DIG_ALLOW(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_RX_DIG_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_RX_DIG_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_DIG_ALLOW_MASK (0x200U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_DIG_ALLOW_SHIFT (9U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_DIG_ALLOW(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_DIG_ALLOW_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_DCOC_DIG_ALLOW_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_START_RX_MASK   (0xFF0000U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_START_RX_SHIFT  (16U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_START_RX(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_START_RX_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_START_RX_MASK)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DEST_RX_MASK    (0xFF000000U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DEST_RX_SHIFT   (24U)
+#define XCVR_CTRL_LPPS_CTRL_LPPS_DEST_RX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_LPPS_CTRL_LPPS_DEST_RX_SHIFT)) & XCVR_CTRL_LPPS_CTRL_LPPS_DEST_RX_MASK)
+/*! @} */
+
+/*! @name COEX_CTRL - COEXISTENCE CONTROL */
+/*! @{ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_EN_MASK (0xFU)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_EN_SHIFT (0U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_EN_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_EN_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_TX_MASK (0x10U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_TX_SHIFT (4U)
+/*! RF_NOT_ALLOWED_NO_TX - RF_NOT_ALLOWED_NO_TX
+ *  0b0..Assertion on RF_NOT_ALLOWED has no effect on TX
+ *  0b1..Assertion on RF_NOT_ALLOWED can abort TX
+ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_TX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_TX_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_TX_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_RX_MASK (0x20U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_RX_SHIFT (5U)
+/*! RF_NOT_ALLOWED_NO_RX - RF_NOT_ALLOWED_NO_RX
+ *  0b0..Assertion on RF_NOT_ALLOWED has no effect on RX
+ *  0b1..Assertion on RF_NOT_ALLOWED can abort RX
+ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_RX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_RX_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_NO_RX_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_ASSERTED_MASK (0x40U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_ASSERTED_SHIFT (6U)
+/*! RF_NOT_ALLOWED_ASSERTED - RF_NOT_ALLOWED_ASSERTED
+ *  0b0..Assertion on RF_NOT_ALLOWED has not occurred
+ *  0b1..Assertion on RF_NOT_ALLOWED has occurred since the last time this bit was cleared
+ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_ASSERTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_ASSERTED_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_ASSERTED_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_TX_ABORT_MASK (0x80U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_TX_ABORT_SHIFT (7U)
+/*! RF_NOT_ALLOWED_TX_ABORT - RF_NOT_ALLOWED_TX_ABORT
+ *  0b0..A TX abort due to assertion on RF_NOT_ALLOWED has not occurred
+ *  0b1..A TX abort due to assertion on RF_NOT_ALLOWED has occurred since the last time this bit was cleared
+ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_TX_ABORT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_TX_ABORT_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_TX_ABORT_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_RX_ABORT_MASK (0x100U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_RX_ABORT_SHIFT (8U)
+/*! RF_NOT_ALLOWED_RX_ABORT - RF_NOT_ALLOWED_RX_ABORT
+ *  0b0..A RX abort due to assertion on RF_NOT_ALLOWED has not occurred
+ *  0b1..A RX abort due to assertion on RF_NOT_ALLOWED has occurred since the last time this bit was cleared
+ */
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_RX_ABORT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_RX_ABORT_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_RX_ABORT_MASK)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_MASK  (0x200U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_SHIFT (9U)
+#define XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_SHIFT)) & XCVR_CTRL_COEX_CTRL_RF_NOT_ALLOWED_MASK)
+#define XCVR_CTRL_COEX_CTRL_TSM_SPARE1_EXTEND_MASK (0xFF0000U)
+#define XCVR_CTRL_COEX_CTRL_TSM_SPARE1_EXTEND_SHIFT (16U)
+#define XCVR_CTRL_COEX_CTRL_TSM_SPARE1_EXTEND(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_COEX_CTRL_TSM_SPARE1_EXTEND_SHIFT)) & XCVR_CTRL_COEX_CTRL_TSM_SPARE1_EXTEND_MASK)
+/*! @} */
+
+/*! @name CRCW_CFG - CRC/WHITENER CONFIG REGISTER */
+/*! @{ */
+#define XCVR_CTRL_CRCW_CFG_CRCW_EN_MASK          (0x1U)
+#define XCVR_CTRL_CRCW_CFG_CRCW_EN_SHIFT         (0U)
+#define XCVR_CTRL_CRCW_CFG_CRCW_EN(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRCW_EN_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRCW_EN_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRCW_EC_EN_MASK       (0x2U)
+#define XCVR_CTRL_CRCW_CFG_CRCW_EC_EN_SHIFT      (1U)
+#define XCVR_CTRL_CRCW_CFG_CRCW_EC_EN(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRCW_EC_EN_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRCW_EC_EN_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_ZERO_MASK         (0x4U)
+#define XCVR_CTRL_CRCW_CFG_CRC_ZERO_SHIFT        (2U)
+#define XCVR_CTRL_CRCW_CFG_CRC_ZERO(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_ZERO_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_ZERO_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_EARLY_FAIL_MASK   (0x8U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EARLY_FAIL_SHIFT  (3U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EARLY_FAIL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_EARLY_FAIL_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_EARLY_FAIL_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_RES_OUT_VLD_MASK  (0x10U)
+#define XCVR_CTRL_CRCW_CFG_CRC_RES_OUT_VLD_SHIFT (4U)
+#define XCVR_CTRL_CRCW_CFG_CRC_RES_OUT_VLD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_RES_OUT_VLD_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_RES_OUT_VLD_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_OFFSET_MASK    (0x7FF0000U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_OFFSET_SHIFT   (16U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_OFFSET(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_EC_OFFSET_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_EC_OFFSET_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_DONE_MASK      (0x10000000U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_DONE_SHIFT     (28U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_DONE(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_EC_DONE_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_EC_DONE_MASK)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_FAIL_MASK      (0x20000000U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_FAIL_SHIFT     (29U)
+#define XCVR_CTRL_CRCW_CFG_CRC_EC_FAIL(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG_CRC_EC_FAIL_SHIFT)) & XCVR_CTRL_CRCW_CFG_CRC_EC_FAIL_MASK)
+/*! @} */
+
+/*! @name CRC_EC_MASK - CRC ERROR CORRECTION MASK */
+/*! @{ */
+#define XCVR_CTRL_CRC_EC_MASK_CRC_EC_MASK_MASK   (0xFFFFFFFFU)
+#define XCVR_CTRL_CRC_EC_MASK_CRC_EC_MASK_SHIFT  (0U)
+#define XCVR_CTRL_CRC_EC_MASK_CRC_EC_MASK(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRC_EC_MASK_CRC_EC_MASK_SHIFT)) & XCVR_CTRL_CRC_EC_MASK_CRC_EC_MASK_MASK)
+/*! @} */
+
+/*! @name CRC_RES_OUT - CRC RESULT */
+/*! @{ */
+#define XCVR_CTRL_CRC_RES_OUT_CRC_RES_OUT_MASK   (0xFFFFFFFFU)
+#define XCVR_CTRL_CRC_RES_OUT_CRC_RES_OUT_SHIFT  (0U)
+#define XCVR_CTRL_CRC_RES_OUT_CRC_RES_OUT(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRC_RES_OUT_CRC_RES_OUT_SHIFT)) & XCVR_CTRL_CRC_RES_OUT_CRC_RES_OUT_MASK)
+/*! @} */
+
+/*! @name CRCW_CFG2 - CRC/WHITENER CONFIG 2 REGISTER */
+/*! @{ */
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_BYTES_MASK (0xFFU)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_BYTES_SHIFT (0U)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_BYTES(x) (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_BYTES_SHIFT)) & XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_BYTES_MASK)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_WND_MASK (0xF00U)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_WND_SHIFT (8U)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_WND(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_WND_SHIFT)) & XCVR_CTRL_CRCW_CFG2_CRC_EC_SPKT_WND_MASK)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_LPKT_WND_MASK (0xF000U)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_LPKT_WND_SHIFT (12U)
+#define XCVR_CTRL_CRCW_CFG2_CRC_EC_LPKT_WND(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_CTRL_CRCW_CFG2_CRC_EC_LPKT_WND_SHIFT)) & XCVR_CTRL_CRCW_CFG2_CRC_EC_LPKT_WND_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_CTRL_Register_Masks */
+
+
+/* XCVR_CTRL - Peripheral instance base addresses */
+/** Peripheral XCVR_MISC base address */
+#define XCVR_MISC_BASE                           (0x41030280u)
+/** Peripheral XCVR_MISC base pointer */
+#define XCVR_MISC                                ((XCVR_CTRL_Type *)XCVR_MISC_BASE)
+/** Array initializer of XCVR_CTRL peripheral base addresses */
+#define XCVR_CTRL_BASE_ADDRS                     { XCVR_MISC_BASE }
+/** Array initializer of XCVR_CTRL peripheral base pointers */
+#define XCVR_CTRL_BASE_PTRS                      { XCVR_MISC }
+
+/*!
+ * @}
+ */ /* end of group XCVR_CTRL_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PHY Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PHY_Peripheral_Access_Layer XCVR_PHY Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_PHY - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t PHY_FSK_PD_CFG0;                   /**< Preamble Detect Config 0, offset: 0x0 */
+  __IO uint32_t PHY_FSK_PD_CFG1;                   /**< Preamble Detect Config 1, offset: 0x4 */
+  __IO uint32_t PHY_FSK_CFG;                       /**< PHY Configuration, offset: 0x8 */
+  __IO uint32_t PHY_FSK_MISC;                      /**< PHY Misc. Configuration, offset: 0xC */
+  __IO uint32_t NTW_ADR_BSM;                       /**< PHY BSM Network Address, offset: 0x10 */
+  __I  uint32_t FSK_STAT;                          /**< PHY Status, offset: 0x14 */
+  __IO uint32_t FSK_FAD_CTRL;                      /**< PHY FAD control, offset: 0x18 */
+} XCVR_PHY_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PHY Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PHY_Register_Masks XCVR_PHY Register Masks
+ * @{
+ */
+
+/*! @name PHY_FSK_PD_CFG0 - Preamble Detect Config 0 */
+/*! @{ */
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF0_MASK   (0x1FU)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF0_SHIFT  (0U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF0(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF0_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF0_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF1_MASK   (0x3E0U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF1_SHIFT  (5U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF1(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF1_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF1_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF2_MASK   (0x7C00U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF2_SHIFT  (10U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF2(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF2_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF2_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF3_MASK   (0xF8000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF3_SHIFT  (15U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF3(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF3_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF3_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF4_MASK   (0x1F00000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF4_SHIFT  (20U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF4(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF4_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF4_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF5_MASK   (0x3E000000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF5_SHIFT  (25U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF5(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF5_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PRE_REF5_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PHY_CLK_ON_MASK (0x80000000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PHY_CLK_ON_SHIFT (31U)
+#define XCVR_PHY_PHY_FSK_PD_CFG0_PHY_CLK_ON(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG0_PHY_CLK_ON_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG0_PHY_CLK_ON_MASK)
+/*! @} */
+
+/*! @name PHY_FSK_PD_CFG1 - Preamble Detect Config 1 */
+/*! @{ */
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF6_MASK   (0x1FU)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF6_SHIFT  (0U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF6(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF6_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF6_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF7_MASK   (0x3E0U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF7_SHIFT  (5U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF7(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF7_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG1_PRE_REF7_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_TIMEOUT_MASK (0x7C00U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_TIMEOUT_SHIFT (10U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_TIMEOUT(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG1_PD_TIMEOUT_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG1_PD_TIMEOUT_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_THRESH_MASK  (0xFF0000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_THRESH_SHIFT (16U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_THRESH(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG1_PD_THRESH_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG1_PD_THRESH_MASK)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_FREQ_THRESH_MASK (0xFE000000U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_FREQ_THRESH_SHIFT (25U)
+#define XCVR_PHY_PHY_FSK_PD_CFG1_PD_FREQ_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_PD_CFG1_PD_FREQ_THRESH_SHIFT)) & XCVR_PHY_PHY_FSK_PD_CFG1_PD_FREQ_THRESH_MASK)
+/*! @} */
+
+/*! @name PHY_FSK_CFG - PHY Configuration */
+/*! @{ */
+#define XCVR_PHY_PHY_FSK_CFG_AA_PLAYBACK_MASK    (0x1U)
+#define XCVR_PHY_PHY_FSK_CFG_AA_PLAYBACK_SHIFT   (0U)
+/*! AA_PLAYBACK
+ *  0b0..PHY will only output bits after the AA.
+ *  0b1..PHY will output the AA, followed by the rest of the packet bits.
+ */
+#define XCVR_PHY_PHY_FSK_CFG_AA_PLAYBACK(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_AA_PLAYBACK_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_AA_PLAYBACK_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_AA_OUT_SEL_MASK     (0x2U)
+#define XCVR_PHY_PHY_FSK_CFG_AA_OUT_SEL_SHIFT    (1U)
+/*! AA_OUT_SEL
+ *  0b0..When AA playback is enabled, play back desired AA.
+ *  0b1..When AA playback is enabled, play back received AA.
+ */
+#define XCVR_PHY_PHY_FSK_CFG_AA_OUT_SEL(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_AA_OUT_SEL_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_AA_OUT_SEL_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_FSK_BIT_INVERT_MASK (0x4U)
+#define XCVR_PHY_PHY_FSK_CFG_FSK_BIT_INVERT_SHIFT (2U)
+/*! FSK_BIT_INVERT
+ *  0b0..Normal demodulation.
+ *  0b1..Invert demodulated bits. This applies at the demodulator, so it affects both AA and the data portions of the packet.
+ */
+#define XCVR_PHY_PHY_FSK_CFG_FSK_BIT_INVERT(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_FSK_BIT_INVERT_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_FSK_BIT_INVERT_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_BSM_EN_BLE_MASK     (0x8U)
+#define XCVR_PHY_PHY_FSK_CFG_BSM_EN_BLE_SHIFT    (3U)
+#define XCVR_PHY_PHY_FSK_CFG_BSM_EN_BLE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_BSM_EN_BLE_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_BSM_EN_BLE_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_AA_CORR_GAIN_MASK   (0x3F0U)
+#define XCVR_PHY_PHY_FSK_CFG_AA_CORR_GAIN_SHIFT  (4U)
+#define XCVR_PHY_PHY_FSK_CFG_AA_CORR_GAIN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_AA_CORR_GAIN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_AA_CORR_GAIN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_CONF_EN_MASK    (0x400U)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_CONF_EN_SHIFT   (10U)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_CONF_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PDB_CONF_EN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PDB_CONF_EN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_CONF_EN_MASK    (0x800U)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_CONF_EN_SHIFT   (11U)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_CONF_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PDA_CONF_EN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PDA_CONF_EN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_DEMOD_TIMEOUT_MASK  (0x3F000U)
+#define XCVR_PHY_PHY_FSK_CFG_DEMOD_TIMEOUT_SHIFT (12U)
+#define XCVR_PHY_PHY_FSK_CFG_DEMOD_TIMEOUT(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_DEMOD_TIMEOUT_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_DEMOD_TIMEOUT_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_COMP_EN_MASK    (0x40000U)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_COMP_EN_SHIFT   (18U)
+#define XCVR_PHY_PHY_FSK_CFG_PDB_COMP_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PDB_COMP_EN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PDB_COMP_EN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_COMP_EN_MASK    (0x80000U)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_COMP_EN_SHIFT   (19U)
+#define XCVR_PHY_PHY_FSK_CFG_PDA_COMP_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PDA_COMP_EN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PDA_COMP_EN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_BLE_NTW_ADR_THR_MASK (0x700000U)
+#define XCVR_PHY_PHY_FSK_CFG_BLE_NTW_ADR_THR_SHIFT (20U)
+#define XCVR_PHY_PHY_FSK_CFG_BLE_NTW_ADR_THR(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_BLE_NTW_ADR_THR_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_BLE_NTW_ADR_THR_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PD_LAT_BASE_MASK    (0x7800000U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_LAT_BASE_SHIFT   (23U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_LAT_BASE(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PD_LAT_BASE_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PD_LAT_BASE_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_SW_EN_MASK  (0x8000000U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_SW_EN_SHIFT (27U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_SW_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PD_MODE_SW_EN_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PD_MODE_SW_EN_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_A_MASK      (0x30000000U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_A_SHIFT     (28U)
+/*! PD_MODE_A
+ *  0b10..PD mode 2, pattern based preamble detection.
+ *  0b11..PD mode 3, peak based preamble detection.
+ */
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_A(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PD_MODE_A_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PD_MODE_A_MASK)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_B_MASK      (0xC0000000U)
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_B_SHIFT     (30U)
+/*! PD_MODE_B
+ *  0b10..PD mode 2, pattern based preamble detection.
+ *  0b11..PD mode 3, peak based preamble detection.
+ */
+#define XCVR_PHY_PHY_FSK_CFG_PD_MODE_B(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_CFG_PD_MODE_B_SHIFT)) & XCVR_PHY_PHY_FSK_CFG_PD_MODE_B_MASK)
+/*! @} */
+
+/*! @name PHY_FSK_MISC - PHY Misc. Configuration */
+/*! @{ */
+#define XCVR_PHY_PHY_FSK_MISC_FORCE_AA_MASK      (0x1U)
+#define XCVR_PHY_PHY_FSK_MISC_FORCE_AA_SHIFT     (0U)
+#define XCVR_PHY_PHY_FSK_MISC_FORCE_AA(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_FORCE_AA_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_FORCE_AA_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_EL_EN_MASK         (0x2U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_EN_SHIFT        (1U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_EN(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_EL_EN_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_EL_EN_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_EL_WIN_SZ_MASK     (0xF0U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_WIN_SZ_SHIFT    (4U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_WIN_SZ(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_EL_WIN_SZ_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_EL_WIN_SZ_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_EL_INTERVAL_MASK   (0x3F00U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_INTERVAL_SHIFT  (8U)
+#define XCVR_PHY_PHY_FSK_MISC_EL_INTERVAL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_EL_INTERVAL_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_EL_INTERVAL_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_MSK_EN_MASK        (0x4000U)
+#define XCVR_PHY_PHY_FSK_MISC_MSK_EN_SHIFT       (14U)
+#define XCVR_PHY_PHY_FSK_MISC_MSK_EN(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_MSK_EN_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_MSK_EN_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_PD_THRESH_B_MASK   (0xFF0000U)
+#define XCVR_PHY_PHY_FSK_MISC_PD_THRESH_B_SHIFT  (16U)
+#define XCVR_PHY_PHY_FSK_MISC_PD_THRESH_B(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_PD_THRESH_B_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_PD_THRESH_B_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_FIFO_PRE_CHARGE_MASK (0xF000000U)
+#define XCVR_PHY_PHY_FSK_MISC_FIFO_PRE_CHARGE_SHIFT (24U)
+#define XCVR_PHY_PHY_FSK_MISC_FIFO_PRE_CHARGE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_FIFO_PRE_CHARGE_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_FIFO_PRE_CHARGE_MASK)
+#define XCVR_PHY_PHY_FSK_MISC_CLK_CTRL_MASK      (0xF0000000U)
+#define XCVR_PHY_PHY_FSK_MISC_CLK_CTRL_SHIFT     (28U)
+/*! CLK_CTRL
+ *  0b0001..Gate off PHY clock when phy_en is not asserted.
+ *  0b0010..Gate off preamble detect clock when pd_enable is not asserted (internal signal).
+ *  0b0100..Gate off AA synchronizer clock when synchronizer is not in use.
+ *  0b1000..Gate off demodulator clock when demodulator is not in use.
+ */
+#define XCVR_PHY_PHY_FSK_MISC_CLK_CTRL(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_PHY_FSK_MISC_CLK_CTRL_SHIFT)) & XCVR_PHY_PHY_FSK_MISC_CLK_CTRL_MASK)
+/*! @} */
+
+/*! @name NTW_ADR_BSM - PHY BSM Network Address */
+/*! @{ */
+#define XCVR_PHY_NTW_ADR_BSM_NTW_ADR_BSM_MASK    (0xFFFFFFFFU)
+#define XCVR_PHY_NTW_ADR_BSM_NTW_ADR_BSM_SHIFT   (0U)
+#define XCVR_PHY_NTW_ADR_BSM_NTW_ADR_BSM(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_NTW_ADR_BSM_NTW_ADR_BSM_SHIFT)) & XCVR_PHY_NTW_ADR_BSM_NTW_ADR_BSM_MASK)
+/*! @} */
+
+/*! @name FSK_STAT - PHY Status */
+/*! @{ */
+#define XCVR_PHY_FSK_STAT_PREAMBLE_FOUND_MASK    (0x1U)
+#define XCVR_PHY_FSK_STAT_PREAMBLE_FOUND_SHIFT   (0U)
+#define XCVR_PHY_FSK_STAT_PREAMBLE_FOUND(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_PREAMBLE_FOUND_SHIFT)) & XCVR_PHY_FSK_STAT_PREAMBLE_FOUND_MASK)
+#define XCVR_PHY_FSK_STAT_AA_MATCHED_MASK        (0x2U)
+#define XCVR_PHY_FSK_STAT_AA_MATCHED_SHIFT       (1U)
+#define XCVR_PHY_FSK_STAT_AA_MATCHED(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_AA_MATCHED_SHIFT)) & XCVR_PHY_FSK_STAT_AA_MATCHED_MASK)
+#define XCVR_PHY_FSK_STAT_AA_MATCH_MASK          (0xF0U)
+#define XCVR_PHY_FSK_STAT_AA_MATCH_SHIFT         (4U)
+#define XCVR_PHY_FSK_STAT_AA_MATCH(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_AA_MATCH_SHIFT)) & XCVR_PHY_FSK_STAT_AA_MATCH_MASK)
+#define XCVR_PHY_FSK_STAT_HAMM_DIST_MASK         (0xF00U)
+#define XCVR_PHY_FSK_STAT_HAMM_DIST_SHIFT        (8U)
+#define XCVR_PHY_FSK_STAT_HAMM_DIST(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_HAMM_DIST_SHIFT)) & XCVR_PHY_FSK_STAT_HAMM_DIST_MASK)
+#define XCVR_PHY_FSK_STAT_CFO_EST_MASK           (0xFF0000U)
+#define XCVR_PHY_FSK_STAT_CFO_EST_SHIFT          (16U)
+#define XCVR_PHY_FSK_STAT_CFO_EST(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_CFO_EST_SHIFT)) & XCVR_PHY_FSK_STAT_CFO_EST_MASK)
+#define XCVR_PHY_FSK_STAT_TOF_OFF_MASK           (0xF000000U)
+#define XCVR_PHY_FSK_STAT_TOF_OFF_SHIFT          (24U)
+#define XCVR_PHY_FSK_STAT_TOF_OFF(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_STAT_TOF_OFF_SHIFT)) & XCVR_PHY_FSK_STAT_TOF_OFF_MASK)
+/*! @} */
+
+/*! @name FSK_FAD_CTRL - PHY FAD control */
+/*! @{ */
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_EN_MASK        (0x1U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_EN_SHIFT       (0U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_EN(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_FAD_CTRL_FAD_EN_SHIFT)) & XCVR_PHY_FSK_FAD_CTRL_FAD_EN_MASK)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DUR_MASK  (0x7F0U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DUR_SHIFT (4U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DUR(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DUR_SHIFT)) & XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DUR_MASK)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DLY_MASK  (0x7F000U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DLY_SHIFT (12U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DLY(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DLY_SHIFT)) & XCVR_PHY_FSK_FAD_CTRL_FAD_PROC_DLY_MASK)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_THRESH_MASK    (0xFF00000U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_THRESH_SHIFT   (20U)
+#define XCVR_PHY_FSK_FAD_CTRL_FAD_THRESH(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_FAD_CTRL_FAD_THRESH_SHIFT)) & XCVR_PHY_FSK_FAD_CTRL_FAD_THRESH_MASK)
+#define XCVR_PHY_FSK_FAD_CTRL_PHY_DBG_CFG_MASK   (0xF0000000U)
+#define XCVR_PHY_FSK_FAD_CTRL_PHY_DBG_CFG_SHIFT  (28U)
+#define XCVR_PHY_FSK_FAD_CTRL_PHY_DBG_CFG(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PHY_FSK_FAD_CTRL_PHY_DBG_CFG_SHIFT)) & XCVR_PHY_FSK_FAD_CTRL_PHY_DBG_CFG_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_PHY_Register_Masks */
+
+
+/* XCVR_PHY - Peripheral instance base addresses */
+/** Peripheral XCVR_PHY base address */
+#define XCVR_PHY_BASE                            (0x41030400u)
+/** Peripheral XCVR_PHY base pointer */
+#define XCVR_PHY                                 ((XCVR_PHY_Type *)XCVR_PHY_BASE)
+/** Array initializer of XCVR_PHY peripheral base addresses */
+#define XCVR_PHY_BASE_ADDRS                      { XCVR_PHY_BASE }
+/** Array initializer of XCVR_PHY peripheral base pointers */
+#define XCVR_PHY_BASE_PTRS                       { XCVR_PHY }
+
+/*!
+ * @}
+ */ /* end of group XCVR_PHY_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PKT_RAM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PKT_RAM_Peripheral_Access_Layer XCVR_PKT_RAM Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_PKT_RAM - Register Layout Typedef */
+typedef struct {
+  __IO uint16_t PACKET_RAM[1152];                  /**< Shared Packet RAM for multiple Link Layer usage., array offset: 0x0, array step: 0x2 */
+} XCVR_PKT_RAM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PKT_RAM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PKT_RAM_Register_Masks XCVR_PKT_RAM Register Masks
+ * @{
+ */
+
+/*! @name PACKET_RAM - Shared Packet RAM for multiple Link Layer usage. */
+/*! @{ */
+#define XCVR_PKT_RAM_PACKET_RAM_LSBYTE_MASK      (0xFFU)
+#define XCVR_PKT_RAM_PACKET_RAM_LSBYTE_SHIFT     (0U)
+#define XCVR_PKT_RAM_PACKET_RAM_LSBYTE(x)        (((uint16_t)(((uint16_t)(x)) << XCVR_PKT_RAM_PACKET_RAM_LSBYTE_SHIFT)) & XCVR_PKT_RAM_PACKET_RAM_LSBYTE_MASK)
+#define XCVR_PKT_RAM_PACKET_RAM_MSBYTE_MASK      (0xFF00U)
+#define XCVR_PKT_RAM_PACKET_RAM_MSBYTE_SHIFT     (8U)
+#define XCVR_PKT_RAM_PACKET_RAM_MSBYTE(x)        (((uint16_t)(((uint16_t)(x)) << XCVR_PKT_RAM_PACKET_RAM_MSBYTE_SHIFT)) & XCVR_PKT_RAM_PACKET_RAM_MSBYTE_MASK)
+/*! @} */
+
+/* The count of XCVR_PKT_RAM_PACKET_RAM */
+#define XCVR_PKT_RAM_PACKET_RAM_COUNT            (1152U)
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_PKT_RAM_Register_Masks */
+
+
+/* XCVR_PKT_RAM - Peripheral instance base addresses */
+/** Peripheral XCVR_PKT_RAM base address */
+#define XCVR_PKT_RAM_BASE                        (0x41030700u)
+/** Peripheral XCVR_PKT_RAM base pointer */
+#define XCVR_PKT_RAM                             ((XCVR_PKT_RAM_Type *)XCVR_PKT_RAM_BASE)
+/** Array initializer of XCVR_PKT_RAM peripheral base addresses */
+#define XCVR_PKT_RAM_BASE_ADDRS                  { XCVR_PKT_RAM_BASE }
+/** Array initializer of XCVR_PKT_RAM peripheral base pointers */
+#define XCVR_PKT_RAM_BASE_PTRS                   { XCVR_PKT_RAM }
+
+/*!
+ * @}
+ */ /* end of group XCVR_PKT_RAM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PLL_DIG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PLL_DIG_Peripheral_Access_Layer XCVR_PLL_DIG Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_PLL_DIG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t HPM_BUMP;                          /**< PLL HPM Analog Bump Control, offset: 0x0 */
+  __IO uint32_t MOD_CTRL;                          /**< PLL Modulation Control, offset: 0x4 */
+  __IO uint32_t CHAN_MAP;                          /**< PLL Channel Mapping, offset: 0x8 */
+  __IO uint32_t LOCK_DETECT;                       /**< PLL Lock Detect Control, offset: 0xC */
+  __IO uint32_t HPM_CTRL;                          /**< PLL High Port Modulator Control, offset: 0x10 */
+       uint8_t RESERVED_0[12];
+  __IO uint32_t HPM_SDM_RES;                       /**< PLL High Port Sigma Delta Results, offset: 0x20 */
+  __IO uint32_t LPM_CTRL;                          /**< PLL Low Port Modulator Control, offset: 0x24 */
+  __IO uint32_t LPM_SDM_CTRL1;                     /**< PLL Low Port Sigma Delta Control 1, offset: 0x28 */
+  __IO uint32_t LPM_SDM_CTRL2;                     /**< PLL Low Port Sigma Delta Control 2, offset: 0x2C */
+  __IO uint32_t LPM_SDM_CTRL3;                     /**< PLL Low Port Sigma Delta Control 3, offset: 0x30 */
+  __I  uint32_t LPM_SDM_RES1;                      /**< PLL Low Port Sigma Delta Result 1, offset: 0x34 */
+  __I  uint32_t LPM_SDM_RES2;                      /**< PLL Low Port Sigma Delta Result 2, offset: 0x38 */
+  __IO uint32_t DELAY_MATCH;                       /**< PLL Delay Matching, offset: 0x3C */
+  __IO uint32_t CTUNE_CTRL;                        /**< PLL Coarse Tune Control, offset: 0x40 */
+       uint8_t RESERVED_1[16];
+  __I  uint32_t CTUNE_RES;                         /**< PLL Coarse Tune Results, offset: 0x54 */
+} XCVR_PLL_DIG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_PLL_DIG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_PLL_DIG_Register_Masks XCVR_PLL_DIG Register Masks
+ * @{
+ */
+
+/*! @name HPM_BUMP - PLL HPM Analog Bump Control */
+/*! @{ */
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX_MASK    (0x7U)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX_SHIFT   (0U)
+/*! HPM_VCM_TX - rfctrl_tx_dac_bump_vcm[2:0] during Transmission
+ *  0b000..432 mV
+ *  0b001..328 mV
+ *  0b010..456 mV
+ *  0b011..473 mV
+ *  0b100..488 mV
+ *  0b101..408 mV
+ *  0b110..392 mV
+ *  0b111..376 mV
+ */
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX_SHIFT)) & XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_TX_MASK)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL_MASK   (0x70U)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL_SHIFT  (4U)
+/*! HPM_VCM_CAL - rfctrl_tx_dac_bump_vcm[2:0] during Calibration
+ *  0b000..432 mV
+ *  0b001..328 mV
+ *  0b010..456 mV
+ *  0b011..473 mV
+ *  0b100..488 mV
+ *  0b101..408 mV
+ *  0b110..392 mV
+ *  0b111..376 mV
+ */
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL_SHIFT)) & XCVR_PLL_DIG_HPM_BUMP_HPM_VCM_CAL_MASK)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX_MASK (0x300U)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX_SHIFT (8U)
+/*! HPM_FDB_RES_TX - rfctrl_tx_dac_bump_fdb_res[1:0] during Transmission
+ *  0b00..29 kohms
+ *  0b01..58 kohms(gain of 2)
+ *  0b10..13 kohms
+ *  0b11..23.7 kohms
+ */
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX_SHIFT)) & XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_TX_MASK)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL_MASK (0x3000U)
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL_SHIFT (12U)
+/*! HPM_FDB_RES_CAL - rfctrl_tx_dac_bump_fdb_res[1:0] during Calibration
+ *  0b00..29 kohms
+ *  0b01..58 kohms(gain of 2)
+ *  0b10..13 kohms
+ *  0b11..23.7 kohms
+ */
+#define XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL_SHIFT)) & XCVR_PLL_DIG_HPM_BUMP_HPM_FDB_RES_CAL_MASK)
+/*! @} */
+
+/*! @name MOD_CTRL - PLL Modulation Control */
+/*! @{ */
+#define XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL_MASK (0x1FFFU)
+#define XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL_SHIFT (0U)
+#define XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_MODULATION_WORD_MANUAL_MASK)
+#define XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE_MASK   (0x8000U)
+#define XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE_SHIFT  (15U)
+#define XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_MOD_DISABLE_MASK)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL_MASK (0xFF0000U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL_SHIFT (16U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_MANUAL_MASK)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE_MASK (0x8000000U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE_SHIFT (27U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_HPM_MOD_DISABLE_MASK)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL_MASK (0x30000000U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL_SHIFT (28U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_MANUAL_MASK)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE_MASK (0x80000000U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE_SHIFT (31U)
+#define XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE_SHIFT)) & XCVR_PLL_DIG_MOD_CTRL_HPM_SDM_OUT_DISABLE_MASK)
+/*! @} */
+
+/*! @name CHAN_MAP - PLL Channel Mapping */
+/*! @{ */
+#define XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM_MASK   (0x7FU)
+#define XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM_SHIFT  (0U)
+#define XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_CHANNEL_NUM_MASK)
+#define XCVR_PLL_DIG_CHAN_MAP_BOC_MASK           (0x100U)
+#define XCVR_PLL_DIG_CHAN_MAP_BOC_SHIFT          (8U)
+/*! BOC - BLE Channel Number Override
+ *  0b0..BLE channel number comes from the BLE Link Layer
+ *  0b1..BLE channel number comes from the CHANNEL_NUM register (BLE protocols 0 and 2)
+ */
+#define XCVR_PLL_DIG_CHAN_MAP_BOC(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_BOC_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_BOC_MASK)
+#define XCVR_PLL_DIG_CHAN_MAP_BMR_MASK           (0x200U)
+#define XCVR_PLL_DIG_CHAN_MAP_BMR_SHIFT          (9U)
+/*! BMR - BLE MBAN Channel Remap
+ *  0b0..BLE channel 39 is mapped to BLE channel 39, 2.480 GHz
+ *  0b1..BLE channel 39 is mapped to MBAN channel 39, 2.399 GHz
+ */
+#define XCVR_PLL_DIG_CHAN_MAP_BMR(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_BMR_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_BMR_MASK)
+#define XCVR_PLL_DIG_CHAN_MAP_ZOC_MASK           (0x400U)
+#define XCVR_PLL_DIG_CHAN_MAP_ZOC_SHIFT          (10U)
+/*! ZOC - 802.15.4 Channel Number Override
+ *  0b0..802.15.4 channel number comes from the 802.15.4 Link Layer.
+ *  0b1..802.15.4 channel number comes from the CHANNEL_NUM register (802.15.4 protocols 4 and 5)
+ */
+#define XCVR_PLL_DIG_CHAN_MAP_ZOC(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_ZOC_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_ZOC_MASK)
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_MASK (0x70000U)
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_SHIFT (16U)
+/*! HOP_TBL_CFG_OVRD - Hop Table Configuration Override
+ *  0b010..DFT_PATTERN[15:7] is signed offset to DFT_PATTERN[6:0] mapped channel number
+ *  0b011..DFT_PATTERN[15:1] is signed Numerator, DFT_PATTERN[0] is integer selection
+ */
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_MASK)
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_EN_MASK (0x80000U)
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_EN_SHIFT (19U)
+#define XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_EN_SHIFT)) & XCVR_PLL_DIG_CHAN_MAP_HOP_TBL_CFG_OVRD_EN_MASK)
+/*! @} */
+
+/*! @name LOCK_DETECT - PLL Lock Detect Control */
+/*! @{ */
+#define XCVR_PLL_DIG_LOCK_DETECT_CT_FAIL_MASK    (0x1U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CT_FAIL_SHIFT   (0U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CT_FAIL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_CT_FAIL_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_CT_FAIL_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTFF_MASK       (0x2U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTFF_SHIFT      (1U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTFF(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_CTFF_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_CTFF_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_CS_FAIL_MASK    (0x4U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CS_FAIL_SHIFT   (2U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CS_FAIL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_CS_FAIL_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_CS_FAIL_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_CSFF_MASK       (0x8U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CSFF_SHIFT      (3U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CSFF(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_CSFF_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_CSFF_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FT_FAIL_MASK    (0x10U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FT_FAIL_SHIFT   (4U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FT_FAIL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FT_FAIL_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FT_FAIL_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTFF_MASK       (0x20U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTFF_SHIFT      (5U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTFF(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FTFF_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FTFF_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_TAFF_MASK       (0x80U)
+#define XCVR_PLL_DIG_LOCK_DETECT_TAFF_SHIFT      (7U)
+#define XCVR_PLL_DIG_LOCK_DETECT_TAFF(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_TAFF_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_TAFF_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV_MASK (0xF00U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV_SHIFT (8U)
+#define XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_CTUNE_LDF_LEV_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH_MASK (0x3F000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH_SHIFT (12U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FTF_RX_THRSH_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_RX_MASK     (0x80000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_RX_SHIFT    (19U)
+/*! FTW_RX - RX Frequency Target Window time select
+ *  0b0..4 us
+ *  0b1..8 us
+ */
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_RX(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FTW_RX_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FTW_RX_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH_MASK (0x3F00000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH_SHIFT (20U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FTF_TX_THRSH_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_TX_MASK     (0x8000000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_TX_SHIFT    (27U)
+/*! FTW_TX - TX Frequency Target Window time select
+ *  0b0..4 us
+ *  0b1..8 us
+ */
+#define XCVR_PLL_DIG_LOCK_DETECT_FTW_TX(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FTW_TX_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FTW_TX_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO_MASK (0x10000000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO_SHIFT (28U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_GO_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_FINISHED_MASK (0x20000000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_FINISHED_SHIFT (29U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_FINISHED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_FINISHED_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_FINISHED_MASK)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME_MASK (0xC0000000U)
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME_SHIFT (30U)
+/*! FREQ_COUNT_TIME - Frequency Meter Count Time
+ *  0b00..800 us
+ *  0b01..25 us
+ *  0b10..50 us
+ *  0b11..100 us
+ */
+#define XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME_SHIFT)) & XCVR_PLL_DIG_LOCK_DETECT_FREQ_COUNT_TIME_MASK)
+/*! @} */
+
+/*! @name HPM_CTRL - PLL High Port Modulator Control */
+/*! @{ */
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL_MASK (0x3FFU)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL_SHIFT (0U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_MANUAL_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPFF_MASK          (0x2000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPFF_SHIFT         (13U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPFF(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPFF_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPFF_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT_MASK (0x4000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT_SHIFT (14U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_OUT_INVERT_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE_MASK (0x8000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE_SHIFT (15U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_SDM_IN_DISABLE_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE_MASK (0x70000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE_SHIFT (16U)
+/*! HPM_LFSR_SIZE - HPM LFSR Length
+ *  0b000..LFSR 9, tap mask 100010000
+ *  0b001..LFSR 10, tap mask 1001000000
+ *  0b010..LFSR 11, tap mask 11101000000
+ *  0b011..LFSR 13, tap mask 1101100000000
+ *  0b100..LFSR 15, tap mask 111010000000000
+ *  0b101..LFSR 17, tap mask 11110000000000000
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_LFSR_SIZE_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL_MASK   (0x100000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL_SHIFT  (20U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_SCL_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN_MASK    (0x800000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN_SHIFT   (23U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_DTH_EN_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE_MASK (0x3000000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE_SHIFT (24U)
+/*! HPM_INTEGER_SCALE - High Port Modulation Integer Scale
+ *  0b00..No Scaling
+ *  0b01..Multiply by 2
+ *  0b10..Divide by 2
+ *  0b11..Reserved
+ */
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_SCALE_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT_MASK (0x8000000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT_SHIFT (27U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_INTEGER_INVERT_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT_MASK (0x10000000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT_SHIFT (28U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_CAL_INVERT_MASK)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT_MASK (0x80000000U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT_SHIFT (31U)
+#define XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT_SHIFT)) & XCVR_PLL_DIG_HPM_CTRL_HPM_MOD_IN_INVERT_MASK)
+/*! @} */
+
+/*! @name HPM_SDM_RES - PLL High Port Sigma Delta Results */
+/*! @{ */
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_NUM_SELECTED_MASK (0x3FFU)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_NUM_SELECTED_SHIFT (0U)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_NUM_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_SDM_RES_HPM_NUM_SELECTED_SHIFT)) & XCVR_PLL_DIG_HPM_SDM_RES_HPM_NUM_SELECTED_MASK)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM_MASK  (0x3FF0000U)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM_SHIFT (16U)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM_SHIFT)) & XCVR_PLL_DIG_HPM_SDM_RES_HPM_DENOM_MASK)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST_MASK (0xF0000000U)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST_SHIFT (28U)
+#define XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST_SHIFT)) & XCVR_PLL_DIG_HPM_SDM_RES_HPM_COUNT_ADJUST_MASK)
+/*! @} */
+
+/*! @name LPM_CTRL - PLL Low Port Modulator Control */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL_MASK (0x1FU)
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_PLL_LD_MANUAL_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE_MASK (0x800U)
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE_SHIFT (11U)
+#define XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_PLL_LD_DISABLE_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPFF_MASK          (0x2000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPFF_SHIFT         (13U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPFF(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPFF_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPFF_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV_MASK   (0x4000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV_SHIFT  (14U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_INV_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE_MASK   (0x8000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE_SHIFT  (15U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_DISABLE_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL_MASK   (0xF0000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL_SHIFT  (16U)
+/*! LPM_DTH_SCL - LPM Dither Scale
+ *  0b0000..Reserved
+ *  0b0001..Reserved
+ *  0b0010..Reserved
+ *  0b0011..Reserved
+ *  0b0100..Reserved
+ *  0b0101..-128 to 96
+ *  0b0110..-256 to 192
+ *  0b0111..-512 to 384
+ *  0b1000..-1024 to 768, this is the intended setting for normal operation.
+ *  0b1001..-2048 to 1536
+ *  0b1010..-4096 to 3072
+ *  0b1011..-8192 to 6144
+ *  0b1100..Reserved
+ *  0b1101..Reserved
+ *  0b1110..Reserved
+ *  0b1111..Reserved
+ */
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_DTH_SCL_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL_MASK    (0x400000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL_SHIFT   (22U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_D_CTRL_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD_MASK    (0x800000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD_SHIFT   (23U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_D_OVRD_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE_MASK     (0xF000000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE_SHIFT    (24U)
+/*! LPM_SCALE - LPM Scale Factor
+ *  0b0000..No Scaling
+ *  0b0001..Multiply by 2
+ *  0b0010..Multiply by 4
+ *  0b0011..Multiply by 8
+ *  0b0100..Multiply by 16
+ *  0b0101..Multiply by 32
+ *  0b0110..Multiply by 64
+ *  0b0111..Multiply by 128
+ *  0b1000..Multiply by 256, this is the intended setting for normal operation.
+ *  0b1001..Multiply by 512
+ *  0b1010..Multiply by 1024
+ *  0b1011..Multiply by 2048
+ *  0b1100..Reserved
+ *  0b1101..Reserved
+ *  0b1110..Reserved
+ *  0b1111..Reserved
+ */
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_SCALE_MASK)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG_MASK (0x80000000U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG_SHIFT (31U)
+#define XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG_SHIFT)) & XCVR_PLL_DIG_LPM_CTRL_LPM_SDM_USE_NEG_MASK)
+/*! @} */
+
+/*! @name LPM_SDM_CTRL1 - PLL Low Port Sigma Delta Control 1 */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SELECTED_MASK (0x7FU)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SELECTED_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SELECTED_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SELECTED_MASK)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS_MASK (0x7F00U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS_SHIFT (8U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL1_HPM_ARRAY_BIAS_MASK)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_MASK (0x7F0000U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SHIFT (16U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL1_LPM_INTG_MASK)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE_MASK (0x80000000U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE_SHIFT (31U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL1_SDM_MAP_DISABLE_MASK)
+/*! @} */
+
+/*! @name LPM_SDM_CTRL2 - PLL Low Port Sigma Delta Control 2 */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_SDM_CTRL2_LPM_NUM_MASK  (0xFFFFFFFU)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL2_LPM_NUM_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL2_LPM_NUM(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL2_LPM_NUM_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL2_LPM_NUM_MASK)
+/*! @} */
+
+/*! @name LPM_SDM_CTRL3 - PLL Low Port Sigma Delta Control 3 */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_SDM_CTRL3_LPM_DENOM_MASK (0xFFFFFFFU)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL3_LPM_DENOM_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_SDM_CTRL3_LPM_DENOM(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_CTRL3_LPM_DENOM_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_CTRL3_LPM_DENOM_MASK)
+/*! @} */
+
+/*! @name LPM_SDM_RES1 - PLL Low Port Sigma Delta Result 1 */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_SDM_RES1_LPM_NUM_SELECTED_MASK (0xFFFFFFFU)
+#define XCVR_PLL_DIG_LPM_SDM_RES1_LPM_NUM_SELECTED_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_SDM_RES1_LPM_NUM_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_RES1_LPM_NUM_SELECTED_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_RES1_LPM_NUM_SELECTED_MASK)
+/*! @} */
+
+/*! @name LPM_SDM_RES2 - PLL Low Port Sigma Delta Result 2 */
+/*! @{ */
+#define XCVR_PLL_DIG_LPM_SDM_RES2_LPM_DENOM_SELECTED_MASK (0xFFFFFFFU)
+#define XCVR_PLL_DIG_LPM_SDM_RES2_LPM_DENOM_SELECTED_SHIFT (0U)
+#define XCVR_PLL_DIG_LPM_SDM_RES2_LPM_DENOM_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_LPM_SDM_RES2_LPM_DENOM_SELECTED_SHIFT)) & XCVR_PLL_DIG_LPM_SDM_RES2_LPM_DENOM_SELECTED_MASK)
+/*! @} */
+
+/*! @name DELAY_MATCH - PLL Delay Matching */
+/*! @{ */
+#define XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY_MASK (0xFU)
+#define XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY_SHIFT (0U)
+#define XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY_SHIFT)) & XCVR_PLL_DIG_DELAY_MATCH_LPM_SDM_DELAY_MASK)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY_MASK (0xF00U)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY_SHIFT (8U)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY_SHIFT)) & XCVR_PLL_DIG_DELAY_MATCH_HPM_SDM_DELAY_MASK)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY_MASK (0xF0000U)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY_SHIFT (16U)
+#define XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY_SHIFT)) & XCVR_PLL_DIG_DELAY_MATCH_HPM_INTEGER_DELAY_MASK)
+/*! @} */
+
+/*! @name CTUNE_CTRL - PLL Coarse Tune Control */
+/*! @{ */
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL_MASK (0xFFFU)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL_SHIFT (0U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL_SHIFT)) & XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_MANUAL_MASK)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE_MASK (0x8000U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE_SHIFT (15U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE_SHIFT)) & XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_TARGET_DISABLE_MASK)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST_MASK (0xF0000U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST_SHIFT (16U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST_SHIFT)) & XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_ADJUST_MASK)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL_MASK (0x7F000000U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL_SHIFT (24U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL_SHIFT)) & XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_MANUAL_MASK)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE_MASK (0x80000000U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE_SHIFT (31U)
+#define XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE_SHIFT)) & XCVR_PLL_DIG_CTUNE_CTRL_CTUNE_DISABLE_MASK)
+/*! @} */
+
+/*! @name CTUNE_RES - PLL Coarse Tune Results */
+/*! @{ */
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_SELECTED_MASK (0x7FU)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_SELECTED_SHIFT (0U)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_RES_CTUNE_SELECTED_SHIFT)) & XCVR_PLL_DIG_CTUNE_RES_CTUNE_SELECTED_MASK)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_BEST_DIFF_MASK (0xFF00U)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_BEST_DIFF_SHIFT (8U)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_BEST_DIFF(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_RES_CTUNE_BEST_DIFF_SHIFT)) & XCVR_PLL_DIG_CTUNE_RES_CTUNE_BEST_DIFF_MASK)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_FREQ_SELECTED_MASK (0xFFF0000U)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_FREQ_SELECTED_SHIFT (16U)
+#define XCVR_PLL_DIG_CTUNE_RES_CTUNE_FREQ_SELECTED(x) (((uint32_t)(((uint32_t)(x)) << XCVR_PLL_DIG_CTUNE_RES_CTUNE_FREQ_SELECTED_SHIFT)) & XCVR_PLL_DIG_CTUNE_RES_CTUNE_FREQ_SELECTED_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_PLL_DIG_Register_Masks */
+
+
+/* XCVR_PLL_DIG - Peripheral instance base addresses */
+/** Peripheral XCVR_PLL_DIG base address */
+#define XCVR_PLL_DIG_BASE                        (0x41030224u)
+/** Peripheral XCVR_PLL_DIG base pointer */
+#define XCVR_PLL_DIG                             ((XCVR_PLL_DIG_Type *)XCVR_PLL_DIG_BASE)
+/** Array initializer of XCVR_PLL_DIG peripheral base addresses */
+#define XCVR_PLL_DIG_BASE_ADDRS                  { XCVR_PLL_DIG_BASE }
+/** Array initializer of XCVR_PLL_DIG peripheral base pointers */
+#define XCVR_PLL_DIG_BASE_PTRS                   { XCVR_PLL_DIG }
+
+/*!
+ * @}
+ */ /* end of group XCVR_PLL_DIG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_RX_DIG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_RX_DIG_Peripheral_Access_Layer XCVR_RX_DIG Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_RX_DIG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t RX_DIG_CTRL;                       /**< RX Digital Control, offset: 0x0 */
+  __IO uint32_t AGC_CTRL_0;                        /**< AGC Control 0, offset: 0x4 */
+  __IO uint32_t AGC_CTRL_1;                        /**< AGC Control 1, offset: 0x8 */
+  __IO uint32_t AGC_CTRL_2;                        /**< AGC Control 2, offset: 0xC */
+  __IO uint32_t AGC_CTRL_3;                        /**< AGC Control 3, offset: 0x10 */
+  __I  uint32_t AGC_STAT;                          /**< AGC Status, offset: 0x14 */
+  __IO uint32_t RSSI_CTRL_0;                       /**< RSSI Control 0, offset: 0x18 */
+  __IO uint32_t RSSI_CTRL_1;                       /**< RSSI Control 1, offset: 0x1C */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t DCOC_CTRL_0;                       /**< DCOC Control 0, offset: 0x24 */
+  __IO uint32_t DCOC_CTRL_1;                       /**< DCOC Control 1, offset: 0x28 */
+  __IO uint32_t DCOC_DAC_INIT;                     /**< DCOC DAC Initialization, offset: 0x2C */
+  __IO uint32_t DCOC_DIG_MAN;                      /**< DCOC Digital Correction Manual Override, offset: 0x30 */
+  __IO uint32_t DCOC_CAL_GAIN;                     /**< DCOC Calibration Gain, offset: 0x34 */
+  __I  uint32_t DCOC_STAT;                         /**< DCOC Status, offset: 0x38 */
+  __I  uint32_t DCOC_DC_EST;                       /**< DCOC DC Estimate, offset: 0x3C */
+  __IO uint32_t DCOC_CAL_RCP;                      /**< DCOC Calibration Reciprocals, offset: 0x40 */
+  __IO uint32_t DCOC_CTRL_2;                       /**< DCOC Control 2, offset: 0x44 */
+  __IO uint32_t IQMC_CTRL;                         /**< IQMC Control, offset: 0x48 */
+  __IO uint32_t IQMC_CAL;                          /**< IQMC Calibration, offset: 0x4C */
+  __IO uint32_t LNA_GAIN_VAL_3_0;                  /**< LNA_GAIN Step Values 3..0, offset: 0x50 */
+  __IO uint32_t LNA_GAIN_VAL_7_4;                  /**< LNA_GAIN Step Values 7..4, offset: 0x54 */
+  __IO uint32_t LNA_GAIN_VAL_8;                    /**< LNA_GAIN Step Values 8, offset: 0x58 */
+  __IO uint32_t BBA_RES_TUNE_VAL_7_0;              /**< BBA Resistor Tune Values 7..0, offset: 0x5C */
+  __IO uint32_t BBA_RES_TUNE_VAL_10_8;             /**< BBA Resistor Tune Values 10..8, offset: 0x60 */
+  __IO uint32_t LNA_GAIN_LIN_VAL_2_0;              /**< LNA Linear Gain Values 2..0, offset: 0x64 */
+  __IO uint32_t LNA_GAIN_LIN_VAL_5_3;              /**< LNA Linear Gain Values 5..3, offset: 0x68 */
+  __IO uint32_t LNA_GAIN_LIN_VAL_8_6;              /**< LNA Linear Gain Values 8..6, offset: 0x6C */
+  __IO uint32_t LNA_GAIN_LIN_VAL_9;                /**< LNA Linear Gain Values 9, offset: 0x70 */
+  __IO uint32_t BBA_RES_TUNE_LIN_VAL_3_0;          /**< BBA Resistor Tune Values 3..0, offset: 0x74 */
+  __IO uint32_t BBA_RES_TUNE_LIN_VAL_7_4;          /**< BBA Resistor Tune Values 7..4, offset: 0x78 */
+  __IO uint32_t BBA_RES_TUNE_LIN_VAL_10_8;         /**< BBA Resistor Tune Values 10..8, offset: 0x7C */
+  __IO uint32_t AGC_GAIN_TBL_03_00;                /**< AGC Gain Tables Step 03..00, offset: 0x80 */
+  __IO uint32_t AGC_GAIN_TBL_07_04;                /**< AGC Gain Tables Step 07..04, offset: 0x84 */
+  __IO uint32_t AGC_GAIN_TBL_11_08;                /**< AGC Gain Tables Step 11..08, offset: 0x88 */
+  __IO uint32_t AGC_GAIN_TBL_15_12;                /**< AGC Gain Tables Step 15..12, offset: 0x8C */
+  __IO uint32_t AGC_GAIN_TBL_19_16;                /**< AGC Gain Tables Step 19..16, offset: 0x90 */
+  __IO uint32_t AGC_GAIN_TBL_23_20;                /**< AGC Gain Tables Step 23..20, offset: 0x94 */
+  __IO uint32_t AGC_GAIN_TBL_26_24;                /**< AGC Gain Tables Step 26..24, offset: 0x98 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t DCOC_OFFSET[27];                   /**< DCOC Offset, array offset: 0xA0, array step: 0x4 */
+  __IO uint32_t DCOC_BBA_STEP;                     /**< DCOC BBA DAC Step, offset: 0x10C */
+  __IO uint32_t DCOC_TZA_STEP_0;                   /**< DCOC TZA DAC Step 0, offset: 0x110 */
+  __IO uint32_t DCOC_TZA_STEP_1;                   /**< DCOC TZA DAC Step 1, offset: 0x114 */
+  __IO uint32_t DCOC_TZA_STEP_2;                   /**< DCOC TZA DAC Step 2, offset: 0x118 */
+  __IO uint32_t DCOC_TZA_STEP_3;                   /**< DCOC TZA DAC Step 3, offset: 0x11C */
+  __IO uint32_t DCOC_TZA_STEP_4;                   /**< DCOC TZA DAC Step 4, offset: 0x120 */
+  __IO uint32_t DCOC_TZA_STEP_5;                   /**< DCOC TZA DAC Step 5, offset: 0x124 */
+  __IO uint32_t DCOC_TZA_STEP_6;                   /**< DCOC TZA DAC Step 6, offset: 0x128 */
+  __IO uint32_t DCOC_TZA_STEP_7;                   /**< DCOC TZA DAC Step 7, offset: 0x12C */
+  __IO uint32_t DCOC_TZA_STEP_8;                   /**< DCOC TZA DAC Step 5, offset: 0x130 */
+  __IO uint32_t DCOC_TZA_STEP_9;                   /**< DCOC TZA DAC Step 9, offset: 0x134 */
+  __IO uint32_t DCOC_TZA_STEP_10;                  /**< DCOC TZA DAC Step 10, offset: 0x138 */
+       uint8_t RESERVED_2[36];
+  __IO uint32_t DCOC_CAL_FAIL_TH;                  /**< DCOC Calibration Fail Thresholds, offset: 0x160 */
+  __IO uint32_t DCOC_CAL_PASS_TH;                  /**< DCOC Calibration Pass Thresholds, offset: 0x164 */
+  __I  uint32_t DCOC_CAL_ALPHA;                    /**< DCOC Calibration Alpha, offset: 0x168 */
+  __I  uint32_t DCOC_CAL_BETA_Q;                   /**< DCOC Calibration Beta Q, offset: 0x16C */
+  __I  uint32_t DCOC_CAL_BETA_I;                   /**< DCOC Calibration Beta I, offset: 0x170 */
+  __I  uint32_t DCOC_CAL_GAMMA;                    /**< DCOC Calibration Gamma, offset: 0x174 */
+  __IO uint32_t DCOC_CAL_IIR;                      /**< DCOC Calibration IIR, offset: 0x178 */
+       uint8_t RESERVED_3[4];
+  __I  uint32_t DCOC_CAL[3];                       /**< DCOC Calibration Result, array offset: 0x180, array step: 0x4 */
+       uint8_t RESERVED_4[4];
+  __IO uint32_t CCA_ED_LQI_CTRL_0;                 /**< RX_DIG CCA ED LQI Control Register 0, offset: 0x190 */
+  __IO uint32_t CCA_ED_LQI_CTRL_1;                 /**< RX_DIG CCA ED LQI Control Register 1, offset: 0x194 */
+  __I  uint32_t CCA_ED_LQI_STAT_0;                 /**< RX_DIG CCA ED LQI Status Register 0, offset: 0x198 */
+       uint8_t RESERVED_5[4];
+  __IO uint32_t RX_CHF_COEF_0;                     /**< Receive Channel Filter Coefficient 0, offset: 0x1A0 */
+  __IO uint32_t RX_CHF_COEF_1;                     /**< Receive Channel Filter Coefficient 1, offset: 0x1A4 */
+  __IO uint32_t RX_CHF_COEF_2;                     /**< Receive Channel Filter Coefficient 2, offset: 0x1A8 */
+  __IO uint32_t RX_CHF_COEF_3;                     /**< Receive Channel Filter Coefficient 3, offset: 0x1AC */
+  __IO uint32_t RX_CHF_COEF_4;                     /**< Receive Channel Filter Coefficient 4, offset: 0x1B0 */
+  __IO uint32_t RX_CHF_COEF_5;                     /**< Receive Channel Filter Coefficient 5, offset: 0x1B4 */
+  __IO uint32_t RX_CHF_COEF_6;                     /**< Receive Channel Filter Coefficient 6, offset: 0x1B8 */
+  __IO uint32_t RX_CHF_COEF_7;                     /**< Receive Channel Filter Coefficient 7, offset: 0x1BC */
+  __IO uint32_t RX_CHF_COEF_8;                     /**< Receive Channel Filter Coefficient 8, offset: 0x1C0 */
+  __IO uint32_t RX_CHF_COEF_9;                     /**< Receive Channel Filter Coefficient 9, offset: 0x1C4 */
+  __IO uint32_t RX_CHF_COEF_10;                    /**< Receive Channel Filter Coefficient 10, offset: 0x1C8 */
+  __IO uint32_t RX_CHF_COEF_11;                    /**< Receive Channel Filter Coefficient 11, offset: 0x1CC */
+  __IO uint32_t AGC_MAN_AGC_IDX;                   /**< AGC Manual AGC Index, offset: 0x1D0 */
+  __IO uint32_t DC_RESID_CTRL;                     /**< DC Residual Control, offset: 0x1D4 */
+  __I  uint32_t DC_RESID_EST;                      /**< DC Residual Estimate, offset: 0x1D8 */
+  __IO uint32_t RX_RCCAL_CTRL0;                    /**< RX RC Calibration Control0, offset: 0x1DC */
+  __IO uint32_t RX_RCCAL_CTRL1;                    /**< RX RC Calibration Control1, offset: 0x1E0 */
+  __I  uint32_t RX_RCCAL_STAT;                     /**< RX RC Calibration Status, offset: 0x1E4 */
+  __IO uint32_t AUXPLL_FCAL_CTRL;                  /**< Aux PLL Frequency Calibration Control, offset: 0x1E8 */
+  __I  uint32_t AUXPLL_FCAL_CNT6;                  /**< Aux PLL Frequency Calibration Count 6, offset: 0x1EC */
+  __I  uint32_t AUXPLL_FCAL_CNT5_4;                /**< Aux PLL Frequency Calibration Count 5 and 4, offset: 0x1F0 */
+  __I  uint32_t AUXPLL_FCAL_CNT3_2;                /**< Aux PLL Frequency Calibration Count 3 and 2, offset: 0x1F4 */
+  __I  uint32_t AUXPLL_FCAL_CNT1_0;                /**< Aux PLL Frequency Calibration Count 1 and 0, offset: 0x1F8 */
+} XCVR_RX_DIG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_RX_DIG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_RX_DIG_Register_Masks XCVR_RX_DIG Register Masks
+ * @{
+ */
+
+/*! @name RX_DIG_CTRL - RX Digital Control */
+/*! @{ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE_MASK (0x1U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE_SHIFT (0U)
+/*! RX_ADC_NEGEDGE - Receive ADC Negative Edge Selection
+ *  0b0..Register ADC data on positive edge of clock
+ *  0b1..Register ADC data on negative edge of clock
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_NEGEDGE_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS_MASK (0x2U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS_SHIFT (1U)
+/*! RX_CH_FILT_BYPASS - Receive Channel Filter Bypass
+ *  0b0..Channel filter is enabled.
+ *  0b1..Disable and bypass channel filter.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_BYPASS_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL_MASK  (0x8U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL_SHIFT (3U)
+/*! RX_ADC_POL - Receive ADC Polarity
+ *  0b0..ADC output of 1'b0 maps to -1, 1'b1 maps to +1 (default)
+ *  0b1..ADC output of 1'b0 maps to +1, 1'b1 maps to -1
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_ADC_POL_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_OSR_MASK (0xF0U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_OSR_SHIFT (4U)
+/*! RX_DEC_FILT_OSR - Decimation Filter Oversampling
+ *  0b0000..OSR 4
+ *  0b0001..OSR 8
+ *  0b0010..OSR 16
+ *  0b0100..OSR 32
+ *  0b1000..OSR 64
+ *  0b0011..OSR 6
+ *  0b0101..OSR 12
+ *  0b0110..OSR 24
+ *  0b0111..OSR 48
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_OSR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_OSR_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_OSR_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL_MASK (0x100U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL_SHIFT (8U)
+/*! RX_FSK_ZB_SEL - FSK / 802.15.4 demodulator select
+ *  0b0..FSK demodulator.
+ *  0b1..802.15.4 demodulator.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_EN_MASK (0x200U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_EN_SHIFT (9U)
+/*! RX_NORM_SUPP_EN - Normalizer Suppression Enable
+ *  0b0..Normalizer suppression is disabled.
+ *  0b1..Normalizer suppression is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN_MASK  (0x400U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN_SHIFT (10U)
+/*! RX_RSSI_EN - RSSI Measurement Enable
+ *  0b0..RSSI measurement is disabled.
+ *  0b1..RSSI measurement is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN_MASK   (0x800U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN_SHIFT  (11U)
+/*! RX_AGC_EN - AGC Global Enable
+ *  0b0..AGC is disabled.
+ *  0b1..AGC is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_AGC_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN_MASK  (0x1000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN_SHIFT (12U)
+/*! RX_DCOC_EN - DCOC Enable
+ *  0b0..DCOC is disabled.
+ *  0b1..DCOC is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN_MASK (0x2000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN_SHIFT (13U)
+/*! RX_DCOC_CAL_EN - DCOC Calibration Enable
+ *  0b0..DCOC calibration is disabled.
+ *  0b1..DCOC calibration is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DCOC_CAL_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP_MASK  (0x4000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP_SHIFT (14U)
+/*! RX_IQ_SWAP - RX IQ Swap
+ *  0b0..IQ swap is disabled.
+ *  0b1..IQ swap is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_IQ_SWAP_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN_MASK (0x8000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN_SHIFT (15U)
+/*! RX_DC_RESID_EN - DC Residual Enable
+ *  0b0..DC Residual block is disabled.
+ *  0b1..DC Residual block is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_EN_MASK   (0x10000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_EN_SHIFT  (16U)
+/*! RX_SRC_EN - RX Sample Rate Converter Enable
+ *  0b0..SRC is disabled.
+ *  0b1..SRC is enabled.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE_MASK (0x20000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE_SHIFT (17U)
+/*! RX_SRC_RATE - RX Sample Rate Converter Rate Selections
+ *  0b0..SRC is configured for a First Order Hold rate of 8/13.
+ *  0b1..SRC is configured for a Zero Order Hold rate of 12/13.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN_MASK (0x40000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN_SHIFT (18U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DMA_DTEST_EN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_LP_MASK (0x80000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_LP_SHIFT (19U)
+/*! RX_DEC_FILT_LP - RX Decimator Low Power
+ *  0b0..Decimator operates in normal mode.
+ *  0b1..Decimator operates in low power mode.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_LP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_LP_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_LP_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_GAIN_MASK (0x1F00000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_GAIN_SHIFT (20U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_GAIN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_GAIN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_GAIN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS_MASK (0x2000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS_SHIFT (25U)
+/*! RX_DEC_FILT_HZD_CORR_DIS - Decimator filter hazard correction disable
+ *  0b0..Hazard correction is enabled
+ *  0b1..Hazard correction is disabled
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HZD_CORR_DIS_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_LEN_MASK (0x4000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_LEN_SHIFT (26U)
+/*! RX_CH_FILT_LEN - RX Channel Filter Length
+ *  0b0..Channel filter length is 24.
+ *  0b1..Channel filter length is 16. Only RX_CHF_COEF_4 - RX_CHF_COEF_11 are used in this mode.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_LEN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_LEN_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_CH_FILT_LEN_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_TH_MASK (0x8000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_TH_SHIFT (27U)
+/*! RX_NORM_SUPP_TH - Normalizer Suppression Threshold
+ *  0b0..Normalizer suppression threshold is 12'd7.
+ *  0b1..Normalizer suppression threshold is 12'd15.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_TH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_TH_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_NORM_SUPP_TH_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HAZARD_MASK (0x10000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HAZARD_SHIFT (28U)
+/*! RX_DEC_FILT_HAZARD - Decimator output, hazard condition detected
+ *  0b0..A hazard condition has not been detected
+ *  0b1..A hazard condition has been detected
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HAZARD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HAZARD_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_HAZARD_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_FILT_HAZARD_MASK (0x20000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_FILT_HAZARD_SHIFT (29U)
+/*! RX_RSSI_FILT_HAZARD - Decimator output for RSSI, hazard condition detected
+ *  0b0..A hazard condition has not been detected
+ *  0b1..A hazard condition has been detected
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_FILT_HAZARD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_FILT_HAZARD_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_RSSI_FILT_HAZARD_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_I_MASK (0x40000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_I_SHIFT (30U)
+/*! RX_DEC_FILT_SAT_I - Decimator output, saturation detected for I channel
+ *  0b0..A saturation condition has not occurred.
+ *  0b1..A saturation condition has occurred.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_I_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_I_MASK)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_Q_MASK (0x80000000U)
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_Q_SHIFT (31U)
+/*! RX_DEC_FILT_SAT_Q - Decimator output, saturation detected for Q channel
+ *  0b0..A saturation condition has not occurred.
+ *  0b1..A saturation condition has occurred.
+ */
+#define XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_Q_SHIFT)) & XCVR_RX_DIG_RX_DIG_CTRL_RX_DEC_FILT_SAT_Q_MASK)
+/*! @} */
+
+/*! @name AGC_CTRL_0 - AGC Control 0 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN_MASK  (0x1U)
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC_MASK (0x6U)
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC_SHIFT (1U)
+/*! SLOW_AGC_SRC - Slow AGC Source Selection
+ *  0b00..Access Address match (for active protocol)
+ *  0b01..Preamble Detect (for active protocol)
+ *  0b10..Fast AGC expire timer
+ *  0b11..Reserved
+ */
+#define XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_SLOW_AGC_SRC_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN_MASK (0x8U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN_SHIFT (3U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_SRC_MASK (0x30U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_SRC_SHIFT (4U)
+/*! AGC_FREEZE_SRC - AGC Freeze Source Selection
+ *  0b00..Access Address match (for active protocol)
+ *  0b01..Preamble Detect (for active protocol)
+ *  0b10..PD confirmation / Access Address match (for active protocol)
+ */
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_SRC(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_SRC_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_FREEZE_SRC_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN_MASK    (0x40U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN_SHIFT   (6U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC_MASK   (0x80U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC_SHIFT  (7U)
+/*! AGC_UP_SRC - AGC Up Source
+ *  0b0..PDET LO
+ *  0b1..RSSI
+ */
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_SRC_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_BBA_STEP_SZ_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_LNA_STEP_SZ_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH_MASK (0xFF0000U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_UP_RSSI_THRESH_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH_MASK (0xFF000000U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH_MASK)
+/*! @} */
+
+/*! @name AGC_CTRL_1 - AGC Control 1 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_UP_THRESH_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_UP_THRESH_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_UP_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_UP_THRESH_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_UP_THRESH_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_DOWN_THRESH_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_DOWN_THRESH_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_DOWN_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_DOWN_THRESH_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_DOWN_THRESH_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_USER_GAIN_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_USER_GAIN_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_USER_GAIN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_LNA_USER_GAIN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_LNA_USER_GAIN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_BBA_USER_GAIN_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_BBA_USER_GAIN_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_CTRL_1_BBA_USER_GAIN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_BBA_USER_GAIN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_BBA_USER_GAIN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_LNA_GAIN_EN_MASK (0x100000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_LNA_GAIN_EN_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_LNA_GAIN_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_USER_LNA_GAIN_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_USER_LNA_GAIN_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_BBA_GAIN_EN_MASK (0x200000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_BBA_GAIN_EN_SHIFT (21U)
+#define XCVR_RX_DIG_AGC_CTRL_1_USER_BBA_GAIN_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_USER_BBA_GAIN_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_USER_BBA_GAIN_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_EN_MASK   (0x400000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_EN_SHIFT  (22U)
+/*! PRESLOW_EN - Pre-slow Enable
+ *  0b0..Pre-slow is disabled.
+ *  0b1..Pre-slow is enabled.
+ */
+#define XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_EN_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_PRESLOW_EN_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_PDET_HI_SEL_HOLD_MASK (0x800000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_PDET_HI_SEL_HOLD_SHIFT (23U)
+/*! PDET_HI_SEL_HOLD - AGC HOLD hysteresis
+ *  0b0..Disabled.
+ *  0b1..Enabled.
+ */
+#define XCVR_RX_DIG_AGC_CTRL_1_PDET_HI_SEL_HOLD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_PDET_HI_SEL_HOLD_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_PDET_HI_SEL_HOLD_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_GAIN_SETTLE_TIME_MASK (0xFF000000U)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_GAIN_SETTLE_TIME_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_CTRL_1_LNA_GAIN_SETTLE_TIME(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_1_LNA_GAIN_SETTLE_TIME_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_1_LNA_GAIN_SETTLE_TIME_MASK)
+/*! @} */
+
+/*! @name AGC_CTRL_2 - AGC Control 2 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_RST_MASK (0x1U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_RST_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_RST(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_RST_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_RST_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_RST_MASK (0x2U)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_RST_SHIFT (1U)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_RST(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_RST_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_RST_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_MAN_PDET_RST_MASK (0x4U)
+#define XCVR_RX_DIG_AGC_CTRL_2_MAN_PDET_RST_SHIFT (2U)
+/*! MAN_PDET_RST - MAN PDET Reset
+ *  0b0..The peak detector reset signals are controlled automatically by the AGC.
+ *  0b1..The BBA_PDET_RST and TZA_PDET_RST are used to manually control the peak detector reset signals.
+ */
+#define XCVR_RX_DIG_AGC_CTRL_2_MAN_PDET_RST(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_MAN_PDET_RST_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_MAN_PDET_RST_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME_MASK (0xFF0U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO_MASK (0x7000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO_SHIFT (12U)
+/*! BBA_PDET_SEL_LO - BBA PDET Threshold Low
+ *  0b000..0.600V
+ *  0b001..0.615V
+ *  0b010..0.630V
+ *  0b011..0.645V
+ *  0b100..0.660V
+ *  0b101..0.675V
+ *  0b110..0.690V
+ *  0b111..0.705V
+ */
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI_MASK (0x38000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI_SHIFT (15U)
+/*! BBA_PDET_SEL_HI - BBA PDET Threshold High
+ *  0b000..0.600V
+ *  0b001..0.795V
+ *  0b010..0.900V
+ *  0b011..0.945V
+ *  0b100..1.005V
+ *  0b101..1.050V
+ *  0b110..1.095V
+ *  0b111..1.155V
+ */
+#define XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO_MASK (0x1C0000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO_SHIFT (18U)
+/*! TZA_PDET_SEL_LO - TZA PDET Threshold Low
+ *  0b000..0.600V
+ *  0b001..0.615V
+ *  0b010..0.630V
+ *  0b011..0.645V
+ *  0b100..0.660V
+ *  0b101..0.675V
+ *  0b110..0.690V
+ *  0b111..0.705V
+ */
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI_MASK (0xE00000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI_SHIFT (21U)
+/*! TZA_PDET_SEL_HI - TZA PDET Threshold High
+ *  0b000..0.600V
+ *  0b001..0.645V
+ *  0b010..0.705V
+ *  0b011..0.750V
+ *  0b100..0.795V
+ *  0b101..0.855V
+ *  0b110..0.900V
+ *  0b111..0.945V
+ */
+#define XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE_MASK (0x3F000000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_LG_ON_OVR_MASK (0x40000000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_LG_ON_OVR_SHIFT (30U)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_LG_ON_OVR(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_LNA_LG_ON_OVR_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_LNA_LG_ON_OVR_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_HG_ON_OVR_MASK (0x80000000U)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_HG_ON_OVR_SHIFT (31U)
+#define XCVR_RX_DIG_AGC_CTRL_2_LNA_HG_ON_OVR(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_2_LNA_HG_ON_OVR_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_2_LNA_HG_ON_OVR_MASK)
+/*! @} */
+
+/*! @name AGC_CTRL_3 - AGC Control 3 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME_MASK (0x1FFFU)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_3_AGC_UNFREEZE_TIME_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY_MASK (0xE000U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY_SHIFT (13U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_3_AGC_PDET_LO_DLY_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S_MASK (0x7F0000U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_3_AGC_RSSI_DELT_H2S_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ_MASK (0xF800000U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ_SHIFT (23U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_3_AGC_H2S_STEP_SZ_MASK)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ_SHIFT)) & XCVR_RX_DIG_AGC_CTRL_3_AGC_UP_STEP_SZ_MASK)
+/*! @} */
+
+/*! @name AGC_STAT - AGC Status */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_LO_STAT_MASK (0x1U)
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_LO_STAT_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_LO_STAT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_BBA_PDET_LO_STAT_SHIFT)) & XCVR_RX_DIG_AGC_STAT_BBA_PDET_LO_STAT_MASK)
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_HI_STAT_MASK (0x2U)
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_HI_STAT_SHIFT (1U)
+#define XCVR_RX_DIG_AGC_STAT_BBA_PDET_HI_STAT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_BBA_PDET_HI_STAT_SHIFT)) & XCVR_RX_DIG_AGC_STAT_BBA_PDET_HI_STAT_MASK)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_LO_STAT_MASK (0x4U)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_LO_STAT_SHIFT (2U)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_LO_STAT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_TZA_PDET_LO_STAT_SHIFT)) & XCVR_RX_DIG_AGC_STAT_TZA_PDET_LO_STAT_MASK)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_HI_STAT_MASK (0x8U)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_HI_STAT_SHIFT (3U)
+#define XCVR_RX_DIG_AGC_STAT_TZA_PDET_HI_STAT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_TZA_PDET_HI_STAT_SHIFT)) & XCVR_RX_DIG_AGC_STAT_TZA_PDET_HI_STAT_MASK)
+#define XCVR_RX_DIG_AGC_STAT_CURR_AGC_IDX_MASK   (0x1F0U)
+#define XCVR_RX_DIG_AGC_STAT_CURR_AGC_IDX_SHIFT  (4U)
+#define XCVR_RX_DIG_AGC_STAT_CURR_AGC_IDX(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_CURR_AGC_IDX_SHIFT)) & XCVR_RX_DIG_AGC_STAT_CURR_AGC_IDX_MASK)
+#define XCVR_RX_DIG_AGC_STAT_AGC_FROZEN_MASK     (0x200U)
+#define XCVR_RX_DIG_AGC_STAT_AGC_FROZEN_SHIFT    (9U)
+/*! AGC_FROZEN - AGC Frozen Status
+ *  0b0..AGC is not frozen.
+ *  0b1..AGC is frozen.
+ */
+#define XCVR_RX_DIG_AGC_STAT_AGC_FROZEN(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_AGC_FROZEN_SHIFT)) & XCVR_RX_DIG_AGC_STAT_AGC_FROZEN_MASK)
+#define XCVR_RX_DIG_AGC_STAT_AGC_IDX_AA_MATCH_MASK (0x7C00U)
+#define XCVR_RX_DIG_AGC_STAT_AGC_IDX_AA_MATCH_SHIFT (10U)
+#define XCVR_RX_DIG_AGC_STAT_AGC_IDX_AA_MATCH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_AGC_IDX_AA_MATCH_SHIFT)) & XCVR_RX_DIG_AGC_STAT_AGC_IDX_AA_MATCH_MASK)
+#define XCVR_RX_DIG_AGC_STAT_RSSI_ADC_RAW_MASK   (0xFF0000U)
+#define XCVR_RX_DIG_AGC_STAT_RSSI_ADC_RAW_SHIFT  (16U)
+#define XCVR_RX_DIG_AGC_STAT_RSSI_ADC_RAW(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_STAT_RSSI_ADC_RAW_SHIFT)) & XCVR_RX_DIG_AGC_STAT_RSSI_ADC_RAW_MASK)
+/*! @} */
+
+/*! @name RSSI_CTRL_0 - RSSI Control 0 */
+/*! @{ */
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS_MASK (0x1U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS_SHIFT (0U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_USE_VALS_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC_MASK (0x6U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC_SHIFT (1U)
+/*! RSSI_HOLD_SRC - RSSI Hold Source Selection
+ *  0b00..Access Address match
+ *  0b01..Preamble Detect
+ *  0b10..Reserved
+ *  0b11..802.15.4 LQI done (1=freeze, 0=run AGC)
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_SRC_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN_MASK (0x8U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN_SHIFT (3U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_EN_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT_MASK (0x60U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT_SHIFT (5U)
+/*! RSSI_IIR_CW_WEIGHT - RSSI IIR CW Weighting
+ *  0b00..Bypass
+ *  0b01..1/8
+ *  0b10..1/16
+ *  0b11..1/32
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_CW_WEIGHT_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB_MASK (0x380U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB_SHIFT (7U)
+/*! RSSI_N_WINDOW_NB - RSSI N Window Average Narrowband
+ *  0b000..No averaging
+ *  0b001..Averaging window length is 2 samples
+ *  0b010..Averaging window length is 4 samples
+ *  0b011..Averaging window length is 8 samples
+ *  0b100..Averaging window length is 16 samples
+ *  0b101..Averaging window length is 32 samples
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_N_WINDOW_NB_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY_MASK (0xFC00U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY_SHIFT (10U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_HOLD_DELAY_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WT_NB_MASK (0x70000U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WT_NB_SHIFT (16U)
+/*! RSSI_IIR_WT_NB - RSSI IIR Weighting Narrowband
+ *  0b000..Bypass
+ *  0b001..1/2
+ *  0b010..1/4
+ *  0b011..1/8
+ *  0b100..1/16
+ *  0b101..1/32
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WT_NB(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WT_NB_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_IIR_WT_NB_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE_MASK (0x700000U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE_SHIFT (20U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_VLD_SETTLE_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ_MASK    (0xFF000000U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ_SHIFT   (24U)
+#define XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_0_RSSI_ADJ_MASK)
+/*! @} */
+
+/*! @name RSSI_CTRL_1 - RSSI Control 1 */
+/*! @{ */
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_N_WINDOW_WB_MASK (0x7U)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_N_WINDOW_WB_SHIFT (0U)
+/*! RSSI_N_WINDOW_WB - RSSI N Window Average Wideband
+ *  0b000..No averaging
+ *  0b001..Averaging window length is 2 samples
+ *  0b010..Averaging window length is 4 samples
+ *  0b011..Averaging window length is 8 samples
+ *  0b100..Averaging window length is 16 samples
+ *  0b101..Averaging window length is 32 samples
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_N_WINDOW_WB(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_1_RSSI_N_WINDOW_WB_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_1_RSSI_N_WINDOW_WB_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_IIR_WT_WB_MASK (0x70U)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_IIR_WT_WB_SHIFT (4U)
+/*! RSSI_IIR_WT_WB - RSSI IIR Weighting Wideband
+ *  0b000..Bypass
+ *  0b001..1/2
+ *  0b010..1/4
+ *  0b011..1/8
+ *  0b100..1/16
+ *  0b101..1/32
+ */
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_IIR_WT_WB(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_1_RSSI_IIR_WT_WB_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_1_RSSI_IIR_WT_WB_MASK)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_OUT_MASK    (0xFF000000U)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_OUT_SHIFT   (24U)
+#define XCVR_RX_DIG_RSSI_CTRL_1_RSSI_OUT(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RSSI_CTRL_1_RSSI_OUT_SHIFT)) & XCVR_RX_DIG_RSSI_CTRL_1_RSSI_OUT_MASK)
+/*! @} */
+
+/*! @name DCOC_CTRL_0 - DCOC Control 0 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MIDPWR_TRK_DIS_MASK (0x1U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MIDPWR_TRK_DIS_SHIFT (0U)
+/*! DCOC_MIDPWR_TRK_DIS - DCOC Mid Power Tracking Disable
+ *  0b0..Tracking corrections are enabled as determined by DCOC_CORRECT_SRC and DCOC_TRK_MIN_AGC_IDX.
+ *  0b1..Tracking corrections are disabled when either the TZA or BBA lo peak detector asserts.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MIDPWR_TRK_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MIDPWR_TRK_DIS_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MIDPWR_TRK_DIS_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MAN_MASK    (0x2U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MAN_SHIFT   (1U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MAN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MAN_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_MAN_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_TRK_EST_OVR_MASK (0x4U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_TRK_EST_OVR_SHIFT (2U)
+/*! DCOC_TRK_EST_OVR - Override for the DCOC tracking estimator
+ *  0b0..The tracking estimator is enabled only as needed by the corrector
+ *  0b1..The tracking estimator remains enabled whenever the DCOC is active
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_TRK_EST_OVR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_TRK_EST_OVR_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_TRK_EST_OVR_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC_MASK (0x8U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC_SHIFT (3U)
+/*! DCOC_CORRECT_SRC - DCOC Corrector Source
+ *  0b0..If correction is enabled, the DCOC will use only the DCOC calibration table to correct the DC offset.
+ *  0b1..If correction is enabled, the DCOC will use the DCOC calibration table and then the tracking estimator to correct the DC offset.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_SRC_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN_MASK (0x10U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN_SHIFT (4U)
+/*! DCOC_CORRECT_EN - DCOC Correction Enable
+ *  0b0..Correction disabled. The DCOC will not correct the DC offset.
+ *  0b1..Correction enabled. The DCOC will use the TZA and BBA DACs, and apply digital corrections (if DCOC_CORRECT_SRC=1) to correct the DC offset.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORRECT_EN_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO_MASK (0x20U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO_SHIFT (5U)
+/*! TRACK_FROM_ZERO - Track from Zero
+ *  0b0..Track from current I/Q sample.
+ *  0b1..Track from zero.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_TRACK_FROM_ZERO_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL_MASK (0x40U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL_SHIFT (6U)
+/*! BBA_CORR_POL - BBA Correction Polarity
+ *  0b0..Normal polarity.
+ *  0b1..Negative polarity. This should be set if the ADC output is inverted, or if the BBA DACs were implemented with negative polarity.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_BBA_CORR_POL_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL_MASK (0x80U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL_SHIFT (7U)
+/*! TZA_CORR_POL - TZA Correction Polarity
+ *  0b0..Normal polarity.
+ *  0b1..Negative polarity. This should be set if the ADC output is inverted, or if the TZA DACs were implemented with negative polarity.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_TZA_CORR_POL_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION_MASK (0x1F00U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION_SHIFT (8U)
+/*! DCOC_CAL_DURATION - DCOC Calibration Duration
+ *  0b00000..Reserved
+ *  0b00001-0b11111..For a 32MHz reference clock, this is the calibration duration in microseconds; for other reference clock frequencies, the delay is scaled accordingly.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_DURATION_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN_MASK (0x8000U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN_SHIFT (15U)
+/*! DCOC_CAL_CHECK_EN - DCOC Calibration Check Enable
+ *  0b0..Calibration checking disabled. The DCOC_OFFSET_n registers are always updated during calibration.
+ *  0b1..Calibration checking enabled. The DCOC_OFFSET_n registers are updated conditionally depending on the outcome of the pass/fail threshold checks performed on the alpha-hat and beta-hat estimates during calibration.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CAL_CHECK_EN_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_DLY_MASK (0x1F0000U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_DLY_SHIFT (16U)
+/*! DCOC_CORR_DLY - DCOC Correction Delay
+ *  0b00000..Reserved
+ *  0b00001-0b11111..For a 32MHz reference clock, this is the wait time in microseconds; for other reference clock frequencies, the delay is scaled accordingly.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_DLY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_DLY_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_DLY_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_HOLD_TIME_MASK (0x7F000000U)
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_HOLD_TIME_SHIFT (24U)
+/*! DCOC_CORR_HOLD_TIME - DCOC Correction Hold Time
+ *  0b0000000..Reserved
+ *  0b0000001-0b1111110..For a 32MHz reference clock, this is the delay in microseconds; for other reference clock frequencies, the delay is scaled accordingly.
+ *  0b1111111..The DC correction is not frozen.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_HOLD_TIME(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_HOLD_TIME_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_0_DCOC_CORR_HOLD_TIME_MASK)
+/*! @} */
+
+/*! @name DCOC_CTRL_1 - DCOC Control 1 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_IDX_MASK (0x3U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_IDX_SHIFT (0U)
+/*! DCOC_SIGN_SCALE_IDX - DCOC Sign Scaling
+ *  0b00..1/8
+ *  0b01..1/16
+ *  0b10..1/32
+ *  0b11..1/64
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_IDX_MASK (0x1CU)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_IDX_SHIFT (2U)
+/*! DCOC_ALPHAC_SCALE_IDX - DCOC Alpha-C Scaling
+ *  0b000..1/2
+ *  0b001..1/4
+ *  0b010..1/8
+ *  0b011..1/16
+ *  0b100..1/32
+ *  0b101..1/64
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_IDX_MASK (0xE0U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_IDX_SHIFT (5U)
+/*! DCOC_ALPHA_RADIUS_IDX - Alpha-R Scaling
+ *  0b000..1
+ *  0b001..1/2
+ *  0b010..1/4
+ *  0b011..1/8
+ *  0b100..1/16
+ *  0b101..1/32
+ *  0b110..1/64
+ *  0b111..Reserved
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_EST_GS_CNT_MASK (0x7000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_EST_GS_CNT_SHIFT (12U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_EST_GS_CNT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_EST_GS_CNT_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_EST_GS_CNT_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_GS_IDX_MASK (0x30000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_GS_IDX_SHIFT (16U)
+/*! DCOC_SIGN_SCALE_GS_IDX - DCOC Sign Scaling for Gearshift
+ *  0b00..1/8
+ *  0b01..1/16
+ *  0b10..1/32
+ *  0b11..1/64
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_GS_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_GS_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_SIGN_SCALE_GS_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_GS_IDX_MASK (0x1C0000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_GS_IDX_SHIFT (18U)
+/*! DCOC_ALPHAC_SCALE_GS_IDX - DCOC Alpha-C Scaling for Gearshift
+ *  0b000..1/2
+ *  0b001..1/4
+ *  0b010..1/8
+ *  0b011..1/16
+ *  0b100..1/32
+ *  0b101..1/64
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_GS_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_GS_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHAC_SCALE_GS_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_GS_IDX_MASK (0xE00000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_GS_IDX_SHIFT (21U)
+/*! DCOC_ALPHA_RADIUS_GS_IDX - Alpha-R Scaling for Gearshift
+ *  0b000..1
+ *  0b001..1/2
+ *  0b010..1/4
+ *  0b011..1/8
+ *  0b100..1/16
+ *  0b101..1/32
+ *  0b110..1/64
+ *  0b111..Reserved
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_GS_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_GS_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_ALPHA_RADIUS_GS_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_MASK (0x1F000000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_SHIFT (24U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_CFG_MASK (0x80000000U)
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_CFG_SHIFT (31U)
+/*! DCOC_TRK_MIN_AGC_IDX_CFG - DCOC_TRK_MIN_AGC_IDX Configuration
+ *  0b0..Tracking is disabled when the AGC index is less than DCOC_TRK_MIN_AGC_IDX
+ *  0b1..Tracking is enabled when AGC index is less than DCOC_TRK_MIN_AGC_IDX, but DCOC_CORR_DLY_ALT and DCOC_CORR_HOLD_TIME_ALT are used instead of DCOC_CORR_DLY and DCOC_CORR_HOLD_TIME
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_CFG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_CFG_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_1_DCOC_TRK_MIN_AGC_IDX_CFG_MASK)
+/*! @} */
+
+/*! @name DCOC_DAC_INIT - DCOC DAC Initialization */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_I_MASK (0x3FU)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_I_SHIFT)) & XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_I_MASK)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_Q_MASK (0x3F00U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_Q_SHIFT (8U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_Q_SHIFT)) & XCVR_RX_DIG_DCOC_DAC_INIT_BBA_DCOC_INIT_Q_MASK)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_I_MASK (0xFF0000U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_I_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_I_SHIFT)) & XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_I_MASK)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_Q_MASK (0xFF000000U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_Q_SHIFT (24U)
+#define XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_Q_SHIFT)) & XCVR_RX_DIG_DCOC_DAC_INIT_TZA_DCOC_INIT_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_DIG_MAN - DCOC Digital Correction Manual Override */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_I_MASK (0xFFFU)
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_I_SHIFT)) & XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_I_MASK)
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_Q_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_Q_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_Q_SHIFT)) & XCVR_RX_DIG_DCOC_DIG_MAN_DIG_DCOC_INIT_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_GAIN - DCOC Calibration Gain */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1_MASK (0xF00U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1_SHIFT (8U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN1_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1_MASK (0xF000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1_SHIFT (12U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN1_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2_MASK (0xF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN2_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2_MASK (0xF00000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2_SHIFT (20U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN2_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3_MASK (0xF000000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3_SHIFT (24U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_BBA_CAL_GAIN3_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3_MASK (0xF0000000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3_SHIFT (28U)
+#define XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAIN_DCOC_LNA_CAL_GAIN3_MASK)
+/*! @} */
+
+/*! @name DCOC_STAT - DCOC Status */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_I_MASK    (0x3FU)
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_I_SHIFT   (0U)
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_I(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_I_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_I_MASK)
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_GTWSR_MASK (0x80U)
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_GTWSR_SHIFT (7U)
+/*! DCOC_CAL_GTWSR - DCOC calibration Good Table Written Since Reset
+ *  0b0..A Passing calibration result has not occurred since the last radio reset.
+ *  0b1..A Passing calibration result has occurred since the last radio reset.
+ */
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_GTWSR(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_GTWSR_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_GTWSR_MASK)
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_Q_MASK    (0x3F00U)
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_Q_SHIFT   (8U)
+#define XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_Q(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_Q_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_BBA_DCOC_Q_MASK)
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_RESULT_MASK (0xC000U)
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_RESULT_SHIFT (14U)
+/*! DCOC_CAL_RESULT - DCOC_CAL_RESULT
+ *  0b00..Calibration checks failed. DCOC_OFFSET_n tables not updated.
+ *  0b01..Calibration checks neither passed nor failed, DCOC_OFFSET_n tables not updated.
+ *  0b10..Calibration checks neither passed nor failed, DCOC_OFFSET_n tables updated since no previous Pass condition has occurred since the last radio reset.
+ *  0b11..Calibration checks passed. DCOC_OFFSET_n tables updated
+ */
+#define XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_RESULT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_RESULT_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_DCOC_CAL_RESULT_MASK)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_I_MASK    (0xFF0000U)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_I_SHIFT   (16U)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_I(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_I_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_I_MASK)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_Q_MASK    (0xFF000000U)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_Q_SHIFT   (24U)
+#define XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_Q(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_Q_SHIFT)) & XCVR_RX_DIG_DCOC_STAT_TZA_DCOC_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_DC_EST - DCOC DC Estimate */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_I_MASK    (0xFFFU)
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_I_SHIFT   (0U)
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_I(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DC_EST_DC_EST_I_SHIFT)) & XCVR_RX_DIG_DCOC_DC_EST_DC_EST_I_MASK)
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_Q_MASK    (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_Q_SHIFT   (16U)
+#define XCVR_RX_DIG_DCOC_DC_EST_DC_EST_Q(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_DC_EST_DC_EST_Q_SHIFT)) & XCVR_RX_DIG_DCOC_DC_EST_DC_EST_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_RCP - DCOC Calibration Reciprocals */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP_MASK (0x7FFU)
+#define XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_RCP_DCOC_TMP_CALC_RECIP_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP_MASK (0x7FF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_RCP_ALPHA_CALC_RECIP_MASK)
+/*! @} */
+
+/*! @name DCOC_CTRL_2 - DCOC Control 2 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_DLY_ALT_MASK (0x1F0000U)
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_DLY_ALT_SHIFT (16U)
+/*! DCOC_CORR_DLY_ALT - DCOC Correction Delay Alternate
+ *  0b00000..Reserved
+ *  0b00001-0b11111..For a 32MHz reference clock, this is the wait time in microseconds; for other reference clock frequencies, the delay is scaled accordingly.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_DLY_ALT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_DLY_ALT_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_DLY_ALT_MASK)
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_HOLD_TIME_ALT_MASK (0x7F000000U)
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_HOLD_TIME_ALT_SHIFT (24U)
+/*! DCOC_CORR_HOLD_TIME_ALT - DCOC Correction Hold Time Alternate
+ *  0b0000000..Reserved
+ *  0b0000001-0b1111110..For a 32MHz reference clock, this is the delay in microseconds; for other reference clock frequencies, the delay is scaled accordingly.
+ *  0b1111111..The DC correction is not frozen.
+ */
+#define XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_HOLD_TIME_ALT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_HOLD_TIME_ALT_SHIFT)) & XCVR_RX_DIG_DCOC_CTRL_2_DCOC_CORR_HOLD_TIME_ALT_MASK)
+/*! @} */
+
+/*! @name IQMC_CTRL - IQMC Control */
+/*! @{ */
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_CAL_EN_MASK   (0x1U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_CAL_EN_SHIFT  (0U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_CAL_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_IQMC_CTRL_IQMC_CAL_EN_SHIFT)) & XCVR_RX_DIG_IQMC_CTRL_IQMC_CAL_EN_MASK)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_NUM_ITER_MASK (0xFF00U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_NUM_ITER_SHIFT (8U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_NUM_ITER(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_IQMC_CTRL_IQMC_NUM_ITER_SHIFT)) & XCVR_RX_DIG_IQMC_CTRL_IQMC_NUM_ITER_MASK)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_DC_GAIN_ADJ_MASK (0x7FF0000U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_DC_GAIN_ADJ_SHIFT (16U)
+#define XCVR_RX_DIG_IQMC_CTRL_IQMC_DC_GAIN_ADJ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_IQMC_CTRL_IQMC_DC_GAIN_ADJ_SHIFT)) & XCVR_RX_DIG_IQMC_CTRL_IQMC_DC_GAIN_ADJ_MASK)
+/*! @} */
+
+/*! @name IQMC_CAL - IQMC Calibration */
+/*! @{ */
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_GAIN_ADJ_MASK  (0x7FFU)
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_GAIN_ADJ_SHIFT (0U)
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_GAIN_ADJ(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_IQMC_CAL_IQMC_GAIN_ADJ_SHIFT)) & XCVR_RX_DIG_IQMC_CAL_IQMC_GAIN_ADJ_MASK)
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_PHASE_ADJ_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_PHASE_ADJ_SHIFT (16U)
+#define XCVR_RX_DIG_IQMC_CAL_IQMC_PHASE_ADJ(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_IQMC_CAL_IQMC_PHASE_ADJ_SHIFT)) & XCVR_RX_DIG_IQMC_CAL_IQMC_PHASE_ADJ_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_VAL_3_0 - LNA_GAIN Step Values 3..0 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0_MASK (0xFFU)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_0_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1_MASK (0xFF00U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1_SHIFT (8U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_1_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2_MASK (0xFF0000U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2_SHIFT (16U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_2_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3_MASK (0xFF000000U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3_SHIFT (24U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_3_0_LNA_GAIN_VAL_3_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_VAL_7_4 - LNA_GAIN Step Values 7..4 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4_MASK (0xFFU)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_4_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5_MASK (0xFF00U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5_SHIFT (8U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_5_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6_MASK (0xFF0000U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6_SHIFT (16U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_6_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7_MASK (0xFF000000U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7_SHIFT (24U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_7_4_LNA_GAIN_VAL_7_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_VAL_8 - LNA_GAIN Step Values 8 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8_MASK (0xFFU)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_8_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9_MASK (0xFF00U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9_SHIFT (8U)
+#define XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_VAL_8_LNA_GAIN_VAL_9_MASK)
+/*! @} */
+
+/*! @name BBA_RES_TUNE_VAL_7_0 - BBA Resistor Tune Values 7..0 */
+/*! @{ */
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0_MASK (0xFU)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0_SHIFT (0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_0_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1_MASK (0xF0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1_SHIFT (4U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_1_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2_MASK (0xF00U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2_SHIFT (8U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_2_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3_MASK (0xF000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3_SHIFT (12U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_3_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4_MASK (0xF0000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4_SHIFT (16U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_4_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5_MASK (0xF00000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5_SHIFT (20U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_5_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6_MASK (0xF000000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6_SHIFT (24U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_6_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7_MASK (0xF0000000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7_SHIFT (28U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_7_0_BBA_RES_TUNE_VAL_7_MASK)
+/*! @} */
+
+/*! @name BBA_RES_TUNE_VAL_10_8 - BBA Resistor Tune Values 10..8 */
+/*! @{ */
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8_MASK (0xFU)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8_SHIFT (0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_8_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9_MASK (0xF0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9_SHIFT (4U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_9_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10_MASK (0xF00U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10_SHIFT (8U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_VAL_10_8_BBA_RES_TUNE_VAL_10_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_LIN_VAL_2_0 - LNA Linear Gain Values 2..0 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0_MASK (0x3FFU)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_0_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1_MASK (0xFFC00U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1_SHIFT (10U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_1_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2_MASK (0x3FF00000U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2_SHIFT (20U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_2_0_LNA_GAIN_LIN_VAL_2_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_LIN_VAL_5_3 - LNA Linear Gain Values 5..3 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3_MASK (0x3FFU)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_3_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4_MASK (0xFFC00U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4_SHIFT (10U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_4_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5_MASK (0x3FF00000U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5_SHIFT (20U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_5_3_LNA_GAIN_LIN_VAL_5_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_LIN_VAL_8_6 - LNA Linear Gain Values 8..6 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6_MASK (0x3FFU)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_6_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7_MASK (0xFFC00U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7_SHIFT (10U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_7_MASK)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8_MASK (0x3FF00000U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8_SHIFT (20U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_8_6_LNA_GAIN_LIN_VAL_8_MASK)
+/*! @} */
+
+/*! @name LNA_GAIN_LIN_VAL_9 - LNA Linear Gain Values 9 */
+/*! @{ */
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9_MASK (0x3FFU)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9_SHIFT (0U)
+#define XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9_SHIFT)) & XCVR_RX_DIG_LNA_GAIN_LIN_VAL_9_LNA_GAIN_LIN_VAL_9_MASK)
+/*! @} */
+
+/*! @name BBA_RES_TUNE_LIN_VAL_3_0 - BBA Resistor Tune Values 3..0 */
+/*! @{ */
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0_MASK (0xFFU)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0_SHIFT (0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_0_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1_MASK (0xFF00U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1_SHIFT (8U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_1_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2_MASK (0xFF0000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2_SHIFT (16U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_2_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3_MASK (0xFF000000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3_SHIFT (24U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_3_0_BBA_RES_TUNE_LIN_VAL_3_MASK)
+/*! @} */
+
+/*! @name BBA_RES_TUNE_LIN_VAL_7_4 - BBA Resistor Tune Values 7..4 */
+/*! @{ */
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4_MASK (0xFFU)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4_SHIFT (0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_4_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5_MASK (0xFF00U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5_SHIFT (8U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_5_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6_MASK (0xFF0000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6_SHIFT (16U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_6_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7_MASK (0xFF000000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7_SHIFT (24U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_7_4_BBA_RES_TUNE_LIN_VAL_7_MASK)
+/*! @} */
+
+/*! @name BBA_RES_TUNE_LIN_VAL_10_8 - BBA Resistor Tune Values 10..8 */
+/*! @{ */
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8_MASK (0x3FFU)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8_SHIFT (0U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_8_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9_MASK (0xFFC00U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9_SHIFT (10U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_9_MASK)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10_MASK (0x3FF00000U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10_SHIFT (20U)
+#define XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10_SHIFT)) & XCVR_RX_DIG_BBA_RES_TUNE_LIN_VAL_10_8_BBA_RES_TUNE_LIN_VAL_10_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_03_00 - AGC Gain Tables Step 03..00 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_00_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_00_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_01_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_01_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_02_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_02_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_BBA_GAIN_03_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_03_00_LNA_GAIN_03_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_07_04 - AGC Gain Tables Step 07..04 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_04_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_04_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_05_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_05_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_06_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_06_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_BBA_GAIN_07_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_07_04_LNA_GAIN_07_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_11_08 - AGC Gain Tables Step 11..08 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_08_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_08_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_09_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_09_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_10_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_10_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_BBA_GAIN_11_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_11_08_LNA_GAIN_11_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_15_12 - AGC Gain Tables Step 15..12 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_12_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_12_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_13_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_13_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_14_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_14_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_BBA_GAIN_15_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_15_12_LNA_GAIN_15_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_19_16 - AGC Gain Tables Step 19..16 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_16_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_16_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_17_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_17_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_18_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_18_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_BBA_GAIN_19_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_19_16_LNA_GAIN_19_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_23_20 - AGC Gain Tables Step 23..20 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_20_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_20_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_21_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_21_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_22_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_22_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23_MASK (0xF000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_BBA_GAIN_23_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23_MASK (0xF0000000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23_SHIFT (28U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_23_20_LNA_GAIN_23_MASK)
+/*! @} */
+
+/*! @name AGC_GAIN_TBL_26_24 - AGC Gain Tables Step 26..24 */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24_MASK (0xFU)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_24_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24_MASK (0xF0U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24_SHIFT (4U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_24_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25_MASK (0xF00U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25_SHIFT (8U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_25_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25_MASK (0xF000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25_SHIFT (12U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_25_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26_MASK (0xF0000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_BBA_GAIN_26_MASK)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26_MASK (0xF00000U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26_SHIFT (20U)
+#define XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26_SHIFT)) & XCVR_RX_DIG_AGC_GAIN_TBL_26_24_LNA_GAIN_26_MASK)
+/*! @} */
+
+/*! @name DCOC_OFFSET - DCOC Offset */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_I_MASK (0x3FU)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_I_SHIFT)) & XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_I_MASK)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_Q_MASK (0x3F00U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_Q_SHIFT (8U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_Q_SHIFT)) & XCVR_RX_DIG_DCOC_OFFSET_DCOC_BBA_OFFSET_Q_MASK)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_I_MASK (0xFF0000U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_I_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_I_SHIFT)) & XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_I_MASK)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_Q_MASK (0xFF000000U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_Q_SHIFT (24U)
+#define XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_Q_SHIFT)) & XCVR_RX_DIG_DCOC_OFFSET_DCOC_TZA_OFFSET_Q_MASK)
+/*! @} */
+
+/* The count of XCVR_RX_DIG_DCOC_OFFSET */
+#define XCVR_RX_DIG_DCOC_OFFSET_COUNT            (27U)
+
+/*! @name DCOC_BBA_STEP - DCOC BBA DAC Step */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP_SHIFT)) & XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_RECIP_MASK)
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_MASK (0x1FF0000U)
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_SHIFT)) & XCVR_RX_DIG_DCOC_BBA_STEP_BBA_DCOC_STEP_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_0 - DCOC TZA DAC Step 0 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_RCP_0_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_0_DCOC_TZA_STEP_GAIN_0_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_1 - DCOC TZA DAC Step 1 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_RCP_1_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_1_DCOC_TZA_STEP_GAIN_1_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_2 - DCOC TZA DAC Step 2 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_RCP_2_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_2_DCOC_TZA_STEP_GAIN_2_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_3 - DCOC TZA DAC Step 3 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_RCP_3_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_3_DCOC_TZA_STEP_GAIN_3_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_4 - DCOC TZA DAC Step 4 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_RCP_4_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_4_DCOC_TZA_STEP_GAIN_4_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_5 - DCOC TZA DAC Step 5 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_RCP_5_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_5_DCOC_TZA_STEP_GAIN_5_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_6 - DCOC TZA DAC Step 6 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_RCP_6_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_6_DCOC_TZA_STEP_GAIN_6_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_7 - DCOC TZA DAC Step 7 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_RCP_7_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7_MASK (0x1FFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_7_DCOC_TZA_STEP_GAIN_7_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_8 - DCOC TZA DAC Step 5 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_RCP_8_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8_MASK (0x1FFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_8_DCOC_TZA_STEP_GAIN_8_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_9 - DCOC TZA DAC Step 9 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_RCP_9_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9_MASK (0x3FFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_9_DCOC_TZA_STEP_GAIN_9_MASK)
+/*! @} */
+
+/*! @name DCOC_TZA_STEP_10 - DCOC TZA DAC Step 10 */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_RCP_10_MASK)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10_MASK (0x3FFF0000U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10_SHIFT)) & XCVR_RX_DIG_DCOC_TZA_STEP_10_DCOC_TZA_STEP_GAIN_10_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_FAIL_TH - DCOC Calibration Fail Thresholds */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH_MASK (0x7FFU)
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_BETA_F_TH_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_FAIL_TH_DCOC_CAL_ALPHA_F_TH_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_PASS_TH - DCOC Calibration Pass Thresholds */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH_MASK (0x7FFU)
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_BETA_P_TH_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_PASS_TH_DCOC_CAL_ALPHA_P_TH_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_ALPHA - DCOC Calibration Alpha */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_I_MASK (0x7FFU)
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_I_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_I_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_Q_MASK (0x7FF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_Q_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_Q_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_ALPHA_DCOC_CAL_ALPHA_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_BETA_Q - DCOC Calibration Beta Q */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_BETA_Q_DCOC_CAL_BETA_Q_MASK (0x1FFFFU)
+#define XCVR_RX_DIG_DCOC_CAL_BETA_Q_DCOC_CAL_BETA_Q_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_BETA_Q_DCOC_CAL_BETA_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_BETA_Q_DCOC_CAL_BETA_Q_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_BETA_Q_DCOC_CAL_BETA_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_BETA_I - DCOC Calibration Beta I */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_BETA_I_DCOC_CAL_BETA_I_MASK (0x1FFFFU)
+#define XCVR_RX_DIG_DCOC_CAL_BETA_I_DCOC_CAL_BETA_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_BETA_I_DCOC_CAL_BETA_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_BETA_I_DCOC_CAL_BETA_I_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_BETA_I_DCOC_CAL_BETA_I_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_GAMMA - DCOC Calibration Gamma */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_I_MASK (0xFFFFU)
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_I_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_I_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_Q_MASK (0xFFFF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_Q_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_Q_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_GAMMA_DCOC_CAL_GAMMA_Q_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL_IIR - DCOC Calibration IIR */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR1A_IDX_MASK (0x3U)
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR1A_IDX_SHIFT (0U)
+/*! DCOC_CAL_IIR1A_IDX - DCOC Calibration IIR 1A Index
+ *  0b00..1/1
+ *  0b01..1/4
+ *  0b10..1/8
+ *  0b11..1/16
+ */
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR1A_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR1A_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR1A_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR2A_IDX_MASK (0xCU)
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR2A_IDX_SHIFT (2U)
+/*! DCOC_CAL_IIR2A_IDX - DCOC Calibration IIR 2A Index
+ *  0b00..1/1
+ *  0b01..1/4
+ *  0b10..1/8
+ *  0b11..1/16
+ */
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR2A_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR2A_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR2A_IDX_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR3A_IDX_MASK (0x30U)
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR3A_IDX_SHIFT (4U)
+/*! DCOC_CAL_IIR3A_IDX - DCOC Calibration IIR 3A Index
+ *  0b00..1/4
+ *  0b01..1/8
+ *  0b10..1/16
+ *  0b11..1/32
+ */
+#define XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR3A_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR3A_IDX_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_IIR_DCOC_CAL_IIR3A_IDX_MASK)
+/*! @} */
+
+/*! @name DCOC_CAL - DCOC Calibration Result */
+/*! @{ */
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_I_MASK (0xFFFU)
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_I_SHIFT (0U)
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_I(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_I_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_I_MASK)
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_Q_MASK (0xFFF0000U)
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_Q_SHIFT (16U)
+#define XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_Q(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_Q_SHIFT)) & XCVR_RX_DIG_DCOC_CAL_DCOC_CAL_RES_Q_MASK)
+/*! @} */
+
+/* The count of XCVR_RX_DIG_DCOC_CAL */
+#define XCVR_RX_DIG_DCOC_CAL_COUNT               (3U)
+
+/*! @name CCA_ED_LQI_CTRL_0 - RX_DIG CCA ED LQI Control Register 0 */
+/*! @{ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH_MASK (0xFFU)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH_SHIFT (0U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CORR_THRESH_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH_MASK (0xFF00U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH_SHIFT (8U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_CORR_CNTR_THRESH_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR_MASK (0xFF0000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR_SHIFT (16U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_LQI_CNTR_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ_MASK (0x3F000000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ_SHIFT (24U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_0_SNR_ADJ_MASK)
+/*! @} */
+
+/*! @name CCA_ED_LQI_CTRL_1 - RX_DIG CCA ED LQI Control Register 1 */
+/*! @{ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY_MASK (0x3FU)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY_SHIFT (0U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_DELAY_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR_MASK (0x1C0U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR_SHIFT (6U)
+/*! RSSI_NOISE_AVG_FACTOR - RSSI Noise Averaging Factor
+ *  0b000..1
+ *  0b001..64
+ *  0b010..70
+ *  0b011..128
+ *  0b100..139
+ *  0b101..256
+ *  0b110..277
+ *  0b111..512
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_RSSI_NOISE_AVG_FACTOR_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT_MASK (0xE00U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT_SHIFT (9U)
+/*! LQI_RSSI_WEIGHT - LQI RSSI Weight
+ *  0b000..2.0
+ *  0b001..2.125
+ *  0b010..2.25
+ *  0b011..2.375
+ *  0b100..2.5
+ *  0b101..2.625
+ *  0b110..2.75
+ *  0b111..2.875
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_WEIGHT_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS_MASK (0xF000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS_SHIFT (12U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_RSSI_SENS_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS_MASK (0x10000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS_SHIFT (16U)
+/*! SNR_LQI_DIS - SNR LQI Disable
+ *  0b0..Normal operation.
+ *  0b1..The RX_DIG CCA/ED/LQI block ignores the AA match input which starts an LQI measurement.
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_DIS_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE_MASK (0x20000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE_SHIFT (17U)
+/*! SEL_SNR_MODE - Select SNR Mode
+ *  0b0..SNR estimate
+ *  0b1..Mapped correlation magnitude
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SEL_SNR_MODE_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE_MASK (0x40000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE_SHIFT (18U)
+/*! MEAS_TRANS_TO_IDLE - Measurement Transition to IDLE
+ *  0b0..Module transitions to RSSI state
+ *  0b1..Module transitions to IDLE state
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MEAS_TRANS_TO_IDLE_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS_MASK (0x80000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS_SHIFT (19U)
+/*! CCA1_ED_EN_DIS - CCA1_ED_EN Disable
+ *  0b0..Normal operation
+ *  0b1..CCA1_ED_EN input is disabled
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_CCA1_ED_EN_DIS_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE_MASK (0x100000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE_SHIFT (20U)
+/*! MAN_MEAS_COMPLETE - Manual measurement complete
+ *  0b0..Normal operation
+ *  0b1..Manually asserts the measurement complete signal for the RX_DIG CCA/ED/LQI blocks. Intended to be used only for debug.
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_MAN_MEAS_COMPLETE_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_MASK (0x200000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_SHIFT (21U)
+/*! NB_WB_OVRD - Narrowband Wideband Override
+ *  0b0..RSSI forced to be in Wideband mode if NB_WB_OVRD_EN is set
+ *  0b1..RSSI forced to be in Narrowband mode if NB_WB_OVRD_EN is set
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_EN_MASK (0x400000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_EN_SHIFT (22U)
+/*! NB_WB_OVRD_EN - Narrowband Wideband Override Enable
+ *  0b0..Normal operation
+ *  0b1..RSSI narrowband/wideband selection is via NB_WB_OVRD
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_EN_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_NB_WB_OVRD_EN_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT_MASK (0xF000000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT_SHIFT (24U)
+/*! SNR_LQI_WEIGHT - SNR LQI Weight
+ *  0b0000..0.0
+ *  0b0001..1.0
+ *  0b0010..1.125
+ *  0b0011..1.25
+ *  0b0100..1.375
+ *  0b0101..1.5
+ *  0b0110..1.625
+ *  0b0111..1.75
+ *  0b1000..1.875
+ *  0b1001..2.0
+ *  0b1010..2.125
+ *  0b1011..2.25
+ *  0b1100..2.375
+ *  0b1101..2.5
+ *  0b1110..2.625
+ *  0b1111..2.75
+ */
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_SNR_LQI_WEIGHT_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS_MASK (0xF0000000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS_SHIFT (28U)
+#define XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_CTRL_1_LQI_BIAS_MASK)
+/*! @} */
+
+/*! @name CCA_ED_LQI_STAT_0 - RX_DIG CCA ED LQI Status Register 0 */
+/*! @{ */
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_LQI_OUT_MASK (0xFFU)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_LQI_OUT_SHIFT (0U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_LQI_OUT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_STAT_0_LQI_OUT_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_STAT_0_LQI_OUT_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_ED_OUT_MASK (0xFF00U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_ED_OUT_SHIFT (8U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_ED_OUT(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_STAT_0_ED_OUT_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_STAT_0_ED_OUT_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_SNR_OUT_MASK (0xFF0000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_SNR_OUT_SHIFT (16U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_SNR_OUT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_STAT_0_SNR_OUT_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_STAT_0_SNR_OUT_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_CCA1_STATE_MASK (0x1000000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_CCA1_STATE_SHIFT (24U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_CCA1_STATE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_STAT_0_CCA1_STATE_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_STAT_0_CCA1_STATE_MASK)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_MEAS_COMPLETE_MASK (0x2000000U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_MEAS_COMPLETE_SHIFT (25U)
+#define XCVR_RX_DIG_CCA_ED_LQI_STAT_0_MEAS_COMPLETE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_CCA_ED_LQI_STAT_0_MEAS_COMPLETE_SHIFT)) & XCVR_RX_DIG_CCA_ED_LQI_STAT_0_MEAS_COMPLETE_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_0 - Receive Channel Filter Coefficient 0 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_0_RX_CH_FILT_H0_MASK (0x3FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_0_RX_CH_FILT_H0_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_0_RX_CH_FILT_H0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_0_RX_CH_FILT_H0_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_0_RX_CH_FILT_H0_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_1 - Receive Channel Filter Coefficient 1 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_1_RX_CH_FILT_H1_MASK (0x3FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_1_RX_CH_FILT_H1_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_1_RX_CH_FILT_H1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_1_RX_CH_FILT_H1_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_1_RX_CH_FILT_H1_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_2 - Receive Channel Filter Coefficient 2 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_2_RX_CH_FILT_H2_MASK (0x7FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_2_RX_CH_FILT_H2_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_2_RX_CH_FILT_H2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_2_RX_CH_FILT_H2_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_2_RX_CH_FILT_H2_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_3 - Receive Channel Filter Coefficient 3 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_3_RX_CH_FILT_H3_MASK (0x7FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_3_RX_CH_FILT_H3_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_3_RX_CH_FILT_H3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_3_RX_CH_FILT_H3_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_3_RX_CH_FILT_H3_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_4 - Receive Channel Filter Coefficient 4 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_4_RX_CH_FILT_H4_MASK (0x7FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_4_RX_CH_FILT_H4_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_4_RX_CH_FILT_H4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_4_RX_CH_FILT_H4_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_4_RX_CH_FILT_H4_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_5 - Receive Channel Filter Coefficient 5 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_5_RX_CH_FILT_H5_MASK (0x7FU)
+#define XCVR_RX_DIG_RX_CHF_COEF_5_RX_CH_FILT_H5_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_5_RX_CH_FILT_H5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_5_RX_CH_FILT_H5_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_5_RX_CH_FILT_H5_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_6 - Receive Channel Filter Coefficient 6 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_6_RX_CH_FILT_H6_MASK (0xFFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_6_RX_CH_FILT_H6_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_6_RX_CH_FILT_H6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_6_RX_CH_FILT_H6_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_6_RX_CH_FILT_H6_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_7 - Receive Channel Filter Coefficient 7 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_7_RX_CH_FILT_H7_MASK (0xFFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_7_RX_CH_FILT_H7_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_7_RX_CH_FILT_H7(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_7_RX_CH_FILT_H7_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_7_RX_CH_FILT_H7_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_8 - Receive Channel Filter Coefficient 8 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_8_RX_CH_FILT_H8_MASK (0x1FFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_8_RX_CH_FILT_H8_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_8_RX_CH_FILT_H8(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_8_RX_CH_FILT_H8_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_8_RX_CH_FILT_H8_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_9 - Receive Channel Filter Coefficient 9 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_9_RX_CH_FILT_H9_MASK (0x1FFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_9_RX_CH_FILT_H9_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_9_RX_CH_FILT_H9(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_9_RX_CH_FILT_H9_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_9_RX_CH_FILT_H9_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_10 - Receive Channel Filter Coefficient 10 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_10_RX_CH_FILT_H10_MASK (0x3FFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_10_RX_CH_FILT_H10_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_10_RX_CH_FILT_H10(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_10_RX_CH_FILT_H10_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_10_RX_CH_FILT_H10_MASK)
+/*! @} */
+
+/*! @name RX_CHF_COEF_11 - Receive Channel Filter Coefficient 11 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_CHF_COEF_11_RX_CH_FILT_H11_MASK (0x3FFU)
+#define XCVR_RX_DIG_RX_CHF_COEF_11_RX_CH_FILT_H11_SHIFT (0U)
+#define XCVR_RX_DIG_RX_CHF_COEF_11_RX_CH_FILT_H11(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_CHF_COEF_11_RX_CH_FILT_H11_SHIFT)) & XCVR_RX_DIG_RX_CHF_COEF_11_RX_CH_FILT_H11_MASK)
+/*! @} */
+
+/*! @name AGC_MAN_AGC_IDX - AGC Manual AGC Index */
+/*! @{ */
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_IDX_CMP_PHY_MASK (0x1FU)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_IDX_CMP_PHY_SHIFT (0U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_IDX_CMP_PHY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_IDX_CMP_PHY_SHIFT)) & XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_IDX_CMP_PHY_MASK)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_MASK (0x1F0000U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_SHIFT (16U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_SHIFT)) & XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_MASK)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_EN_MASK (0x1000000U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_EN_SHIFT (24U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_EN_SHIFT)) & XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_MAN_IDX_EN_MASK)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_DCOC_START_PT_MASK (0x2000000U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_DCOC_START_PT_SHIFT (25U)
+#define XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_DCOC_START_PT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_DCOC_START_PT_SHIFT)) & XCVR_RX_DIG_AGC_MAN_AGC_IDX_AGC_DCOC_START_PT_MASK)
+/*! @} */
+
+/*! @name DC_RESID_CTRL - DC Residual Control */
+/*! @{ */
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_NWIN_MASK (0x7FU)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_NWIN_SHIFT (0U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_NWIN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_NWIN_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_NWIN_MASK)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE_MASK (0xF00U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE_SHIFT (8U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ITER_FREEZE_MASK)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA_MASK (0x7000U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA_SHIFT (12U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_ALPHA_MASK)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_DLY_MASK (0x70000U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_DLY_SHIFT (16U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_DLY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_DLY_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_DLY_MASK)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN_MASK (0x100000U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN_SHIFT (20U)
+/*! DC_RESID_EXT_DC_EN - DC Residual External DC Enable
+ *  0b0..External DC disable. The DC Residual activates at a delay specified by DC_RESID_DLY after an AGC gain change pulse. The DC Residual is initialized with a DC offset of 0.
+ *  0b1..External DC enable. The DC residual activates after the DCOC's tracking hold timer expires. The DC Residual is initialized with the DC estimate from the DCOC tracking estimator.
+ */
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_EXT_DC_EN_MASK)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX_MASK (0x1F000000U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX_SHIFT (24U)
+#define XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX_SHIFT)) & XCVR_RX_DIG_DC_RESID_CTRL_DC_RESID_MIN_AGC_IDX_MASK)
+/*! @} */
+
+/*! @name DC_RESID_EST - DC Residual Estimate */
+/*! @{ */
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_I_MASK (0x1FFFU)
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_I_SHIFT (0U)
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_I(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_I_SHIFT)) & XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_I_MASK)
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_Q_MASK (0x1FFF0000U)
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_Q_SHIFT (16U)
+#define XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_Q(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_Q_SHIFT)) & XCVR_RX_DIG_DC_RESID_EST_DC_RESID_OFFSET_Q_MASK)
+/*! @} */
+
+/*! @name RX_RCCAL_CTRL0 - RX RC Calibration Control0 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET_MASK (0xFU)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET_SHIFT (0U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL_MASK (0x1F0U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL_SHIFT (4U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS_MASK (0x200U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS_SHIFT (9U)
+/*! BBA_RCCAL_DIS - BBA RC Calibration Disable
+ *  0b0..BBA RC Calibration is enabled
+ *  0b1..BBA RC Calibration is disabled
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY_MASK (0x3000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY_SHIFT (12U)
+/*! RCCAL_SMP_DLY - RC Calibration Sample Delay
+ *  0b00..The comp_out signal is sampled 0 clk cycle after sample signal is deasserted
+ *  0b01..The comp_out signal is sampled 1 clk cycle after sample signal is deasserted
+ *  0b10..The comp_out signal is sampled 2 clk cycle after sample signal is deasserted
+ *  0b11..The comp_out signal is sampled 3 clk cycle after sample signal is deasserted
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV_MASK (0x8000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV_SHIFT (15U)
+/*! RCCAL_COMP_INV - RC Calibration comp_out Invert
+ *  0b0..The comp_out signal polarity is NOT inverted
+ *  0b1..The comp_out signal polarity is inverted
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET_MASK (0xF0000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET_SHIFT (16U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL_MASK (0x1F00000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL_SHIFT (20U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS_MASK (0x2000000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS_SHIFT (25U)
+/*! TZA_RCCAL_DIS - TZA RC Calibration Disable
+ *  0b0..TZA RC Calibration is enabled
+ *  0b1..TZA RC Calibration is disabled
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS_MASK)
+/*! @} */
+
+/*! @name RX_RCCAL_CTRL1 - RX RC Calibration Control1 */
+/*! @{ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET_MASK (0xFU)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET_SHIFT (0U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL_MASK (0x1F0U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL_SHIFT (4U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS_MASK (0x200U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS_SHIFT (9U)
+/*! ADC_RCCAL_DIS - ADC RC Calibration Disable
+ *  0b0..ADC RC Calibration is enabled
+ *  0b1..ADC RC Calibration is disabled
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET_MASK (0xF0000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET_SHIFT (16U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL_MASK (0x1F00000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL_SHIFT (20U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS_MASK (0x2000000U)
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS_SHIFT (25U)
+/*! BBA2_RCCAL_DIS - BBA2 RC Calibration Disable
+ *  0b0..BBA2 RC Calibration is enabled
+ *  0b1..BBA2 RC Calibration is disabled
+ */
+#define XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS_MASK)
+/*! @} */
+
+/*! @name RX_RCCAL_STAT - RX RC Calibration Status */
+/*! @{ */
+#define XCVR_RX_DIG_RX_RCCAL_STAT_RCCAL_CODE_MASK (0x1FU)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_RCCAL_CODE_SHIFT (0U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_RCCAL_CODE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_STAT_RCCAL_CODE_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_STAT_RCCAL_CODE_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_ADC_RCCAL_MASK (0x3E0U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_ADC_RCCAL_SHIFT (5U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_ADC_RCCAL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_STAT_ADC_RCCAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_STAT_ADC_RCCAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA2_RCCAL_MASK (0x7C00U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA2_RCCAL_SHIFT (10U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA2_RCCAL(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_STAT_BBA2_RCCAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_STAT_BBA2_RCCAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA_RCCAL_MASK (0x1F0000U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA_RCCAL_SHIFT (16U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_BBA_RCCAL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_STAT_BBA_RCCAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_STAT_BBA_RCCAL_MASK)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_TZA_RCCAL_MASK (0x3E00000U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_TZA_RCCAL_SHIFT (21U)
+#define XCVR_RX_DIG_RX_RCCAL_STAT_TZA_RCCAL(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_RX_RCCAL_STAT_TZA_RCCAL_SHIFT)) & XCVR_RX_DIG_RX_RCCAL_STAT_TZA_RCCAL_MASK)
+/*! @} */
+
+/*! @name AUXPLL_FCAL_CTRL - Aux PLL Frequency Calibration Control */
+/*! @{ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MANUAL_MASK (0x7FU)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MANUAL_SHIFT (0U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MANUAL_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MANUAL_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_AUXPLL_DAC_CAL_ADJUST_DIS_MASK (0x80U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_AUXPLL_DAC_CAL_ADJUST_DIS_SHIFT (7U)
+/*! AUXPLL_DAC_CAL_ADJUST_DIS - Aux PLL Frequency Calibration Disable
+ *  0b0..Calibration is enabled
+ *  0b1..Calibration is disabled
+ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_AUXPLL_DAC_CAL_ADJUST_DIS(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_AUXPLL_DAC_CAL_ADJUST_DIS_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_AUXPLL_DAC_CAL_ADJUST_DIS_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_RUN_CNT_MASK (0x100U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_RUN_CNT_SHIFT (8U)
+/*! FCAL_RUN_CNT - Aux PLL Frequency Calibration Run Count
+ *  0b0..Run count is 256 clock cycles
+ *  0b1..Run count is 512 clock cycles
+ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_RUN_CNT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_RUN_CNT_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_RUN_CNT_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_COMP_INV_MASK (0x200U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_COMP_INV_SHIFT (9U)
+/*! FCAL_COMP_INV - Aux PLL Frequency Calibration Comparison Invert
+ *  0b0..(Default) The comparison associated with the count is not inverted.
+ *  0b1..The comparison associated with the count is inverted
+ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_COMP_INV(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_COMP_INV_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_COMP_INV_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_SMP_DLY_MASK (0xC00U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_SMP_DLY_SHIFT (10U)
+/*! FCAL_SMP_DLY - Aux PLL Frequency Calibration Sample Delay
+ *  0b00..The count signal is sampled 1 clk cycle after fcal_run signal is deasserted
+ *  0b01..The count signal is sampled 2 clk cycle after fcal_run signal is deasserted
+ *  0b10..The count signal is sampled 3 clk cycle after fcal_run signal is deasserted
+ *  0b11..The count signal is sampled 4 clk cycle after fcal_run signal is deasserted
+ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_SMP_DLY(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_SMP_DLY_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_FCAL_SMP_DLY_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MASK (0x7F0000U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_SHIFT (16U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CTRL_DAC_CAL_ADJUST_MASK)
+/*! @} */
+
+/*! @name AUXPLL_FCAL_CNT6 - Aux PLL Frequency Calibration Count 6 */
+/*! @{ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_COUNT_6_MASK (0x3FFU)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_COUNT_6_SHIFT (0U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_COUNT_6(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_COUNT_6_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_COUNT_6_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_BESTDIFF_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_BESTDIFF_SHIFT (16U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_BESTDIFF(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_BESTDIFF_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT6_FCAL_BESTDIFF_MASK)
+/*! @} */
+
+/*! @name AUXPLL_FCAL_CNT5_4 - Aux PLL Frequency Calibration Count 5 and 4 */
+/*! @{ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_4_MASK (0x3FFU)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_4_SHIFT (0U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_4(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_4_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_4_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_5_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_5_SHIFT (16U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_5(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_5_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT5_4_FCAL_COUNT_5_MASK)
+/*! @} */
+
+/*! @name AUXPLL_FCAL_CNT3_2 - Aux PLL Frequency Calibration Count 3 and 2 */
+/*! @{ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_2_MASK (0x3FFU)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_2_SHIFT (0U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_2_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_2_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_3_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_3_SHIFT (16U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_3(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_3_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT3_2_FCAL_COUNT_3_MASK)
+/*! @} */
+
+/*! @name AUXPLL_FCAL_CNT1_0 - Aux PLL Frequency Calibration Count 1 and 0 */
+/*! @{ */
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_0_MASK (0x3FFU)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_0_SHIFT (0U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_0_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_0_MASK)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_1_MASK (0x3FF0000U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_1_SHIFT (16U)
+#define XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_1_SHIFT)) & XCVR_RX_DIG_AUXPLL_FCAL_CNT1_0_FCAL_COUNT_1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_RX_DIG_Register_Masks */
+
+
+/* XCVR_RX_DIG - Peripheral instance base addresses */
+/** Peripheral XCVR_RX_DIG base address */
+#define XCVR_RX_DIG_BASE                         (0x41030000u)
+/** Peripheral XCVR_RX_DIG base pointer */
+#define XCVR_RX_DIG                              ((XCVR_RX_DIG_Type *)XCVR_RX_DIG_BASE)
+/** Array initializer of XCVR_RX_DIG peripheral base addresses */
+#define XCVR_RX_DIG_BASE_ADDRS                   { XCVR_RX_DIG_BASE }
+/** Array initializer of XCVR_RX_DIG peripheral base pointers */
+#define XCVR_RX_DIG_BASE_PTRS                    { XCVR_RX_DIG }
+
+/*!
+ * @}
+ */ /* end of group XCVR_RX_DIG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_TSM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_TSM_Peripheral_Access_Layer XCVR_TSM Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_TSM - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CTRL;                              /**< TSM CONTROL, offset: 0x0 */
+  __IO uint32_t END_OF_SEQ;                        /**< TSM END OF SEQUENCE, offset: 0x4 */
+  __IO uint32_t PA_POWER;                          /**< PA POWER, offset: 0x8 */
+  __IO uint32_t PA_RAMP_TBL0;                      /**< PA RAMP TABLE 0, offset: 0xC */
+  __IO uint32_t PA_RAMP_TBL1;                      /**< PA RAMP TABLE 1, offset: 0x10 */
+  __IO uint32_t PA_RAMP_TBL2;                      /**< PA RAMP TABLE 2, offset: 0x14 */
+  __IO uint32_t PA_RAMP_TBL3;                      /**< PA RAMP TABLE 3, offset: 0x18 */
+       uint8_t RESERVED_0[8];
+  __IO uint32_t RECYCLE_COUNT;                     /**< TSM RECYCLE COUNT, offset: 0x24 */
+  __IO uint32_t FAST_CTRL1;                        /**< TSM FAST WARMUP CONTROL 1, offset: 0x28 */
+  __IO uint32_t FAST_CTRL2;                        /**< TSM FAST WARMUP CONTROL 2, offset: 0x2C */
+  __IO uint32_t TIMING00;                          /**< TSM_TIMING00, offset: 0x30 */
+  __IO uint32_t TIMING01;                          /**< TSM_TIMING01, offset: 0x34 */
+  __IO uint32_t TIMING02;                          /**< TSM_TIMING02, offset: 0x38 */
+  __IO uint32_t TIMING03;                          /**< TSM_TIMING03, offset: 0x3C */
+  __IO uint32_t TIMING04;                          /**< TSM_TIMING04, offset: 0x40 */
+  __IO uint32_t TIMING05;                          /**< TSM_TIMING05, offset: 0x44 */
+  __IO uint32_t TIMING06;                          /**< TSM_TIMING06, offset: 0x48 */
+  __IO uint32_t TIMING07;                          /**< TSM_TIMING07, offset: 0x4C */
+  __IO uint32_t TIMING08;                          /**< TSM_TIMING08, offset: 0x50 */
+  __IO uint32_t TIMING09;                          /**< TSM_TIMING09, offset: 0x54 */
+  __IO uint32_t TIMING10;                          /**< TSM_TIMING10, offset: 0x58 */
+  __IO uint32_t TIMING11;                          /**< TSM_TIMING11, offset: 0x5C */
+  __IO uint32_t TIMING12;                          /**< TSM_TIMING12, offset: 0x60 */
+  __IO uint32_t TIMING13;                          /**< TSM_TIMING13, offset: 0x64 */
+  __IO uint32_t TIMING14;                          /**< TSM_TIMING14, offset: 0x68 */
+  __IO uint32_t TIMING15;                          /**< TSM_TIMING15, offset: 0x6C */
+  __IO uint32_t TIMING16;                          /**< TSM_TIMING16, offset: 0x70 */
+  __IO uint32_t TIMING17;                          /**< TSM_TIMING17, offset: 0x74 */
+  __IO uint32_t TIMING18;                          /**< TSM_TIMING18, offset: 0x78 */
+  __IO uint32_t TIMING19;                          /**< TSM_TIMING19, offset: 0x7C */
+  __IO uint32_t TIMING20;                          /**< TSM_TIMING20, offset: 0x80 */
+  __IO uint32_t TIMING21;                          /**< TSM_TIMING21, offset: 0x84 */
+  __IO uint32_t TIMING22;                          /**< TSM_TIMING22, offset: 0x88 */
+  __IO uint32_t TIMING23;                          /**< TSM_TIMING23, offset: 0x8C */
+  __IO uint32_t TIMING24;                          /**< TSM_TIMING24, offset: 0x90 */
+  __IO uint32_t TIMING25;                          /**< TSM_TIMING25, offset: 0x94 */
+  __IO uint32_t TIMING26;                          /**< TSM_TIMING26, offset: 0x98 */
+  __IO uint32_t TIMING27;                          /**< TSM_TIMING27, offset: 0x9C */
+  __IO uint32_t TIMING28;                          /**< TSM_TIMING28, offset: 0xA0 */
+  __IO uint32_t TIMING29;                          /**< TSM_TIMING29, offset: 0xA4 */
+  __IO uint32_t TIMING30;                          /**< TSM_TIMING30, offset: 0xA8 */
+  __IO uint32_t TIMING31;                          /**< TSM_TIMING31, offset: 0xAC */
+  __IO uint32_t TIMING32;                          /**< TSM_TIMING32, offset: 0xB0 */
+  __IO uint32_t TIMING33;                          /**< TSM_TIMING33, offset: 0xB4 */
+  __IO uint32_t TIMING34;                          /**< TSM_TIMING34, offset: 0xB8 */
+  __IO uint32_t TIMING35;                          /**< TSM_TIMING35, offset: 0xBC */
+  __IO uint32_t TIMING36;                          /**< TSM_TIMING36, offset: 0xC0 */
+  __IO uint32_t TIMING37;                          /**< TSM_TIMING37, offset: 0xC4 */
+  __IO uint32_t TIMING38;                          /**< TSM_TIMING38, offset: 0xC8 */
+  __IO uint32_t TIMING39;                          /**< TSM_TIMING39, offset: 0xCC */
+  __IO uint32_t TIMING40;                          /**< TSM_TIMING40, offset: 0xD0 */
+  __IO uint32_t TIMING41;                          /**< TSM_TIMING41, offset: 0xD4 */
+  __IO uint32_t TIMING42;                          /**< TSM_TIMING42, offset: 0xD8 */
+  __IO uint32_t TIMING43;                          /**< TSM_TIMING43, offset: 0xDC */
+  __IO uint32_t TIMING44;                          /**< TSM_TIMING44, offset: 0xE0 */
+  __IO uint32_t TIMING45;                          /**< TSM_TIMING45, offset: 0xE4 */
+  __IO uint32_t TIMING46;                          /**< TSM_TIMING46, offset: 0xE8 */
+  __IO uint32_t TIMING47;                          /**< TSM_TIMING47, offset: 0xEC */
+  __IO uint32_t TIMING48;                          /**< TSM_TIMING48, offset: 0xF0 */
+  __IO uint32_t TIMING49;                          /**< TSM_TIMING49, offset: 0xF4 */
+  __IO uint32_t TIMING50;                          /**< TSM_TIMING50, offset: 0xF8 */
+  __IO uint32_t TIMING51;                          /**< TSM_TIMING51, offset: 0xFC */
+  __IO uint32_t TIMING52;                          /**< TSM_TIMING52, offset: 0x100 */
+  __IO uint32_t TIMING53;                          /**< TSM_TIMING53, offset: 0x104 */
+  __IO uint32_t TIMING54;                          /**< TSM_TIMING54, offset: 0x108 */
+  __IO uint32_t TIMING55;                          /**< TSM_TIMING55, offset: 0x10C */
+  __IO uint32_t TIMING56;                          /**< TSM_TIMING56, offset: 0x110 */
+  __IO uint32_t TIMING57;                          /**< TSM_TIMING57, offset: 0x114 */
+  __IO uint32_t TIMING58;                          /**< TSM_TIMING58, offset: 0x118 */
+  __IO uint32_t OVRD0;                             /**< TSM OVERRIDE REGISTER 0, offset: 0x11C */
+  __IO uint32_t OVRD1;                             /**< TSM OVERRIDE REGISTER 1, offset: 0x120 */
+  __IO uint32_t OVRD2;                             /**< TSM OVERRIDE REGISTER 2, offset: 0x124 */
+  __IO uint32_t OVRD3;                             /**< TSM OVERRIDE REGISTER 3, offset: 0x128 */
+} XCVR_TSM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_TSM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_TSM_Register_Masks XCVR_TSM Register Masks
+ * @{
+ */
+
+/*! @name CTRL - TSM CONTROL */
+/*! @{ */
+#define XCVR_TSM_CTRL_TSM_SOFT_RESET_MASK        (0x2U)
+#define XCVR_TSM_CTRL_TSM_SOFT_RESET_SHIFT       (1U)
+/*! TSM_SOFT_RESET - TSM Soft Reset
+ *  0b0..TSM Soft Reset removed. Normal operation.
+ *  0b1..TSM Soft Reset engaged. TSM forced to IDLE, and holds there until the bit is cleared.
+ */
+#define XCVR_TSM_CTRL_TSM_SOFT_RESET(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_TSM_SOFT_RESET_SHIFT)) & XCVR_TSM_CTRL_TSM_SOFT_RESET_MASK)
+#define XCVR_TSM_CTRL_FORCE_TX_EN_MASK           (0x4U)
+#define XCVR_TSM_CTRL_FORCE_TX_EN_SHIFT          (2U)
+/*! FORCE_TX_EN - Force Transmit Enable
+ *  0b0..TSM Idle
+ *  0b1..TSM executes a TX sequence
+ */
+#define XCVR_TSM_CTRL_FORCE_TX_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_FORCE_TX_EN_SHIFT)) & XCVR_TSM_CTRL_FORCE_TX_EN_MASK)
+#define XCVR_TSM_CTRL_FORCE_RX_EN_MASK           (0x8U)
+#define XCVR_TSM_CTRL_FORCE_RX_EN_SHIFT          (3U)
+/*! FORCE_RX_EN - Force Receive Enable
+ *  0b0..TSM Idle
+ *  0b1..TSM executes a RX sequence
+ */
+#define XCVR_TSM_CTRL_FORCE_RX_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_FORCE_RX_EN_SHIFT)) & XCVR_TSM_CTRL_FORCE_RX_EN_MASK)
+#define XCVR_TSM_CTRL_PA_RAMP_SEL_MASK           (0x30U)
+#define XCVR_TSM_CTRL_PA_RAMP_SEL_SHIFT          (4U)
+#define XCVR_TSM_CTRL_PA_RAMP_SEL(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_PA_RAMP_SEL_SHIFT)) & XCVR_TSM_CTRL_PA_RAMP_SEL_MASK)
+#define XCVR_TSM_CTRL_DATA_PADDING_EN_MASK       (0xC0U)
+#define XCVR_TSM_CTRL_DATA_PADDING_EN_SHIFT      (6U)
+/*! DATA_PADDING_EN - Data Padding Enable
+ *  0b00..Disable TX Data Padding
+ *  0b01..Enable TX Data Padding
+ */
+#define XCVR_TSM_CTRL_DATA_PADDING_EN(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_DATA_PADDING_EN_SHIFT)) & XCVR_TSM_CTRL_DATA_PADDING_EN_MASK)
+#define XCVR_TSM_CTRL_TSM_IRQ0_EN_MASK           (0x100U)
+#define XCVR_TSM_CTRL_TSM_IRQ0_EN_SHIFT          (8U)
+/*! TSM_IRQ0_EN - TSM_IRQ0 Enable/Disable bit
+ *  0b0..TSM_IRQ0 is disabled
+ *  0b1..TSM_IRQ0 is enabled
+ */
+#define XCVR_TSM_CTRL_TSM_IRQ0_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_TSM_IRQ0_EN_SHIFT)) & XCVR_TSM_CTRL_TSM_IRQ0_EN_MASK)
+#define XCVR_TSM_CTRL_TSM_IRQ1_EN_MASK           (0x200U)
+#define XCVR_TSM_CTRL_TSM_IRQ1_EN_SHIFT          (9U)
+/*! TSM_IRQ1_EN - TSM_IRQ1 Enable/Disable bit
+ *  0b0..TSM_IRQ1 is disabled
+ *  0b1..TSM_IRQ1 is enabled
+ */
+#define XCVR_TSM_CTRL_TSM_IRQ1_EN(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_TSM_IRQ1_EN_SHIFT)) & XCVR_TSM_CTRL_TSM_IRQ1_EN_MASK)
+#define XCVR_TSM_CTRL_RAMP_DN_DELAY_MASK         (0xF000U)
+#define XCVR_TSM_CTRL_RAMP_DN_DELAY_SHIFT        (12U)
+#define XCVR_TSM_CTRL_RAMP_DN_DELAY(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_RAMP_DN_DELAY_SHIFT)) & XCVR_TSM_CTRL_RAMP_DN_DELAY_MASK)
+#define XCVR_TSM_CTRL_TX_ABORT_DIS_MASK          (0x10000U)
+#define XCVR_TSM_CTRL_TX_ABORT_DIS_SHIFT         (16U)
+#define XCVR_TSM_CTRL_TX_ABORT_DIS(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_TX_ABORT_DIS_SHIFT)) & XCVR_TSM_CTRL_TX_ABORT_DIS_MASK)
+#define XCVR_TSM_CTRL_RX_ABORT_DIS_MASK          (0x20000U)
+#define XCVR_TSM_CTRL_RX_ABORT_DIS_SHIFT         (17U)
+#define XCVR_TSM_CTRL_RX_ABORT_DIS(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_RX_ABORT_DIS_SHIFT)) & XCVR_TSM_CTRL_RX_ABORT_DIS_MASK)
+#define XCVR_TSM_CTRL_ABORT_ON_CTUNE_MASK        (0x40000U)
+#define XCVR_TSM_CTRL_ABORT_ON_CTUNE_SHIFT       (18U)
+/*! ABORT_ON_CTUNE - Abort On Coarse Tune Lock Detect Failure
+ *  0b0..don't allow TSM abort on Coarse Tune Unlock Detect
+ *  0b1..allow TSM abort on Coarse Tune Unlock Detect
+ */
+#define XCVR_TSM_CTRL_ABORT_ON_CTUNE(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_ABORT_ON_CTUNE_SHIFT)) & XCVR_TSM_CTRL_ABORT_ON_CTUNE_MASK)
+#define XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP_MASK   (0x80000U)
+#define XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP_SHIFT  (19U)
+/*! ABORT_ON_CYCLE_SLIP - Abort On Cycle Slip Lock Detect Failure
+ *  0b0..don't allow TSM abort on Cycle Slip Unlock Detect
+ *  0b1..allow TSM abort on Cycle Slip Unlock Detect
+ */
+#define XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP_SHIFT)) & XCVR_TSM_CTRL_ABORT_ON_CYCLE_SLIP_MASK)
+#define XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG_MASK    (0x100000U)
+#define XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG_SHIFT   (20U)
+/*! ABORT_ON_FREQ_TARG - Abort On Frequency Target Lock Detect Failure
+ *  0b0..don't allow TSM abort on Frequency Target Unlock Detect
+ *  0b1..allow TSM abort on Frequency Target Unlock Detect
+ */
+#define XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG_SHIFT)) & XCVR_TSM_CTRL_ABORT_ON_FREQ_TARG_MASK)
+#define XCVR_TSM_CTRL_BKPT_MASK                  (0xFF000000U)
+#define XCVR_TSM_CTRL_BKPT_SHIFT                 (24U)
+#define XCVR_TSM_CTRL_BKPT(x)                    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_CTRL_BKPT_SHIFT)) & XCVR_TSM_CTRL_BKPT_MASK)
+/*! @} */
+
+/*! @name END_OF_SEQ - TSM END OF SEQUENCE */
+/*! @{ */
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WU_MASK    (0xFFU)
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WU_SHIFT   (0U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WU(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_END_OF_SEQ_END_OF_TX_WU_SHIFT)) & XCVR_TSM_END_OF_SEQ_END_OF_TX_WU_MASK)
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WD_MASK    (0xFF00U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WD_SHIFT   (8U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_TX_WD(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_END_OF_SEQ_END_OF_TX_WD_SHIFT)) & XCVR_TSM_END_OF_SEQ_END_OF_TX_WD_MASK)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WU_MASK    (0xFF0000U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WU_SHIFT   (16U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WU(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_END_OF_SEQ_END_OF_RX_WU_SHIFT)) & XCVR_TSM_END_OF_SEQ_END_OF_RX_WU_MASK)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WD_MASK    (0xFF000000U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WD_SHIFT   (24U)
+#define XCVR_TSM_END_OF_SEQ_END_OF_RX_WD(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_END_OF_SEQ_END_OF_RX_WD_SHIFT)) & XCVR_TSM_END_OF_SEQ_END_OF_RX_WD_MASK)
+/*! @} */
+
+/*! @name PA_POWER - PA POWER */
+/*! @{ */
+#define XCVR_TSM_PA_POWER_PA_POWER_MASK          (0x3FU)
+#define XCVR_TSM_PA_POWER_PA_POWER_SHIFT         (0U)
+#define XCVR_TSM_PA_POWER_PA_POWER(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_POWER_PA_POWER_SHIFT)) & XCVR_TSM_PA_POWER_PA_POWER_MASK)
+/*! @} */
+
+/*! @name PA_RAMP_TBL0 - PA RAMP TABLE 0 */
+/*! @{ */
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0_MASK      (0x3FU)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0_SHIFT     (0U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0_SHIFT)) & XCVR_TSM_PA_RAMP_TBL0_PA_RAMP0_MASK)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1_MASK      (0x3F00U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1_SHIFT     (8U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1_SHIFT)) & XCVR_TSM_PA_RAMP_TBL0_PA_RAMP1_MASK)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2_MASK      (0x3F0000U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2_SHIFT     (16U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2_SHIFT)) & XCVR_TSM_PA_RAMP_TBL0_PA_RAMP2_MASK)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3_MASK      (0x3F000000U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3_SHIFT     (24U)
+#define XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3_SHIFT)) & XCVR_TSM_PA_RAMP_TBL0_PA_RAMP3_MASK)
+/*! @} */
+
+/*! @name PA_RAMP_TBL1 - PA RAMP TABLE 1 */
+/*! @{ */
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4_MASK      (0x3FU)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4_SHIFT     (0U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4_SHIFT)) & XCVR_TSM_PA_RAMP_TBL1_PA_RAMP4_MASK)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5_MASK      (0x3F00U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5_SHIFT     (8U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5_SHIFT)) & XCVR_TSM_PA_RAMP_TBL1_PA_RAMP5_MASK)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6_MASK      (0x3F0000U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6_SHIFT     (16U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6_SHIFT)) & XCVR_TSM_PA_RAMP_TBL1_PA_RAMP6_MASK)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7_MASK      (0x3F000000U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7_SHIFT     (24U)
+#define XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7_SHIFT)) & XCVR_TSM_PA_RAMP_TBL1_PA_RAMP7_MASK)
+/*! @} */
+
+/*! @name PA_RAMP_TBL2 - PA RAMP TABLE 2 */
+/*! @{ */
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP8_MASK      (0x3FU)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP8_SHIFT     (0U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP8(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL2_PA_RAMP8_SHIFT)) & XCVR_TSM_PA_RAMP_TBL2_PA_RAMP8_MASK)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP9_MASK      (0x3F00U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP9_SHIFT     (8U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP9(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL2_PA_RAMP9_SHIFT)) & XCVR_TSM_PA_RAMP_TBL2_PA_RAMP9_MASK)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP10_MASK     (0x3F0000U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP10_SHIFT    (16U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP10(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL2_PA_RAMP10_SHIFT)) & XCVR_TSM_PA_RAMP_TBL2_PA_RAMP10_MASK)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP11_MASK     (0x3F000000U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP11_SHIFT    (24U)
+#define XCVR_TSM_PA_RAMP_TBL2_PA_RAMP11(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL2_PA_RAMP11_SHIFT)) & XCVR_TSM_PA_RAMP_TBL2_PA_RAMP11_MASK)
+/*! @} */
+
+/*! @name PA_RAMP_TBL3 - PA RAMP TABLE 3 */
+/*! @{ */
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP12_MASK     (0x3FU)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP12_SHIFT    (0U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP12(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL3_PA_RAMP12_SHIFT)) & XCVR_TSM_PA_RAMP_TBL3_PA_RAMP12_MASK)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP13_MASK     (0x3F00U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP13_SHIFT    (8U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP13(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL3_PA_RAMP13_SHIFT)) & XCVR_TSM_PA_RAMP_TBL3_PA_RAMP13_MASK)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP14_MASK     (0x3F0000U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP14_SHIFT    (16U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP14(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL3_PA_RAMP14_SHIFT)) & XCVR_TSM_PA_RAMP_TBL3_PA_RAMP14_MASK)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP15_MASK     (0x3F000000U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP15_SHIFT    (24U)
+#define XCVR_TSM_PA_RAMP_TBL3_PA_RAMP15(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_PA_RAMP_TBL3_PA_RAMP15_SHIFT)) & XCVR_TSM_PA_RAMP_TBL3_PA_RAMP15_MASK)
+/*! @} */
+
+/*! @name RECYCLE_COUNT - TSM RECYCLE COUNT */
+/*! @{ */
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT0_MASK (0xFFU)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT0_SHIFT (0U)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT0_SHIFT)) & XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT0_MASK)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT1_MASK (0xFF00U)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT1_SHIFT (8U)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT1_SHIFT)) & XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT1_MASK)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT2_MASK (0xFF0000U)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT2_SHIFT (16U)
+#define XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT2_SHIFT)) & XCVR_TSM_RECYCLE_COUNT_RECYCLE_COUNT2_MASK)
+/*! @} */
+
+/*! @name FAST_CTRL1 - TSM FAST WARMUP CONTROL 1 */
+/*! @{ */
+#define XCVR_TSM_FAST_CTRL1_FAST_TX_WU_EN_MASK   (0x1U)
+#define XCVR_TSM_FAST_CTRL1_FAST_TX_WU_EN_SHIFT  (0U)
+/*! FAST_TX_WU_EN - Fast TSM TX Warmup Enable
+ *  0b0..Fast TSM TX Warmups are disabled
+ *  0b1..Fast TSM TX Warmups are enabled, if the RF channel has not changed since the last TX warmup, and for BLE mode, the RF channel is not an advertising channel.
+ */
+#define XCVR_TSM_FAST_CTRL1_FAST_TX_WU_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL1_FAST_TX_WU_EN_SHIFT)) & XCVR_TSM_FAST_CTRL1_FAST_TX_WU_EN_MASK)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX_WU_EN_MASK   (0x2U)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX_WU_EN_SHIFT  (1U)
+/*! FAST_RX_WU_EN - Fast TSM RX Warmup Enable
+ *  0b0..Fast TSM RX Warmups are disabled
+ *  0b1..Fast TSM RX Warmups are enabled, if the RF channel has not changed since the last RX warmup, and for BLE mode, the RF channel is not an advertising channel.
+ */
+#define XCVR_TSM_FAST_CTRL1_FAST_RX_WU_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL1_FAST_RX_WU_EN_SHIFT)) & XCVR_TSM_FAST_CTRL1_FAST_RX_WU_EN_MASK)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_EN_MASK   (0x4U)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_EN_SHIFT  (2U)
+/*! FAST_RX2TX_EN - Fast TSM RX-to-TX Transition Enable
+ *  0b0..Disable Fast RX-to-TX transitions
+ *  0b1..Enable Fast RX-to-TX transitions (if fast_rx2tx_wu is asserted by 802.15.4 ZSM)
+ */
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL1_FAST_RX2TX_EN_SHIFT)) & XCVR_TSM_FAST_CTRL1_FAST_RX2TX_EN_MASK)
+#define XCVR_TSM_FAST_CTRL1_FAST_WU_CLEAR_MASK   (0x8U)
+#define XCVR_TSM_FAST_CTRL1_FAST_WU_CLEAR_SHIFT  (3U)
+#define XCVR_TSM_FAST_CTRL1_FAST_WU_CLEAR(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL1_FAST_WU_CLEAR_SHIFT)) & XCVR_TSM_FAST_CTRL1_FAST_WU_CLEAR_MASK)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_START_MASK (0xFF00U)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_START_SHIFT (8U)
+#define XCVR_TSM_FAST_CTRL1_FAST_RX2TX_START(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL1_FAST_RX2TX_START_SHIFT)) & XCVR_TSM_FAST_CTRL1_FAST_RX2TX_START_MASK)
+/*! @} */
+
+/*! @name FAST_CTRL2 - TSM FAST WARMUP CONTROL 2 */
+/*! @{ */
+#define XCVR_TSM_FAST_CTRL2_FAST_START_TX_MASK   (0xFFU)
+#define XCVR_TSM_FAST_CTRL2_FAST_START_TX_SHIFT  (0U)
+#define XCVR_TSM_FAST_CTRL2_FAST_START_TX(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL2_FAST_START_TX_SHIFT)) & XCVR_TSM_FAST_CTRL2_FAST_START_TX_MASK)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_TX_MASK    (0xFF00U)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_TX_SHIFT   (8U)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_TX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL2_FAST_DEST_TX_SHIFT)) & XCVR_TSM_FAST_CTRL2_FAST_DEST_TX_MASK)
+#define XCVR_TSM_FAST_CTRL2_FAST_START_RX_MASK   (0xFF0000U)
+#define XCVR_TSM_FAST_CTRL2_FAST_START_RX_SHIFT  (16U)
+#define XCVR_TSM_FAST_CTRL2_FAST_START_RX(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL2_FAST_START_RX_SHIFT)) & XCVR_TSM_FAST_CTRL2_FAST_START_RX_MASK)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_RX_MASK    (0xFF000000U)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_RX_SHIFT   (24U)
+#define XCVR_TSM_FAST_CTRL2_FAST_DEST_RX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_FAST_CTRL2_FAST_DEST_RX_SHIFT)) & XCVR_TSM_FAST_CTRL2_FAST_DEST_RX_MASK)
+/*! @} */
+
+/*! @name TIMING00 - TSM_TIMING00 */
+/*! @{ */
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_HI(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_LO(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING00_BB_LDO_HF_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_HI(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_LO(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING00_BB_LDO_HF_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING01 - TSM_TIMING01 */
+/*! @{ */
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING01_BB_LDO_ADCDAC_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING02 - TSM_TIMING02 */
+/*! @{ */
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING02_BB_LDO_BBA_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING03 - TSM_TIMING03 */
+/*! @{ */
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_HI(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_LO(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING03_BB_LDO_PD_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_HI(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_LO(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING03_BB_LDO_PD_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING04 - TSM_TIMING04 */
+/*! @{ */
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING04_BB_LDO_FDBK_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING05 - TSM_TIMING05 */
+/*! @{ */
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING05_BB_LDO_VCOLO_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING06 - TSM_TIMING06 */
+/*! @{ */
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING06_BB_LDO_VTREF_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING07 - TSM_TIMING07 */
+/*! @{ */
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING07_BB_LDO_FDBK_BLEED_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING08 - TSM_TIMING08 */
+/*! @{ */
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING08_BB_LDO_VCOLO_BLEED_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING09 - TSM_TIMING09 */
+/*! @{ */
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING09_BB_LDO_VCOLO_FASTCHARGE_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING10 - TSM_TIMING10 */
+/*! @{ */
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING10_BB_XTAL_PLL_REF_CLK_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING11 - TSM_TIMING11 */
+/*! @{ */
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING11_BB_XTAL_DAC_REF_CLK_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING12 - TSM_TIMING12 */
+/*! @{ */
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING12_RXTX_AUXPLL_VCO_REF_CLK_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING13 - TSM_TIMING13 */
+/*! @{ */
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_HI_SHIFT)) & XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_HI_MASK)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_LO_SHIFT)) & XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_TX_LO_MASK)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_HI_SHIFT)) & XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_HI_MASK)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_LO_SHIFT)) & XCVR_TSM_TIMING13_PLL_LOOP_IS_OPEN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING14 - TSM_TIMING14 */
+/*! @{ */
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING14_SY_PD_CYCLE_SLIP_LD_FT_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING15 - TSM_TIMING15 */
+/*! @{ */
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_HI_MASK   (0xFFU)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_HI_SHIFT  (0U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING15_SY_VCO_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING15_SY_VCO_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_LO_MASK   (0xFF00U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_LO_SHIFT  (8U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_TX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING15_SY_VCO_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING15_SY_VCO_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_HI_MASK   (0xFF0000U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_HI_SHIFT  (16U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING15_SY_VCO_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING15_SY_VCO_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_LO_MASK   (0xFF000000U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_LO_SHIFT  (24U)
+#define XCVR_TSM_TIMING15_SY_VCO_EN_RX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING15_SY_VCO_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING15_SY_VCO_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING16 - TSM_TIMING16 */
+/*! @{ */
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING16_SY_LO_RX_BUF_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING17 - TSM_TIMING17 */
+/*! @{ */
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING17_SY_LO_TX_BUF_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING18 - TSM_TIMING18 */
+/*! @{ */
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_HI_MASK  (0xFFU)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_HI(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING18_SY_DIVN_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING18_SY_DIVN_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_LO_MASK  (0xFF00U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_TX_LO(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING18_SY_DIVN_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING18_SY_DIVN_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_HI_MASK  (0xFF0000U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_HI(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING18_SY_DIVN_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING18_SY_DIVN_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_LO_MASK  (0xFF000000U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING18_SY_DIVN_EN_RX_LO(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING18_SY_DIVN_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING18_SY_DIVN_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING19 - TSM_TIMING19 */
+/*! @{ */
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING19_SY_PD_FILTER_CHARGE_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING20 - TSM_TIMING20 */
+/*! @{ */
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_HI_MASK    (0xFFU)
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_HI_SHIFT   (0U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_HI(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING20_SY_PD_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING20_SY_PD_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_LO_MASK    (0xFF00U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_LO_SHIFT   (8U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_TX_LO(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING20_SY_PD_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING20_SY_PD_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_HI_MASK    (0xFF0000U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_HI_SHIFT   (16U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_HI(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING20_SY_PD_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING20_SY_PD_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_LO_MASK    (0xFF000000U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_LO_SHIFT   (24U)
+#define XCVR_TSM_TIMING20_SY_PD_EN_RX_LO(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING20_SY_PD_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING20_SY_PD_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING21 - TSM_TIMING21 */
+/*! @{ */
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING21_SY_LO_DIVN_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING21_SY_LO_DIVN_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING22 - TSM_TIMING22 */
+/*! @{ */
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_HI(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_LO(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING22_SY_LO_RX_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING23 - TSM_TIMING23 */
+/*! @{ */
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_HI(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_LO(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING23_SY_LO_TX_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING24 - TSM_TIMING24 */
+/*! @{ */
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING24_SY_DIVN_CAL_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING25 - TSM_TIMING25 */
+/*! @{ */
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING25_RX_LNA_MIXER_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING26 - TSM_TIMING26 */
+/*! @{ */
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_HI_MASK    (0xFFU)
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_HI_SHIFT   (0U)
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_HI(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING26_TX_PA_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING26_TX_PA_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_LO_MASK    (0xFF00U)
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_LO_SHIFT   (8U)
+#define XCVR_TSM_TIMING26_TX_PA_EN_TX_LO(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING26_TX_PA_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING26_TX_PA_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING27 - TSM_TIMING27 */
+/*! @{ */
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING27_RX_ADC_I_Q_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING28 - TSM_TIMING28 */
+/*! @{ */
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING28_RX_ADC_RESET_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING29 - TSM_TIMING29 */
+/*! @{ */
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING29_RX_BBA_I_Q_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING30 - TSM_TIMING30 */
+/*! @{ */
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING30_RX_BBA_PDET_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING31 - TSM_TIMING31 */
+/*! @{ */
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING31_RX_BBA_TZA_DCOC_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING32 - TSM_TIMING32 */
+/*! @{ */
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING32_RX_TZA_I_Q_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING33 - TSM_TIMING33 */
+/*! @{ */
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING33_RX_TZA_PDET_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING34 - TSM_TIMING34 */
+/*! @{ */
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_HI_MASK  (0xFFU)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_HI(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING34_PLL_DIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING34_PLL_DIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_LO_MASK  (0xFF00U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_TX_LO(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING34_PLL_DIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING34_PLL_DIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_HI_MASK  (0xFF0000U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_HI(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING34_PLL_DIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING34_PLL_DIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_LO_MASK  (0xFF000000U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING34_PLL_DIG_EN_RX_LO(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING34_PLL_DIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING34_PLL_DIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING35 - TSM_TIMING35 */
+/*! @{ */
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_HI_MASK   (0xFFU)
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_HI_SHIFT  (0U)
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING35_TX_DIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING35_TX_DIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_LO_MASK   (0xFF00U)
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_LO_SHIFT  (8U)
+#define XCVR_TSM_TIMING35_TX_DIG_EN_TX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING35_TX_DIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING35_TX_DIG_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING36 - TSM_TIMING36 */
+/*! @{ */
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_HI_MASK   (0xFF0000U)
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_HI_SHIFT  (16U)
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING36_RX_DIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING36_RX_DIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_LO_MASK   (0xFF000000U)
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_LO_SHIFT  (24U)
+#define XCVR_TSM_TIMING36_RX_DIG_EN_RX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING36_RX_DIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING36_RX_DIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING37 - TSM_TIMING37 */
+/*! @{ */
+#define XCVR_TSM_TIMING37_RX_INIT_RX_HI_MASK     (0xFF0000U)
+#define XCVR_TSM_TIMING37_RX_INIT_RX_HI_SHIFT    (16U)
+#define XCVR_TSM_TIMING37_RX_INIT_RX_HI(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING37_RX_INIT_RX_HI_SHIFT)) & XCVR_TSM_TIMING37_RX_INIT_RX_HI_MASK)
+#define XCVR_TSM_TIMING37_RX_INIT_RX_LO_MASK     (0xFF000000U)
+#define XCVR_TSM_TIMING37_RX_INIT_RX_LO_SHIFT    (24U)
+#define XCVR_TSM_TIMING37_RX_INIT_RX_LO(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING37_RX_INIT_RX_LO_SHIFT)) & XCVR_TSM_TIMING37_RX_INIT_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING38 - TSM_TIMING38 */
+/*! @{ */
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING38_SIGMA_DELTA_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING38_SIGMA_DELTA_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING39 - TSM_TIMING39 */
+/*! @{ */
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_HI_MASK   (0xFF0000U)
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_HI_SHIFT  (16U)
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING39_RX_PHY_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING39_RX_PHY_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_LO_MASK   (0xFF000000U)
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_LO_SHIFT  (24U)
+#define XCVR_TSM_TIMING39_RX_PHY_EN_RX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING39_RX_PHY_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING39_RX_PHY_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING40 - TSM_TIMING40 */
+/*! @{ */
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_HI_MASK     (0xFF0000U)
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_HI_SHIFT    (16U)
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_HI(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING40_DCOC_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING40_DCOC_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_LO_MASK     (0xFF000000U)
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_LO_SHIFT    (24U)
+#define XCVR_TSM_TIMING40_DCOC_EN_RX_LO(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING40_DCOC_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING40_DCOC_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING41 - TSM_TIMING41 */
+/*! @{ */
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_HI_MASK   (0xFF0000U)
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_HI_SHIFT  (16U)
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_HI(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING41_DCOC_INIT_RX_HI_SHIFT)) & XCVR_TSM_TIMING41_DCOC_INIT_RX_HI_MASK)
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_LO_MASK   (0xFF000000U)
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_LO_SHIFT  (24U)
+#define XCVR_TSM_TIMING41_DCOC_INIT_RX_LO(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING41_DCOC_INIT_RX_LO_SHIFT)) & XCVR_TSM_TIMING41_DCOC_INIT_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING42 - TSM_TIMING42 */
+/*! @{ */
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING42_SAR_ADC_TRIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING43 - TSM_TIMING43 */
+/*! @{ */
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING43_TSM_SPARE0_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING43_TSM_SPARE0_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING44 - TSM_TIMING44 */
+/*! @{ */
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING44_TSM_SPARE1_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING44_TSM_SPARE1_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING45 - TSM_TIMING45 */
+/*! @{ */
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING45_TSM_SPARE2_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING45_TSM_SPARE2_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING46 - TSM_TIMING46 */
+/*! @{ */
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING46_TSM_SPARE3_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING46_TSM_SPARE3_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING47 - TSM_TIMING47 */
+/*! @{ */
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING47_GPIO0_TRIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING47_GPIO0_TRIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING48 - TSM_TIMING48 */
+/*! @{ */
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING48_GPIO1_TRIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING48_GPIO1_TRIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING49 - TSM_TIMING49 */
+/*! @{ */
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING49_GPIO2_TRIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING49_GPIO2_TRIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING50 - TSM_TIMING50 */
+/*! @{ */
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING50_GPIO3_TRIG_EN_TX_LO_MASK)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING50_GPIO3_TRIG_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING51 - TSM_TIMING51 */
+/*! @{ */
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING51_RXTX_AUXPLL_BIAS_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING52 - TSM_TIMING52 */
+/*! @{ */
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING52_RXTX_AUXPLL_FCAL_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING53 - TSM_TIMING53 */
+/*! @{ */
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING53_RXTX_AUXPLL_LF_PD_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING54 - TSM_TIMING54 */
+/*! @{ */
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING54_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING55 - TSM_TIMING55 */
+/*! @{ */
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING55_RXTX_AUXPLL_ADC_BUF_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING56 - TSM_TIMING56 */
+/*! @{ */
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING56_RXTX_AUXPLL_DIG_BUF_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING57 - TSM_TIMING57 */
+/*! @{ */
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_HI_MASK (0xFF0000U)
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_HI_SHIFT (16U)
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_HI_SHIFT)) & XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_HI_MASK)
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_LO_MASK (0xFF000000U)
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_LO_SHIFT (24U)
+#define XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_LO_SHIFT)) & XCVR_TSM_TIMING57_RXTX_RCCAL_EN_RX_LO_MASK)
+/*! @} */
+
+/*! @name TIMING58 - TSM_TIMING58 */
+/*! @{ */
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_HI_MASK (0xFFU)
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_HI_SHIFT (0U)
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_HI(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_HI_SHIFT)) & XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_HI_MASK)
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_LO_MASK (0xFF00U)
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_LO_SHIFT (8U)
+#define XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_LO(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_LO_SHIFT)) & XCVR_TSM_TIMING58_TX_HPM_DAC_EN_TX_LO_MASK)
+/*! @} */
+
+/*! @name OVRD0 - TSM OVERRIDE REGISTER 0 */
+/*! @{ */
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_EN_MASK (0x1U)
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_EN_SHIFT (0U)
+/*! BB_LDO_HF_EN_OVRD_EN - Override control for BB_LDO_HF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_HF_EN_OVRD to override the signal "bb_ldo_hf_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_EN(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_MASK    (0x2U)
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_SHIFT   (1U)
+#define XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_HF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_EN_MASK (0x4U)
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_EN_SHIFT (2U)
+/*! BB_LDO_ADCDAC_EN_OVRD_EN - Override control for BB_LDO_ADCDAC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_ADCDAC_EN_OVRD to override the signal "bb_ldo_adcdac_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_MASK (0x8U)
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_SHIFT (3U)
+#define XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_ADCDAC_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_EN_MASK (0x10U)
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_EN_SHIFT (4U)
+/*! BB_LDO_BBA_EN_OVRD_EN - Override control for BB_LDO_BBA_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_BBA_EN_OVRD to override the signal "bb_ldo_bba_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_MASK   (0x20U)
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_SHIFT  (5U)
+#define XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_BBA_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_EN_MASK (0x40U)
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_EN_SHIFT (6U)
+/*! BB_LDO_PD_EN_OVRD_EN - Override control for BB_LDO_PD_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_PD_EN_OVRD to override the signal "bb_ldo_pd_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_EN(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_MASK    (0x80U)
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_SHIFT   (7U)
+#define XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_PD_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_EN_MASK (0x100U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_EN_SHIFT (8U)
+/*! BB_LDO_FDBK_EN_OVRD_EN - Override control for BB_LDO_FDBK_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_FDBK_EN_OVRD to override the signal "bb_ldo_fdbk_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_MASK  (0x200U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_SHIFT (9U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_FDBK_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_EN_MASK (0x400U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_EN_SHIFT (10U)
+/*! BB_LDO_VCOLO_EN_OVRD_EN - Override control for BB_LDO_VCOLO_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_VCOLO_EN_OVRD to override the signal "bb_ldo_vcolo_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_MASK (0x800U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_SHIFT (11U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_EN_MASK (0x1000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_EN_SHIFT (12U)
+/*! BB_LDO_VTREF_EN_OVRD_EN - Override control for BB_LDO_VTREF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_VTREF_EN_OVRD to override the signal "bb_ldo_vtref_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_MASK (0x2000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_SHIFT (13U)
+#define XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VTREF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_EN_MASK (0x4000U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_EN_SHIFT (14U)
+/*! BB_LDO_FDBK_BLEED_EN_OVRD_EN - Override control for BB_LDO_FDBK_BLEED_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_FDBK_BLEED_EN_OVRD to override the signal "bb_ldo_fdbk_bleed_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_MASK (0x8000U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_SHIFT (15U)
+#define XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_FDBK_BLEED_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_EN_MASK (0x10000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_EN_SHIFT (16U)
+/*! BB_LDO_VCOLO_BLEED_EN_OVRD_EN - Override control for BB_LDO_VCOLO_BLEED_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_VCOLO_BLEED_EN_OVRD to override the signal "bb_ldo_vcolo_bleed_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_MASK (0x20000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_SHIFT (17U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_BLEED_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN_MASK (0x40000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN_SHIFT (18U)
+/*! BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN - Override control for BB_LDO_VCOLO_FASTCHARGE_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_LDO_VCOLO_FASTCHARGE_EN_OVRD to override the signal "bb_ldo_vcolo_fastcharge_en".
+ */
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_MASK (0x80000U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_SHIFT (19U)
+#define XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_LDO_VCOLO_FASTCHARGE_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_EN_MASK (0x100000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_EN_SHIFT (20U)
+/*! BB_XTAL_PLL_REF_CLK_EN_OVRD_EN - Override control for BB_XTAL_PLL_REF_CLK_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_XTAL_PLL_REF_CLK_EN_OVRD to override the signal "bb_xtal_pll_ref_clk_en".
+ */
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_MASK (0x200000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_SHIFT (21U)
+#define XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_PLL_REF_CLK_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_EN_MASK (0x400000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_EN_SHIFT (22U)
+/*! BB_XTAL_DAC_REF_CLK_EN_OVRD_EN - Override control for BB_XTAL_DAC_REF_CLK_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_XTAL_DAC_REF_CLK_EN_OVRD to override the signal "bb_xtal_dac_ref_clk_en".
+ */
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_MASK (0x800000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_SHIFT (23U)
+#define XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_DAC_REF_CLK_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN_MASK (0x1000000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN_SHIFT (24U)
+/*! BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN - Override control for BB_XTAL_AUXPLL_REF_CLK_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of BB_XTAL_AUXPLL_REF_CLK_EN_OVRD to override the signal "bb_xtal_auxpll_ref_clk_en".
+ */
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_MASK (0x2000000U)
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_SHIFT (25U)
+#define XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_BB_XTAL_AUXPLL_REF_CLK_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_EN_MASK (0x4000000U)
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_EN_SHIFT (26U)
+/*! PLL_LOOP_IS_OPEN_OVRD_EN - Override control for PLL_LOOP_IS_OPEN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of PLL_LOOP_IS_OPEN_OVRD to override the signal "pll_loop_is_open".
+ */
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_MASK (0x8000000U)
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_SHIFT (27U)
+#define XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_PLL_LOOP_IS_OPEN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN_MASK (0x10000000U)
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN_SHIFT (28U)
+/*! SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN - Override control for SY_PD_CYCLE_SLIP_LD_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_PD_CYCLE_SLIP_LD_EN_OVRD to override the signal "sy_pd_cycle_slip_ld_en".
+ */
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_MASK (0x20000000U)
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_SHIFT (29U)
+#define XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_SY_PD_CYCLE_SLIP_LD_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_EN_MASK    (0x40000000U)
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_EN_SHIFT   (30U)
+/*! SY_VCO_EN_OVRD_EN - Override control for SY_VCO_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_VCO_EN_OVRD to override the signal "sy_vco_en".
+ */
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_MASK       (0x80000000U)
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_SHIFT      (31U)
+#define XCVR_TSM_OVRD0_SY_VCO_EN_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD0_SY_VCO_EN_OVRD_MASK)
+/*! @} */
+
+/*! @name OVRD1 - TSM OVERRIDE REGISTER 1 */
+/*! @{ */
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_EN_MASK (0x1U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_EN_SHIFT (0U)
+/*! SY_LO_RX_BUF_EN_OVRD_EN - Override control for SY_LO_RX_BUF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_LO_RX_BUF_EN_OVRD to override the signal "sy_lo_rx_buf_en".
+ */
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_MASK (0x2U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_SHIFT (1U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_RX_BUF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_EN_MASK (0x4U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_EN_SHIFT (2U)
+/*! SY_LO_TX_BUF_EN_OVRD_EN - Override control for SY_LO_TX_BUF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_LO_TX_BUF_EN_OVRD to override the signal "sy_lo_tx_buf_en".
+ */
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_MASK (0x8U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_SHIFT (3U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_TX_BUF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_EN_MASK   (0x10U)
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_EN_SHIFT  (4U)
+/*! SY_DIVN_EN_OVRD_EN - Override control for SY_DIVN_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_DIVN_EN_OVRD to override the signal "sy_divn_en".
+ */
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_MASK      (0x20U)
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_SHIFT     (5U)
+#define XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_DIVN_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_EN_MASK (0x40U)
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_EN_SHIFT (6U)
+/*! SY_PD_FILTER_CHARGE_EN_OVRD_EN - Override control for SY_PD_FILTER_CHARGE_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_PD_FILTER_CHARGE_EN_OVRD to override the signal "sy_pd_filter_charge_en".
+ */
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_MASK (0x80U)
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_SHIFT (7U)
+#define XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_PD_FILTER_CHARGE_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD_EN_MASK     (0x100U)
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD_EN_SHIFT    (8U)
+/*! SY_PD_EN_OVRD_EN - Override control for SY_PD_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_PD_EN_OVRD to override the signal "sy_pd_en".
+ */
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD_EN(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_PD_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_PD_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD_MASK        (0x200U)
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD_SHIFT       (9U)
+#define XCVR_TSM_OVRD1_SY_PD_EN_OVRD(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_PD_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_PD_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_EN_MASK (0x400U)
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_EN_SHIFT (10U)
+/*! SY_LO_DIVN_EN_OVRD_EN - Override control for SY_LO_DIVN_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_LO_DIVN_EN_OVRD to override the signal "sy_lo_divn_en".
+ */
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_MASK   (0x800U)
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_SHIFT  (11U)
+#define XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_DIVN_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_EN_MASK  (0x1000U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_EN_SHIFT (12U)
+/*! SY_LO_RX_EN_OVRD_EN - Override control for SY_LO_RX_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_LO_RX_EN_OVRD to override the signal "sy_lo_rx_en".
+ */
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_MASK     (0x2000U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_SHIFT    (13U)
+#define XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_RX_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_EN_MASK  (0x4000U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_EN_SHIFT (14U)
+/*! SY_LO_TX_EN_OVRD_EN - Override control for SY_LO_TX_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_LO_TX_EN_OVRD to override the signal "sy_lo_tx_en".
+ */
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_MASK     (0x8000U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_SHIFT    (15U)
+#define XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_LO_TX_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_EN_MASK (0x10000U)
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_EN_SHIFT (16U)
+/*! SY_DIVN_CAL_EN_OVRD_EN - Override control for SY_DIVN_CAL_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SY_DIVN_CAL_EN_OVRD to override the signal "sy_divn_cal_en".
+ */
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_MASK  (0x20000U)
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_SHIFT (17U)
+#define XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_SY_DIVN_CAL_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_EN_MASK  (0x40000U)
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_EN_SHIFT (18U)
+/*! RX_MIXER_EN_OVRD_EN - Override control for RX_MIXER_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_MIXER_EN_OVRD to override the signal "rx_mixer_en".
+ */
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_MASK     (0x80000U)
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_SHIFT    (19U)
+#define XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_MIXER_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD_EN_MASK     (0x100000U)
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD_EN_SHIFT    (20U)
+/*! TX_PA_EN_OVRD_EN - Override control for TX_PA_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TX_PA_EN_OVRD to override the signal "tx_pa_en".
+ */
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD_EN(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_TX_PA_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_TX_PA_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD_MASK        (0x200000U)
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD_SHIFT       (21U)
+#define XCVR_TSM_OVRD1_TX_PA_EN_OVRD(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_TX_PA_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_TX_PA_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_EN_MASK  (0x400000U)
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_EN_SHIFT (22U)
+/*! RX_ADC_I_EN_OVRD_EN - Override control for RX_ADC_I_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_ADC_I_EN_OVRD to override the signal "rx_adc_i_en".
+ */
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_MASK     (0x800000U)
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_SHIFT    (23U)
+#define XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_I_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_EN_MASK  (0x1000000U)
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_EN_SHIFT (24U)
+/*! RX_ADC_Q_EN_OVRD_EN - Override control for RX_ADC_Q_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_ADC_Q_EN_OVRD to override the signal "rx_adc_q_en".
+ */
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_MASK     (0x2000000U)
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_SHIFT    (25U)
+#define XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_Q_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_EN_MASK (0x4000000U)
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_EN_SHIFT (26U)
+/*! RX_ADC_RESET_EN_OVRD_EN - Override control for RX_ADC_RESET_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_ADC_RESET_EN_OVRD to override the signal "rx_adc_reset_en".
+ */
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_MASK (0x8000000U)
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_SHIFT (27U)
+#define XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_ADC_RESET_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_EN_MASK  (0x10000000U)
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_EN_SHIFT (28U)
+/*! RX_BBA_I_EN_OVRD_EN - Override control for RX_BBA_I_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_BBA_I_EN_OVRD to override the signal "rx_bba_i_en".
+ */
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_MASK     (0x20000000U)
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_SHIFT    (29U)
+#define XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_BBA_I_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_EN_MASK  (0x40000000U)
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_EN_SHIFT (30U)
+/*! RX_BBA_Q_EN_OVRD_EN - Override control for RX_BBA_Q_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_BBA_Q_EN_OVRD to override the signal "rx_bba_q_en".
+ */
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_MASK     (0x80000000U)
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_SHIFT    (31U)
+#define XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD1_RX_BBA_Q_EN_OVRD_MASK)
+/*! @} */
+
+/*! @name OVRD2 - TSM OVERRIDE REGISTER 2 */
+/*! @{ */
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_EN_MASK (0x1U)
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_EN_SHIFT (0U)
+/*! RX_BBA_PDET_EN_OVRD_EN - Override control for RX_BBA_PDET_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_BBA_PDET_EN_OVRD to override the signal "rx_bba_pdet_en".
+ */
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_MASK  (0x2U)
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_SHIFT (1U)
+#define XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_BBA_PDET_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_EN_MASK (0x4U)
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_EN_SHIFT (2U)
+/*! RX_BBA_DCOC_EN_OVRD_EN - Override control for RX_BBA_DCOC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_BBA_DCOC_EN_OVRD to override the signal "rx_bba_dcoc_en".
+ */
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_MASK  (0x8U)
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_SHIFT (3U)
+#define XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_BBA_DCOC_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_EN_MASK    (0x10U)
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_EN_SHIFT   (4U)
+/*! RX_LNA_EN_OVRD_EN - Override control for RX_LNA_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_LNA_EN_OVRD to override the signal "rx_lna_en".
+ */
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_MASK       (0x20U)
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_SHIFT      (5U)
+#define XCVR_TSM_OVRD2_RX_LNA_EN_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_LNA_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_EN_MASK  (0x40U)
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_EN_SHIFT (6U)
+/*! RX_TZA_I_EN_OVRD_EN - Override control for RX_TZA_I_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_TZA_I_EN_OVRD to override the signal "rx_tza_i_en".
+ */
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_MASK     (0x80U)
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_SHIFT    (7U)
+#define XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_I_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_EN_MASK  (0x100U)
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_EN_SHIFT (8U)
+/*! RX_TZA_Q_EN_OVRD_EN - Override control for RX_TZA_Q_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_TZA_Q_EN_OVRD to override the signal "rx_tza_q_en".
+ */
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_EN(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_MASK     (0x200U)
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_SHIFT    (9U)
+#define XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_Q_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_EN_MASK (0x400U)
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_EN_SHIFT (10U)
+/*! RX_TZA_PDET_EN_OVRD_EN - Override control for RX_TZA_PDET_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_TZA_PDET_EN_OVRD to override the signal "rx_tza_pdet_en".
+ */
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_MASK  (0x800U)
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_SHIFT (11U)
+#define XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_PDET_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_EN_MASK (0x1000U)
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_EN_SHIFT (12U)
+/*! RX_TZA_DCOC_EN_OVRD_EN - Override control for RX_TZA_DCOC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_TZA_DCOC_EN_OVRD to override the signal "rx_tza_dcoc_en".
+ */
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_MASK  (0x2000U)
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_SHIFT (13U)
+/*! RX_TZA_DCOC_EN_OVRD - Override control for RX_TZA_DCOC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_TZA_DCOC_EN_OVRD to override the signal "rx_tza_dcoc_en".
+ */
+#define XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_TZA_DCOC_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_EN_MASK   (0x4000U)
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_EN_SHIFT  (14U)
+/*! PLL_DIG_EN_OVRD_EN - Override control for PLL_DIG_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of PLL_DIG_EN_OVRD to override the signal "pll_dig_en".
+ */
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_EN(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_MASK      (0x8000U)
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_SHIFT     (15U)
+#define XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_PLL_DIG_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_EN_MASK    (0x10000U)
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_EN_SHIFT   (16U)
+/*! TX_DIG_EN_OVRD_EN - Override control for TX_DIG_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TX_DIG_EN_OVRD to override the signal "tx_dig_en".
+ */
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_MASK       (0x20000U)
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_SHIFT      (17U)
+#define XCVR_TSM_OVRD2_TX_DIG_EN_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_TX_DIG_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_EN_MASK    (0x40000U)
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_EN_SHIFT   (18U)
+/*! RX_DIG_EN_OVRD_EN - Override control for RX_DIG_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_DIG_EN_OVRD to override the signal "rx_dig_en".
+ */
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_MASK       (0x80000U)
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_SHIFT      (19U)
+#define XCVR_TSM_OVRD2_RX_DIG_EN_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_DIG_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD_EN_MASK      (0x100000U)
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD_EN_SHIFT     (20U)
+/*! RX_INIT_OVRD_EN - Override control for RX_INIT
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_INIT_OVRD to override the signal "rx_init".
+ */
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_INIT_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_INIT_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD_MASK         (0x200000U)
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD_SHIFT        (21U)
+#define XCVR_TSM_OVRD2_RX_INIT_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_INIT_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_INIT_OVRD_MASK)
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_EN_MASK (0x400000U)
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_EN_SHIFT (22U)
+/*! SIGMA_DELTA_EN_OVRD_EN - Override control for SIGMA_DELTA_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of SIGMA_DELTA_EN_OVRD to override the signal "sigma_delta_en".
+ */
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_MASK  (0x800000U)
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_SHIFT (23U)
+#define XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_SIGMA_DELTA_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_EN_MASK    (0x1000000U)
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_EN_SHIFT   (24U)
+/*! RX_PHY_EN_OVRD_EN - Override control for RX_PHY_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_PHY_EN_OVRD to override the signal "rx_phy_en".
+ */
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_MASK       (0x2000000U)
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_SHIFT      (25U)
+#define XCVR_TSM_OVRD2_RX_PHY_EN_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_RX_PHY_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD_EN_MASK      (0x4000000U)
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD_EN_SHIFT     (26U)
+/*! DCOC_EN_OVRD_EN - Override control for DCOC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of DCOC_EN_OVRD to override the signal "dcoc_en".
+ */
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_DCOC_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_DCOC_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD_MASK         (0x8000000U)
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD_SHIFT        (27U)
+#define XCVR_TSM_OVRD2_DCOC_EN_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_DCOC_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_DCOC_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD_EN_MASK    (0x10000000U)
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD_EN_SHIFT   (28U)
+/*! DCOC_INIT_OVRD_EN - Override control for DCOC_INIT
+ *  0b0..Normal operation.
+ *  0b1..Use the state of DCOC_INIT_OVRD to override the signal "dcoc_init".
+ */
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_DCOC_INIT_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_DCOC_INIT_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD_MASK       (0x20000000U)
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD_SHIFT      (29U)
+#define XCVR_TSM_OVRD2_DCOC_INIT_OVRD(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_DCOC_INIT_OVRD_SHIFT)) & XCVR_TSM_OVRD2_DCOC_INIT_OVRD_MASK)
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN_MASK (0x40000000U)
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN_SHIFT (30U)
+/*! FREQ_TARG_LD_EN_OVRD_EN - Override control for FREQ_TARG_LD_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of FREQ_TARG_LD_EN_OVRD to override the signal "freq_targ_ld_en".
+ */
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_MASK (0x80000000U)
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_SHIFT (31U)
+#define XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD2_FREQ_TARG_LD_EN_OVRD_MASK)
+/*! @} */
+
+/*! @name OVRD3 - TSM OVERRIDE REGISTER 3 */
+/*! @{ */
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_EN_MASK (0x1U)
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_EN_SHIFT (0U)
+/*! TSM_SPARE0_EN_OVRD_EN - Override control for TSM_SPARE0_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TSM_SPARE0_EN_OVRD to override the signal "tsm_spare0_en".
+ */
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_MASK   (0x2U)
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_SHIFT  (1U)
+#define XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE0_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_EN_MASK (0x4U)
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_EN_SHIFT (2U)
+/*! TSM_SPARE1_EN_OVRD_EN - Override control for TSM_SPARE1_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TSM_SPARE1_EN_OVRD to override the signal "tsm_spare1_en".
+ */
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_MASK   (0x8U)
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_SHIFT  (3U)
+#define XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE1_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_EN_MASK (0x10U)
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_EN_SHIFT (4U)
+/*! TSM_SPARE2_EN_OVRD_EN - Override control for TSM_SPARE2_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TSM_SPARE2_EN_OVRD to override the signal "tsm_spare2_en".
+ */
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_MASK   (0x20U)
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_SHIFT  (5U)
+#define XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE2_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_EN_MASK (0x40U)
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_EN_SHIFT (6U)
+/*! TSM_SPARE3_EN_OVRD_EN - Override control for TSM_SPARE3_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TSM_SPARE3_EN_OVRD to override the signal "tsm_spare3_en".
+ */
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_MASK   (0x80U)
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_SHIFT  (7U)
+#define XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TSM_SPARE3_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_EN_MASK (0x100U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_EN_SHIFT (8U)
+/*! RXTX_AUXPLL_BIAS_EN_OVRD_EN - Override control for RXTX_AUXPLL_BIAS_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_BIAS_EN_OVRD to override the signal "rxtx_auxpll_bias_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_MASK (0x200U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_SHIFT (9U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_BIAS_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_EN_MASK (0x400U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_EN_SHIFT (10U)
+/*! RXTX_AUXPLL_VCO_EN_OVRD_EN - Override control for RXTX_AUXPLL_VCO_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_VCO_EN_OVRD to override the signal "rxtx_auxpll_vco_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_MASK (0x800U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_SHIFT (11U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_VCO_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_EN_MASK (0x1000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_EN_SHIFT (12U)
+/*! RXTX_AUXPLL_FCAL_EN_OVRD_EN - Override control for RXTX_AUXPLL_FCAL_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_FCAL_EN_OVRD to override the signal "rxtx_auxpll_fcal_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_MASK (0x2000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_SHIFT (13U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_FCAL_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_EN_MASK (0x4000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_EN_SHIFT (14U)
+/*! RXTX_AUXPLL_LF_EN_OVRD_EN - Override control for RXTX_AUXPLL_LF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_LF_EN_OVRD to override the signal "rxtx_auxpll_lf_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_MASK (0x8000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_SHIFT (15U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_LF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_EN_MASK (0x10000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_EN_SHIFT (16U)
+/*! RXTX_AUXPLL_PD_EN_OVRD_EN - Override control for RXTX_AUXPLL_PD_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_PD_EN_OVRD to override the signal "rxtx_auxpll_pd_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_MASK (0x20000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_SHIFT (17U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN_MASK (0x40000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN_SHIFT (18U)
+/*! RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN - Override control for RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD to override the signal "rxtx_auxpll_pd_lf_filter_charge_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_MASK (0x80000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_SHIFT (19U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_PD_LF_FILTER_CHARGE_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN_MASK (0x100000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN_SHIFT (20U)
+/*! RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN - Override control for RXTX_AUXPLL_ADC_BUF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_ADC_BUF_EN_OVRD to override the signal "rxtx_auxpll_adc_buf_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_MASK (0x200000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_SHIFT (21U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_ADC_BUF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN_MASK (0x400000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN_SHIFT (22U)
+/*! RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN - Override control for RXTX_AUXPLL_DIG_BUF_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_AUXPLL_DIG_BUF_EN_OVRD to override the signal "rxtx_auxpll_dig_buf_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_MASK (0x800000U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_SHIFT (23U)
+#define XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_AUXPLL_DIG_BUF_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_EN_MASK (0x1000000U)
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_EN_SHIFT (24U)
+/*! RXTX_RCCAL_EN_OVRD_EN - Override control for RXTX_RCCAL_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RXTX_RCCAL_EN_OVRD to override the signal "rxtx_rccal_en".
+ */
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_MASK   (0x2000000U)
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_SHIFT  (25U)
+#define XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RXTX_RCCAL_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_EN_MASK (0x4000000U)
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_EN_SHIFT (26U)
+/*! TX_HPM_DAC_EN_OVRD_EN - Override control for TX_HPM_DAC_EN
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TX_HPM_DAC_EN_OVRD to override the signal "tx_hpm_dac_en".
+ */
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_MASK   (0x8000000U)
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_SHIFT  (27U)
+#define XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TX_HPM_DAC_EN_OVRD_MASK)
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD_EN_MASK      (0x10000000U)
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD_EN_SHIFT     (28U)
+/*! TX_MODE_OVRD_EN - Override control for TX_MODE
+ *  0b0..Normal operation.
+ *  0b1..Use the state of TX_MODE_OVRD to override the signal "tx_mode".
+ */
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TX_MODE_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_TX_MODE_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD_MASK         (0x20000000U)
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD_SHIFT        (29U)
+#define XCVR_TSM_OVRD3_TX_MODE_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_TX_MODE_OVRD_SHIFT)) & XCVR_TSM_OVRD3_TX_MODE_OVRD_MASK)
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD_EN_MASK      (0x40000000U)
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD_EN_SHIFT     (30U)
+/*! RX_MODE_OVRD_EN - Override control for RX_MODE
+ *  0b0..Normal operation.
+ *  0b1..Use the state of RX_MODE_OVRD to override the signal "rx_mode".
+ */
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD_EN(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RX_MODE_OVRD_EN_SHIFT)) & XCVR_TSM_OVRD3_RX_MODE_OVRD_EN_MASK)
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD_MASK         (0x80000000U)
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD_SHIFT        (31U)
+#define XCVR_TSM_OVRD3_RX_MODE_OVRD(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_TSM_OVRD3_RX_MODE_OVRD_SHIFT)) & XCVR_TSM_OVRD3_RX_MODE_OVRD_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_TSM_Register_Masks */
+
+
+/* XCVR_TSM - Peripheral instance base addresses */
+/** Peripheral XCVR_TSM base address */
+#define XCVR_TSM_BASE                            (0x410302C0u)
+/** Peripheral XCVR_TSM base pointer */
+#define XCVR_TSM                                 ((XCVR_TSM_Type *)XCVR_TSM_BASE)
+/** Array initializer of XCVR_TSM peripheral base addresses */
+#define XCVR_TSM_BASE_ADDRS                      { XCVR_TSM_BASE }
+/** Array initializer of XCVR_TSM peripheral base pointers */
+#define XCVR_TSM_BASE_PTRS                       { XCVR_TSM }
+
+/*!
+ * @}
+ */ /* end of group XCVR_TSM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_TX_DIG Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_TX_DIG_Peripheral_Access_Layer XCVR_TX_DIG Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_TX_DIG - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CTRL;                              /**< TX Digital Control, offset: 0x0 */
+  __IO uint32_t DATA_PADDING;                      /**< TX Data Padding, offset: 0x4 */
+  __IO uint32_t GFSK_CTRL;                         /**< TX GFSK Modulator Control, offset: 0x8 */
+  __IO uint32_t GFSK_COEFF2;                       /**< TX GFSK Filter Coefficients 2, offset: 0xC */
+  __IO uint32_t GFSK_COEFF1;                       /**< TX GFSK Filter Coefficients 1, offset: 0x10 */
+  __IO uint32_t FSK_SCALE;                         /**< TX FSK Modulation Levels, offset: 0x14 */
+  __IO uint32_t DFT_PATTERN;                       /**< TX DFT Modulation Pattern, offset: 0x18 */
+} XCVR_TX_DIG_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_TX_DIG Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_TX_DIG_Register_Masks XCVR_TX_DIG Register Masks
+ * @{
+ */
+
+/*! @name CTRL - TX Digital Control */
+/*! @{ */
+#define XCVR_TX_DIG_CTRL_RADIO_DFT_MODE_MASK     (0xFU)
+#define XCVR_TX_DIG_CTRL_RADIO_DFT_MODE_SHIFT    (0U)
+/*! RADIO_DFT_MODE - Radio DFT Modes
+ *  0b0000..Normal Radio Operation, DFT not engaged.
+ *  0b0001..Carrier Frequency Only
+ *  0b0010..Pattern Register GFSK
+ *  0b0011..LFSR GFSK
+ *  0b0100..Pattern Register FSK
+ *  0b0101..LFSR FSK
+ *  0b0110..Pattern Register O-QPSK
+ *  0b0111..LFSR O-QPSK
+ *  0b1000..LFSR 802.15.4 Symbols
+ *  0b1001..PLL Modulation from RAM
+ *  0b1010..PLL Coarse Tune BIST
+ *  0b1011..PLL Frequency Synthesizer BIST
+ *  0b1100..High Port DAC BIST
+ *  0b1101..VCO Frequency Meter
+ *  0b1110..Reserved
+ *  0b1111..Reserved
+ */
+#define XCVR_TX_DIG_CTRL_RADIO_DFT_MODE(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_RADIO_DFT_MODE_SHIFT)) & XCVR_TX_DIG_CTRL_RADIO_DFT_MODE_MASK)
+#define XCVR_TX_DIG_CTRL_LFSR_LENGTH_MASK        (0x70U)
+#define XCVR_TX_DIG_CTRL_LFSR_LENGTH_SHIFT       (4U)
+/*! LFSR_LENGTH - LFSR Length
+ *  0b000..LFSR 9, tap mask 100010000
+ *  0b001..LFSR 10, tap mask 1001000000
+ *  0b010..LFSR 11, tap mask 11101000000
+ *  0b011..LFSR 13, tap mask 1101100000000
+ *  0b100..LFSR 15, tap mask 111010000000000
+ *  0b101..LFSR 17, tap mask 11110000000000000
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define XCVR_TX_DIG_CTRL_LFSR_LENGTH(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_LFSR_LENGTH_SHIFT)) & XCVR_TX_DIG_CTRL_LFSR_LENGTH_MASK)
+#define XCVR_TX_DIG_CTRL_LFSR_EN_MASK            (0x80U)
+#define XCVR_TX_DIG_CTRL_LFSR_EN_SHIFT           (7U)
+#define XCVR_TX_DIG_CTRL_LFSR_EN(x)              (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_LFSR_EN_SHIFT)) & XCVR_TX_DIG_CTRL_LFSR_EN_MASK)
+#define XCVR_TX_DIG_CTRL_DFT_CLK_SEL_MASK        (0x700U)
+#define XCVR_TX_DIG_CTRL_DFT_CLK_SEL_SHIFT       (8U)
+/*! DFT_CLK_SEL - DFT Clock Selection
+ *  0b000..62.5 kHz
+ *  0b001..125 kHz
+ *  0b010..250 kHz
+ *  0b011..500 kHz
+ *  0b100..1 MHz
+ *  0b101..2 MHz
+ *  0b110..4 MHz
+ *  0b111..RF OSC Clock
+ */
+#define XCVR_TX_DIG_CTRL_DFT_CLK_SEL(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_DFT_CLK_SEL_SHIFT)) & XCVR_TX_DIG_CTRL_DFT_CLK_SEL_MASK)
+#define XCVR_TX_DIG_CTRL_TX_DFT_EN_MASK          (0x800U)
+#define XCVR_TX_DIG_CTRL_TX_DFT_EN_SHIFT         (11U)
+#define XCVR_TX_DIG_CTRL_TX_DFT_EN(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_TX_DFT_EN_SHIFT)) & XCVR_TX_DIG_CTRL_TX_DFT_EN_MASK)
+#define XCVR_TX_DIG_CTRL_SOC_TEST_SEL_MASK       (0x3000U)
+#define XCVR_TX_DIG_CTRL_SOC_TEST_SEL_SHIFT      (12U)
+/*! SOC_TEST_SEL - Radio Clock Selector for SoC RF Clock Tests
+ *  0b00..No Clock Selected
+ *  0b01..PLL Sigma Delta Clock, divided by 2
+ *  0b10..Auxiliary PLL Clock, divided by 2
+ *  0b11..RF Ref Osc clock, divided by 2
+ */
+#define XCVR_TX_DIG_CTRL_SOC_TEST_SEL(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_SOC_TEST_SEL_SHIFT)) & XCVR_TX_DIG_CTRL_SOC_TEST_SEL_MASK)
+#define XCVR_TX_DIG_CTRL_TX_CAPTURE_POL_MASK     (0x10000U)
+#define XCVR_TX_DIG_CTRL_TX_CAPTURE_POL_SHIFT    (16U)
+#define XCVR_TX_DIG_CTRL_TX_CAPTURE_POL(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_TX_CAPTURE_POL_SHIFT)) & XCVR_TX_DIG_CTRL_TX_CAPTURE_POL_MASK)
+#define XCVR_TX_DIG_CTRL_ZERO_FDEV_MASK          (0x80000U)
+#define XCVR_TX_DIG_CTRL_ZERO_FDEV_SHIFT         (19U)
+#define XCVR_TX_DIG_CTRL_ZERO_FDEV(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_ZERO_FDEV_SHIFT)) & XCVR_TX_DIG_CTRL_ZERO_FDEV_MASK)
+#define XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ_MASK      (0xFFC00000U)
+#define XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ_SHIFT     (22U)
+#define XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ_SHIFT)) & XCVR_TX_DIG_CTRL_FREQ_WORD_ADJ_MASK)
+/*! @} */
+
+/*! @name DATA_PADDING - TX Data Padding */
+/*! @{ */
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0_MASK (0xFFU)
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0_SHIFT (0U)
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0_SHIFT)) & XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_0_MASK)
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1_MASK (0xFF00U)
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1_SHIFT (8U)
+#define XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1_SHIFT)) & XCVR_TX_DIG_DATA_PADDING_DATA_PADDING_PAT_1_MASK)
+#define XCVR_TX_DIG_DATA_PADDING_DFT_LFSR_OUT_MASK (0x7FFF0000U)
+#define XCVR_TX_DIG_DATA_PADDING_DFT_LFSR_OUT_SHIFT (16U)
+#define XCVR_TX_DIG_DATA_PADDING_DFT_LFSR_OUT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_DATA_PADDING_DFT_LFSR_OUT_SHIFT)) & XCVR_TX_DIG_DATA_PADDING_DFT_LFSR_OUT_MASK)
+#define XCVR_TX_DIG_DATA_PADDING_LRM_MASK        (0x80000000U)
+#define XCVR_TX_DIG_DATA_PADDING_LRM_SHIFT       (31U)
+#define XCVR_TX_DIG_DATA_PADDING_LRM(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_DATA_PADDING_LRM_SHIFT)) & XCVR_TX_DIG_DATA_PADDING_LRM_MASK)
+/*! @} */
+
+/*! @name GFSK_CTRL - TX GFSK Modulator Control */
+/*! @{ */
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL_MASK (0xFFFFU)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL_SHIFT (0U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MI_MASK       (0x30000U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MI_SHIFT      (16U)
+/*! GFSK_MI - GFSK Modulation Index
+ *  0b00..0.32
+ *  0b01..0.50
+ *  0b10..0.70
+ *  0b11..1.00
+ */
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MI(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_GFSK_MI_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_GFSK_MI_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD_MASK      (0x100000U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD_SHIFT     (20U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD_MASK      (0x200000U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD_SHIFT     (21U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING_MASK (0x7000000U)
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING_SHIFT (24U)
+/*! GFSK_MOD_INDEX_SCALING - GFSK Modulation Index Scaling Factor
+ *  0b000..1
+ *  0b001..1 + 1/32
+ *  0b010..1 + 1/16
+ *  0b011..1 + 1/8
+ *  0b100..1 - 1/32
+ *  0b101..1 - 1/16
+ *  0b110..1 - 1/8
+ *  0b111..Reserved
+ */
+#define XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN_MASK (0x10000000U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN_SHIFT (28U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD_MASK (0x20000000U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD_SHIFT (29U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD_MASK (0x40000000U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD_SHIFT (30U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD_MASK)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD_MASK (0x80000000U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD_SHIFT (31U)
+#define XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD_SHIFT)) & XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD_MASK)
+/*! @} */
+
+/*! @name GFSK_COEFF2 - TX GFSK Filter Coefficients 2 */
+/*! @{ */
+#define XCVR_TX_DIG_GFSK_COEFF2_GFSK_FILTER_COEFF_MANUAL2_MASK (0xFFFFFFFFU)
+#define XCVR_TX_DIG_GFSK_COEFF2_GFSK_FILTER_COEFF_MANUAL2_SHIFT (0U)
+#define XCVR_TX_DIG_GFSK_COEFF2_GFSK_FILTER_COEFF_MANUAL2(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_COEFF2_GFSK_FILTER_COEFF_MANUAL2_SHIFT)) & XCVR_TX_DIG_GFSK_COEFF2_GFSK_FILTER_COEFF_MANUAL2_MASK)
+/*! @} */
+
+/*! @name GFSK_COEFF1 - TX GFSK Filter Coefficients 1 */
+/*! @{ */
+#define XCVR_TX_DIG_GFSK_COEFF1_GFSK_FILTER_COEFF_MANUAL1_MASK (0xFFFFFFFFU)
+#define XCVR_TX_DIG_GFSK_COEFF1_GFSK_FILTER_COEFF_MANUAL1_SHIFT (0U)
+#define XCVR_TX_DIG_GFSK_COEFF1_GFSK_FILTER_COEFF_MANUAL1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_GFSK_COEFF1_GFSK_FILTER_COEFF_MANUAL1_SHIFT)) & XCVR_TX_DIG_GFSK_COEFF1_GFSK_FILTER_COEFF_MANUAL1_MASK)
+/*! @} */
+
+/*! @name FSK_SCALE - TX FSK Modulation Levels */
+/*! @{ */
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0_MASK (0x1FFFU)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0_SHIFT (0U)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0_SHIFT)) & XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0_MASK)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1_MASK (0x1FFF0000U)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1_SHIFT (16U)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1_SHIFT)) & XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1_MASK)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_BITRATE_SCALE_DISABLE_MASK (0x80000000U)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_BITRATE_SCALE_DISABLE_SHIFT (31U)
+#define XCVR_TX_DIG_FSK_SCALE_FSK_BITRATE_SCALE_DISABLE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_FSK_SCALE_FSK_BITRATE_SCALE_DISABLE_SHIFT)) & XCVR_TX_DIG_FSK_SCALE_FSK_BITRATE_SCALE_DISABLE_MASK)
+/*! @} */
+
+/*! @name DFT_PATTERN - TX DFT Modulation Pattern */
+/*! @{ */
+#define XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN_MASK (0xFFFFFFFFU)
+#define XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN_SHIFT (0U)
+#define XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN(x) (((uint32_t)(((uint32_t)(x)) << XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN_SHIFT)) & XCVR_TX_DIG_DFT_PATTERN_DFT_MOD_PATTERN_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_TX_DIG_Register_Masks */
+
+
+/* XCVR_TX_DIG - Peripheral instance base addresses */
+/** Peripheral XCVR_TX_DIG base address */
+#define XCVR_TX_DIG_BASE                         (0x41030200u)
+/** Peripheral XCVR_TX_DIG base pointer */
+#define XCVR_TX_DIG                              ((XCVR_TX_DIG_Type *)XCVR_TX_DIG_BASE)
+/** Array initializer of XCVR_TX_DIG peripheral base addresses */
+#define XCVR_TX_DIG_BASE_ADDRS                   { XCVR_TX_DIG_BASE }
+/** Array initializer of XCVR_TX_DIG peripheral base pointers */
+#define XCVR_TX_DIG_BASE_PTRS                    { XCVR_TX_DIG }
+
+/*!
+ * @}
+ */ /* end of group XCVR_TX_DIG_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_WOR Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_WOR_Peripheral_Access_Layer XCVR_WOR Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_WOR - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t WOR_CTRL;                          /**< WAKE-ON-RADIO CONTROL REGISTER, offset: 0x0 */
+  __IO uint32_t WOR_TIMEOUT;                       /**< WAKE-ON-RADIO TIMEOUT REGISTER, offset: 0x4 */
+  __I  uint32_t TIMESTAMP1;                        /**< WAKE-ON-RADIO TIMESTAMP 1, offset: 0x8 */
+  __I  uint32_t TIMESTAMP2;                        /**< WAKE-ON-RADIO TIMESTAMP 2, offset: 0xC */
+  __I  uint32_t TIMESTAMP3;                        /**< WAKE-ON-RADIO TIMESTAMP 3, offset: 0x10 */
+  __I  uint32_t WOR_STATUS;                        /**< WAKE-ON-RADIO STATUS REGISTER, offset: 0x14 */
+  __IO uint32_t WW_CTRL;                           /**< WINDOW-WIDENING CONTROL REGISTER, offset: 0x18 */
+  __IO uint32_t HOP_CTRL;                          /**< FREQUENCY HOP CONTROL REGISTER, offset: 0x1C */
+  __IO uint32_t SLOT0_DESC0;                       /**< SLOT 0 DESCRIPTOR (LSB), offset: 0x20 */
+  __IO uint32_t SLOT0_DESC1;                       /**< SLOT 0 DESCRIPTOR (MSB), offset: 0x24 */
+  __IO uint32_t SLOT1_DESC0;                       /**< SLOT 1 DESCRIPTOR (LSB), offset: 0x28 */
+  __IO uint32_t SLOT1_DESC1;                       /**< SLOT 1 DESCRIPTOR (MSB), offset: 0x2C */
+  __IO uint32_t SLOT2_DESC0;                       /**< SLOT 2 DESCRIPTOR (LSB), offset: 0x30 */
+  __IO uint32_t SLOT2_DESC1;                       /**< SLOT 2 DESCRIPTOR (MSB), offset: 0x34 */
+  __IO uint32_t SLOT3_DESC0;                       /**< SLOT 3 DESCRIPTOR (LSB), offset: 0x38 */
+  __IO uint32_t SLOT3_DESC1;                       /**< SLOT 3 DESCRIPTOR (MSB), offset: 0x3C */
+} XCVR_WOR_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_WOR Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_WOR_Register_Masks XCVR_WOR Register Masks
+ * @{
+ */
+
+/*! @name WOR_CTRL - WAKE-ON-RADIO CONTROL REGISTER */
+/*! @{ */
+#define XCVR_WOR_WOR_CTRL_WOR_EN_MASK            (0x1U)
+#define XCVR_WOR_WOR_CTRL_WOR_EN_SHIFT           (0U)
+#define XCVR_WOR_WOR_CTRL_WOR_EN(x)              (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_WOR_EN_SHIFT)) & XCVR_WOR_WOR_CTRL_WOR_EN_MASK)
+#define XCVR_WOR_WOR_CTRL_SCHEDULING_MODE_MASK   (0x2U)
+#define XCVR_WOR_WOR_CTRL_SCHEDULING_MODE_SHIFT  (1U)
+#define XCVR_WOR_WOR_CTRL_SCHEDULING_MODE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_SCHEDULING_MODE_SHIFT)) & XCVR_WOR_WOR_CTRL_SCHEDULING_MODE_MASK)
+#define XCVR_WOR_WOR_CTRL_WOR_PROTOCOL_MASK      (0xCU)
+#define XCVR_WOR_WOR_CTRL_WOR_PROTOCOL_SHIFT     (2U)
+#define XCVR_WOR_WOR_CTRL_WOR_PROTOCOL(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_WOR_PROTOCOL_SHIFT)) & XCVR_WOR_WOR_CTRL_WOR_PROTOCOL_MASK)
+#define XCVR_WOR_WOR_CTRL_SLOTS_USED_MASK        (0x70U)
+#define XCVR_WOR_WOR_CTRL_SLOTS_USED_SHIFT       (4U)
+#define XCVR_WOR_WOR_CTRL_SLOTS_USED(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_SLOTS_USED_SHIFT)) & XCVR_WOR_WOR_CTRL_SLOTS_USED_MASK)
+#define XCVR_WOR_WOR_CTRL_SKIP_FIRST_DSM_MASK    (0x80U)
+#define XCVR_WOR_WOR_CTRL_SKIP_FIRST_DSM_SHIFT   (7U)
+#define XCVR_WOR_WOR_CTRL_SKIP_FIRST_DSM(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_SKIP_FIRST_DSM_SHIFT)) & XCVR_WOR_WOR_CTRL_SKIP_FIRST_DSM_MASK)
+#define XCVR_WOR_WOR_CTRL_DSM_GUARDBAND_MASK     (0xF0000U)
+#define XCVR_WOR_WOR_CTRL_DSM_GUARDBAND_SHIFT    (16U)
+#define XCVR_WOR_WOR_CTRL_DSM_GUARDBAND(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_DSM_GUARDBAND_SHIFT)) & XCVR_WOR_WOR_CTRL_DSM_GUARDBAND_MASK)
+#define XCVR_WOR_WOR_CTRL_WOR_RESUME_MASK        (0x1000000U)
+#define XCVR_WOR_WOR_CTRL_WOR_RESUME_SHIFT       (24U)
+#define XCVR_WOR_WOR_CTRL_WOR_RESUME(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_WOR_RESUME_SHIFT)) & XCVR_WOR_WOR_CTRL_WOR_RESUME_MASK)
+#define XCVR_WOR_WOR_CTRL_WOR_DEBUG_REG_MASK     (0x2000000U)
+#define XCVR_WOR_WOR_CTRL_WOR_DEBUG_REG_SHIFT    (25U)
+#define XCVR_WOR_WOR_CTRL_WOR_DEBUG_REG(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_CTRL_WOR_DEBUG_REG_SHIFT)) & XCVR_WOR_WOR_CTRL_WOR_DEBUG_REG_MASK)
+/*! @} */
+
+/*! @name WOR_TIMEOUT - WAKE-ON-RADIO TIMEOUT REGISTER */
+/*! @{ */
+#define XCVR_WOR_WOR_TIMEOUT_RECEIVE_TIMEOUT_MASK (0xFFFFU)
+#define XCVR_WOR_WOR_TIMEOUT_RECEIVE_TIMEOUT_SHIFT (0U)
+#define XCVR_WOR_WOR_TIMEOUT_RECEIVE_TIMEOUT(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_TIMEOUT_RECEIVE_TIMEOUT_SHIFT)) & XCVR_WOR_WOR_TIMEOUT_RECEIVE_TIMEOUT_MASK)
+#define XCVR_WOR_WOR_TIMEOUT_WAKE_ON_NTH_SLOT_MASK (0xFF0000U)
+#define XCVR_WOR_WOR_TIMEOUT_WAKE_ON_NTH_SLOT_SHIFT (16U)
+#define XCVR_WOR_WOR_TIMEOUT_WAKE_ON_NTH_SLOT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_TIMEOUT_WAKE_ON_NTH_SLOT_SHIFT)) & XCVR_WOR_WOR_TIMEOUT_WAKE_ON_NTH_SLOT_MASK)
+#define XCVR_WOR_WOR_TIMEOUT_WOR_SLOT_COUNT_MASK (0xFF000000U)
+#define XCVR_WOR_WOR_TIMEOUT_WOR_SLOT_COUNT_SHIFT (24U)
+#define XCVR_WOR_WOR_TIMEOUT_WOR_SLOT_COUNT(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_TIMEOUT_WOR_SLOT_COUNT_SHIFT)) & XCVR_WOR_WOR_TIMEOUT_WOR_SLOT_COUNT_MASK)
+/*! @} */
+
+/*! @name TIMESTAMP1 - WAKE-ON-RADIO TIMESTAMP 1 */
+/*! @{ */
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1_FRAC_MASK (0xFFU)
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1_FRAC_SHIFT (0U)
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1_FRAC(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP1_TIMESTAMP1_FRAC_SHIFT)) & XCVR_WOR_TIMESTAMP1_TIMESTAMP1_FRAC_MASK)
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1_MASK      (0xFFFFFF00U)
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1_SHIFT     (8U)
+#define XCVR_WOR_TIMESTAMP1_TIMESTAMP1(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP1_TIMESTAMP1_SHIFT)) & XCVR_WOR_TIMESTAMP1_TIMESTAMP1_MASK)
+/*! @} */
+
+/*! @name TIMESTAMP2 - WAKE-ON-RADIO TIMESTAMP 2 */
+/*! @{ */
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2_FRAC_MASK (0xFFU)
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2_FRAC_SHIFT (0U)
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2_FRAC(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP2_TIMESTAMP2_FRAC_SHIFT)) & XCVR_WOR_TIMESTAMP2_TIMESTAMP2_FRAC_MASK)
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2_MASK      (0xFFFFFF00U)
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2_SHIFT     (8U)
+#define XCVR_WOR_TIMESTAMP2_TIMESTAMP2(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP2_TIMESTAMP2_SHIFT)) & XCVR_WOR_TIMESTAMP2_TIMESTAMP2_MASK)
+/*! @} */
+
+/*! @name TIMESTAMP3 - WAKE-ON-RADIO TIMESTAMP 3 */
+/*! @{ */
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3_FRAC_MASK (0xFFU)
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3_FRAC_SHIFT (0U)
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3_FRAC(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP3_TIMESTAMP3_FRAC_SHIFT)) & XCVR_WOR_TIMESTAMP3_TIMESTAMP3_FRAC_MASK)
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3_MASK      (0xFFFFFF00U)
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3_SHIFT     (8U)
+#define XCVR_WOR_TIMESTAMP3_TIMESTAMP3(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_TIMESTAMP3_TIMESTAMP3_SHIFT)) & XCVR_WOR_TIMESTAMP3_TIMESTAMP3_MASK)
+/*! @} */
+
+/*! @name WOR_STATUS - WAKE-ON-RADIO STATUS REGISTER */
+/*! @{ */
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP0_STS_MASK  (0x7U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP0_STS_SHIFT (0U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP0_STS(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_TIMESTAMP0_STS_SHIFT)) & XCVR_WOR_WOR_STATUS_TIMESTAMP0_STS_MASK)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP1_STS_MASK  (0x38U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP1_STS_SHIFT (3U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP1_STS(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_TIMESTAMP1_STS_SHIFT)) & XCVR_WOR_WOR_STATUS_TIMESTAMP1_STS_MASK)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP2_STS_MASK  (0x1C0U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP2_STS_SHIFT (6U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP2_STS(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_TIMESTAMP2_STS_SHIFT)) & XCVR_WOR_WOR_STATUS_TIMESTAMP2_STS_MASK)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP3_STS_MASK  (0xE00U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP3_STS_SHIFT (9U)
+#define XCVR_WOR_WOR_STATUS_TIMESTAMP3_STS(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_TIMESTAMP3_STS_SHIFT)) & XCVR_WOR_WOR_STATUS_TIMESTAMP3_STS_MASK)
+#define XCVR_WOR_WOR_STATUS_SLOT_MASK            (0x3000U)
+#define XCVR_WOR_WOR_STATUS_SLOT_SHIFT           (12U)
+#define XCVR_WOR_WOR_STATUS_SLOT(x)              (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_SLOT_SHIFT)) & XCVR_WOR_WOR_STATUS_SLOT_MASK)
+#define XCVR_WOR_WOR_STATUS_WOR_NO_RF_FLAG_MASK  (0x10000U)
+#define XCVR_WOR_WOR_STATUS_WOR_NO_RF_FLAG_SHIFT (16U)
+#define XCVR_WOR_WOR_STATUS_WOR_NO_RF_FLAG(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_WOR_NO_RF_FLAG_SHIFT)) & XCVR_WOR_WOR_STATUS_WOR_NO_RF_FLAG_MASK)
+#define XCVR_WOR_WOR_STATUS_WOR_MAX_SLOT_FLAG_MASK (0x20000U)
+#define XCVR_WOR_WOR_STATUS_WOR_MAX_SLOT_FLAG_SHIFT (17U)
+#define XCVR_WOR_WOR_STATUS_WOR_MAX_SLOT_FLAG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_WOR_MAX_SLOT_FLAG_SHIFT)) & XCVR_WOR_WOR_STATUS_WOR_MAX_SLOT_FLAG_MASK)
+#define XCVR_WOR_WOR_STATUS_WOR_DSM_EXIT_FLAG_MASK (0x40000U)
+#define XCVR_WOR_WOR_STATUS_WOR_DSM_EXIT_FLAG_SHIFT (18U)
+#define XCVR_WOR_WOR_STATUS_WOR_DSM_EXIT_FLAG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_WOR_DSM_EXIT_FLAG_SHIFT)) & XCVR_WOR_WOR_STATUS_WOR_DSM_EXIT_FLAG_MASK)
+#define XCVR_WOR_WOR_STATUS_WOR_STATE_MASK       (0xF00000U)
+#define XCVR_WOR_WOR_STATUS_WOR_STATE_SHIFT      (20U)
+#define XCVR_WOR_WOR_STATUS_WOR_STATE(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WOR_STATUS_WOR_STATE_SHIFT)) & XCVR_WOR_WOR_STATUS_WOR_STATE_MASK)
+/*! @} */
+
+/*! @name WW_CTRL - WINDOW-WIDENING CONTROL REGISTER */
+/*! @{ */
+#define XCVR_WOR_WW_CTRL_WW_EN_MASK              (0x1U)
+#define XCVR_WOR_WW_CTRL_WW_EN_SHIFT             (0U)
+#define XCVR_WOR_WW_CTRL_WW_EN(x)                (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_EN_SHIFT)) & XCVR_WOR_WW_CTRL_WW_EN_MASK)
+#define XCVR_WOR_WW_CTRL_WW_RESET_ON_RX_MASK     (0x2U)
+#define XCVR_WOR_WW_CTRL_WW_RESET_ON_RX_SHIFT    (1U)
+#define XCVR_WOR_WW_CTRL_WW_RESET_ON_RX(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_RESET_ON_RX_SHIFT)) & XCVR_WOR_WW_CTRL_WW_RESET_ON_RX_MASK)
+#define XCVR_WOR_WW_CTRL_WW_NULL_MASK            (0x4U)
+#define XCVR_WOR_WW_CTRL_WW_NULL_SHIFT           (2U)
+#define XCVR_WOR_WW_CTRL_WW_NULL(x)              (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_NULL_SHIFT)) & XCVR_WOR_WW_CTRL_WW_NULL_MASK)
+#define XCVR_WOR_WW_CTRL_WW_ADD_MASK             (0x8U)
+#define XCVR_WOR_WW_CTRL_WW_ADD_SHIFT            (3U)
+#define XCVR_WOR_WW_CTRL_WW_ADD(x)               (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_ADD_SHIFT)) & XCVR_WOR_WW_CTRL_WW_ADD_MASK)
+#define XCVR_WOR_WW_CTRL_WW_DSM_FACTOR_MASK      (0x1F00U)
+#define XCVR_WOR_WW_CTRL_WW_DSM_FACTOR_SHIFT     (8U)
+#define XCVR_WOR_WW_CTRL_WW_DSM_FACTOR(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_DSM_FACTOR_SHIFT)) & XCVR_WOR_WW_CTRL_WW_DSM_FACTOR_MASK)
+#define XCVR_WOR_WW_CTRL_WW_RUN_FACTOR_MASK      (0x1F0000U)
+#define XCVR_WOR_WW_CTRL_WW_RUN_FACTOR_SHIFT     (16U)
+#define XCVR_WOR_WW_CTRL_WW_RUN_FACTOR(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_RUN_FACTOR_SHIFT)) & XCVR_WOR_WW_CTRL_WW_RUN_FACTOR_MASK)
+#define XCVR_WOR_WW_CTRL_WW_INCREASE_MASK        (0xFF000000U)
+#define XCVR_WOR_WW_CTRL_WW_INCREASE_SHIFT       (24U)
+#define XCVR_WOR_WW_CTRL_WW_INCREASE(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_WW_CTRL_WW_INCREASE_SHIFT)) & XCVR_WOR_WW_CTRL_WW_INCREASE_MASK)
+/*! @} */
+
+/*! @name HOP_CTRL - FREQUENCY HOP CONTROL REGISTER */
+/*! @{ */
+#define XCVR_WOR_HOP_CTRL_HOP_TBL_CFG_MASK       (0x7U)
+#define XCVR_WOR_HOP_CTRL_HOP_TBL_CFG_SHIFT      (0U)
+#define XCVR_WOR_HOP_CTRL_HOP_TBL_CFG(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_HOP_CTRL_HOP_TBL_CFG_SHIFT)) & XCVR_WOR_HOP_CTRL_HOP_TBL_CFG_MASK)
+#define XCVR_WOR_HOP_CTRL_NEW_HOP_IDX_MASK       (0x7F00U)
+#define XCVR_WOR_HOP_CTRL_NEW_HOP_IDX_SHIFT      (8U)
+#define XCVR_WOR_HOP_CTRL_NEW_HOP_IDX(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_HOP_CTRL_NEW_HOP_IDX_SHIFT)) & XCVR_WOR_HOP_CTRL_NEW_HOP_IDX_MASK)
+#define XCVR_WOR_HOP_CTRL_UPDATE_HOP_IDX_MASK    (0x8000U)
+#define XCVR_WOR_HOP_CTRL_UPDATE_HOP_IDX_SHIFT   (15U)
+#define XCVR_WOR_HOP_CTRL_UPDATE_HOP_IDX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_HOP_CTRL_UPDATE_HOP_IDX_SHIFT)) & XCVR_WOR_HOP_CTRL_UPDATE_HOP_IDX_MASK)
+#define XCVR_WOR_HOP_CTRL_HOP_SEQ_LENGTH_MASK    (0x7F0000U)
+#define XCVR_WOR_HOP_CTRL_HOP_SEQ_LENGTH_SHIFT   (16U)
+#define XCVR_WOR_HOP_CTRL_HOP_SEQ_LENGTH(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_HOP_CTRL_HOP_SEQ_LENGTH_SHIFT)) & XCVR_WOR_HOP_CTRL_HOP_SEQ_LENGTH_MASK)
+/*! @} */
+
+/*! @name SLOT0_DESC0 - SLOT 0 DESCRIPTOR (LSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT0_DESC0_SLOT0_DESC0_MASK    (0xFFFFFFF0U)
+#define XCVR_WOR_SLOT0_DESC0_SLOT0_DESC0_SHIFT   (4U)
+#define XCVR_WOR_SLOT0_DESC0_SLOT0_DESC0(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT0_DESC0_SLOT0_DESC0_SHIFT)) & XCVR_WOR_SLOT0_DESC0_SLOT0_DESC0_MASK)
+/*! @} */
+
+/*! @name SLOT0_DESC1 - SLOT 0 DESCRIPTOR (MSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT0_DESC1_SLOT0_DESC1_MASK    (0x1FU)
+#define XCVR_WOR_SLOT0_DESC1_SLOT0_DESC1_SHIFT   (0U)
+#define XCVR_WOR_SLOT0_DESC1_SLOT0_DESC1(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT0_DESC1_SLOT0_DESC1_SHIFT)) & XCVR_WOR_SLOT0_DESC1_SLOT0_DESC1_MASK)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_IDX_MASK    (0x7F00U)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_IDX_SHIFT   (8U)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_IDX(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT0_DESC1_WOR_HOP_IDX_SHIFT)) & XCVR_WOR_SLOT0_DESC1_WOR_HOP_IDX_MASK)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_FREQ_WORD_MASK (0xFFFF0000U)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_FREQ_WORD_SHIFT (16U)
+#define XCVR_WOR_SLOT0_DESC1_WOR_HOP_FREQ_WORD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT0_DESC1_WOR_HOP_FREQ_WORD_SHIFT)) & XCVR_WOR_SLOT0_DESC1_WOR_HOP_FREQ_WORD_MASK)
+/*! @} */
+
+/*! @name SLOT1_DESC0 - SLOT 1 DESCRIPTOR (LSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT1_DESC0_SLOT1_DESC0_MASK    (0xFFFFFFF0U)
+#define XCVR_WOR_SLOT1_DESC0_SLOT1_DESC0_SHIFT   (4U)
+#define XCVR_WOR_SLOT1_DESC0_SLOT1_DESC0(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT1_DESC0_SLOT1_DESC0_SHIFT)) & XCVR_WOR_SLOT1_DESC0_SLOT1_DESC0_MASK)
+/*! @} */
+
+/*! @name SLOT1_DESC1 - SLOT 1 DESCRIPTOR (MSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT1_DESC1_SLOT1_DESC1_MASK    (0x1FU)
+#define XCVR_WOR_SLOT1_DESC1_SLOT1_DESC1_SHIFT   (0U)
+#define XCVR_WOR_SLOT1_DESC1_SLOT1_DESC1(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT1_DESC1_SLOT1_DESC1_SHIFT)) & XCVR_WOR_SLOT1_DESC1_SLOT1_DESC1_MASK)
+/*! @} */
+
+/*! @name SLOT2_DESC0 - SLOT 2 DESCRIPTOR (LSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT2_DESC0_SLOT2_DESC0_MASK    (0xFFFFFFF0U)
+#define XCVR_WOR_SLOT2_DESC0_SLOT2_DESC0_SHIFT   (4U)
+#define XCVR_WOR_SLOT2_DESC0_SLOT2_DESC0(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT2_DESC0_SLOT2_DESC0_SHIFT)) & XCVR_WOR_SLOT2_DESC0_SLOT2_DESC0_MASK)
+/*! @} */
+
+/*! @name SLOT2_DESC1 - SLOT 2 DESCRIPTOR (MSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT2_DESC1_SLOT2_DESC1_MASK    (0x1FU)
+#define XCVR_WOR_SLOT2_DESC1_SLOT2_DESC1_SHIFT   (0U)
+#define XCVR_WOR_SLOT2_DESC1_SLOT2_DESC1(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT2_DESC1_SLOT2_DESC1_SHIFT)) & XCVR_WOR_SLOT2_DESC1_SLOT2_DESC1_MASK)
+/*! @} */
+
+/*! @name SLOT3_DESC0 - SLOT 3 DESCRIPTOR (LSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT3_DESC0_SLOT3_DESC0_MASK    (0xFFFFFFF0U)
+#define XCVR_WOR_SLOT3_DESC0_SLOT3_DESC0_SHIFT   (4U)
+#define XCVR_WOR_SLOT3_DESC0_SLOT3_DESC0(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT3_DESC0_SLOT3_DESC0_SHIFT)) & XCVR_WOR_SLOT3_DESC0_SLOT3_DESC0_MASK)
+/*! @} */
+
+/*! @name SLOT3_DESC1 - SLOT 3 DESCRIPTOR (MSB) */
+/*! @{ */
+#define XCVR_WOR_SLOT3_DESC1_SLOT3_DESC1_MASK    (0x1FU)
+#define XCVR_WOR_SLOT3_DESC1_SLOT3_DESC1_SHIFT   (0U)
+#define XCVR_WOR_SLOT3_DESC1_SLOT3_DESC1(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_WOR_SLOT3_DESC1_SLOT3_DESC1_SHIFT)) & XCVR_WOR_SLOT3_DESC1_SLOT3_DESC1_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_WOR_Register_Masks */
+
+
+/* XCVR_WOR - Peripheral instance base addresses */
+/** Peripheral XCVR_WOR base address */
+#define XCVR_WOR_BASE                            (0x410304C0u)
+/** Peripheral XCVR_WOR base pointer */
+#define XCVR_WOR                                 ((XCVR_WOR_Type *)XCVR_WOR_BASE)
+/** Array initializer of XCVR_WOR peripheral base addresses */
+#define XCVR_WOR_BASE_ADDRS                      { XCVR_WOR_BASE }
+/** Array initializer of XCVR_WOR peripheral base pointers */
+#define XCVR_WOR_BASE_PTRS                       { XCVR_WOR }
+
+/*!
+ * @}
+ */ /* end of group XCVR_WOR_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_ZBDEM Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_ZBDEM_Peripheral_Access_Layer XCVR_ZBDEM Peripheral Access Layer
+ * @{
+ */
+
+/** XCVR_ZBDEM - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CORR_CTRL;                         /**< 802.15.4 DEMOD CORRELATOR CONTROL, offset: 0x0 */
+  __IO uint32_t PN_TYPE;                           /**< 802.15.4 DEMOD PN TYPE, offset: 0x4 */
+  __IO uint32_t PN_CODE;                           /**< 802.15.4 DEMOD PN CODE, offset: 0x8 */
+  __IO uint32_t SYNC_CTRL;                         /**< 802.15.4 DEMOD SYMBOL SYNC CONTROL, offset: 0xC */
+  __IO uint32_t CCA_LQI_SRC;                       /**< 802.15.4 CCA/LQI SOURCE, offset: 0x10 */
+  __IO uint32_t FAD_LPPS_THR;                      /**< FAD CORRELATOR THRESHOLD, offset: 0x14 */
+  __IO uint32_t ZBDEM_AFC;                         /**< 802.15.4 AFC STATUS, offset: 0x18 */
+  __IO uint32_t CCA2_CTRL;                         /**< CCA MODE 2 CONTROL REGISTER, offset: 0x1C */
+  __IO uint32_t CCA2_THRESH;                       /**< CCA MODE 2 CONTROL REGISTER, offset: 0x20 */
+  __I  uint32_t CCA2_STATUS;                       /**< CCA MODE 2 STATUS REGISTER, offset: 0x24 */
+} XCVR_ZBDEM_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XCVR_ZBDEM Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XCVR_ZBDEM_Register_Masks XCVR_ZBDEM Register Masks
+ * @{
+ */
+
+/*! @name CORR_CTRL - 802.15.4 DEMOD CORRELATOR CONTROL */
+/*! @{ */
+#define XCVR_ZBDEM_CORR_CTRL_CORR_VT_MASK        (0xFFU)
+#define XCVR_ZBDEM_CORR_CTRL_CORR_VT_SHIFT       (0U)
+#define XCVR_ZBDEM_CORR_CTRL_CORR_VT(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_CORR_VT_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_CORR_VT_MASK)
+#define XCVR_ZBDEM_CORR_CTRL_CORR_NVAL_MASK      (0x700U)
+#define XCVR_ZBDEM_CORR_CTRL_CORR_NVAL_SHIFT     (8U)
+#define XCVR_ZBDEM_CORR_CTRL_CORR_NVAL(x)        (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_CORR_NVAL_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_CORR_NVAL_MASK)
+#define XCVR_ZBDEM_CORR_CTRL_MAX_CORR_EN_MASK    (0x800U)
+#define XCVR_ZBDEM_CORR_CTRL_MAX_CORR_EN_SHIFT   (11U)
+#define XCVR_ZBDEM_CORR_CTRL_MAX_CORR_EN(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_MAX_CORR_EN_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_MAX_CORR_EN_MASK)
+#define XCVR_ZBDEM_CORR_CTRL_ZBDEM_CLK_ON_MASK   (0x8000U)
+#define XCVR_ZBDEM_CORR_CTRL_ZBDEM_CLK_ON_SHIFT  (15U)
+/*! ZBDEM_CLK_ON - Force 802.15.4 Demodulator Clock On
+ *  0b0..Normal Operation
+ *  0b1..Force 802.15.4 Demodulator Clock On (debug purposes only)
+ */
+#define XCVR_ZBDEM_CORR_CTRL_ZBDEM_CLK_ON(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_ZBDEM_CLK_ON_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_ZBDEM_CLK_ON_MASK)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_CORR_MASK    (0xFF0000U)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_CORR_SHIFT   (16U)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_CORR(x)      (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_RX_MAX_CORR_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_RX_MAX_CORR_MASK)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_PREAMBLE_MASK (0xFF000000U)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_PREAMBLE_SHIFT (24U)
+#define XCVR_ZBDEM_CORR_CTRL_RX_MAX_PREAMBLE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CORR_CTRL_RX_MAX_PREAMBLE_SHIFT)) & XCVR_ZBDEM_CORR_CTRL_RX_MAX_PREAMBLE_MASK)
+/*! @} */
+
+/*! @name PN_TYPE - 802.15.4 DEMOD PN TYPE */
+/*! @{ */
+#define XCVR_ZBDEM_PN_TYPE_PN_TYPE_MASK          (0x1U)
+#define XCVR_ZBDEM_PN_TYPE_PN_TYPE_SHIFT         (0U)
+#define XCVR_ZBDEM_PN_TYPE_PN_TYPE(x)            (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_PN_TYPE_PN_TYPE_SHIFT)) & XCVR_ZBDEM_PN_TYPE_PN_TYPE_MASK)
+#define XCVR_ZBDEM_PN_TYPE_TX_INV_MASK           (0x2U)
+#define XCVR_ZBDEM_PN_TYPE_TX_INV_SHIFT          (1U)
+#define XCVR_ZBDEM_PN_TYPE_TX_INV(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_PN_TYPE_TX_INV_SHIFT)) & XCVR_ZBDEM_PN_TYPE_TX_INV_MASK)
+/*! @} */
+
+/*! @name PN_CODE - 802.15.4 DEMOD PN CODE */
+/*! @{ */
+#define XCVR_ZBDEM_PN_CODE_PN_LSB_MASK           (0xFFFFU)
+#define XCVR_ZBDEM_PN_CODE_PN_LSB_SHIFT          (0U)
+#define XCVR_ZBDEM_PN_CODE_PN_LSB(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_PN_CODE_PN_LSB_SHIFT)) & XCVR_ZBDEM_PN_CODE_PN_LSB_MASK)
+#define XCVR_ZBDEM_PN_CODE_PN_MSB_MASK           (0xFFFF0000U)
+#define XCVR_ZBDEM_PN_CODE_PN_MSB_SHIFT          (16U)
+#define XCVR_ZBDEM_PN_CODE_PN_MSB(x)             (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_PN_CODE_PN_MSB_SHIFT)) & XCVR_ZBDEM_PN_CODE_PN_MSB_MASK)
+/*! @} */
+
+/*! @name SYNC_CTRL - 802.15.4 DEMOD SYMBOL SYNC CONTROL */
+/*! @{ */
+#define XCVR_ZBDEM_SYNC_CTRL_SYNC_PER_MASK       (0x7U)
+#define XCVR_ZBDEM_SYNC_CTRL_SYNC_PER_SHIFT      (0U)
+#define XCVR_ZBDEM_SYNC_CTRL_SYNC_PER(x)         (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_SYNC_CTRL_SYNC_PER_SHIFT)) & XCVR_ZBDEM_SYNC_CTRL_SYNC_PER_MASK)
+#define XCVR_ZBDEM_SYNC_CTRL_TRACK_ENABLE_MASK   (0x8U)
+#define XCVR_ZBDEM_SYNC_CTRL_TRACK_ENABLE_SHIFT  (3U)
+/*! TRACK_ENABLE - TRACK_ENABLE
+ *  0b0..symbol timing synchronization tracking disabled in Rx frontend
+ *  0b1..symbol timing synchronization tracking enabled in Rx frontend (default)
+ */
+#define XCVR_ZBDEM_SYNC_CTRL_TRACK_ENABLE(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_SYNC_CTRL_TRACK_ENABLE_SHIFT)) & XCVR_ZBDEM_SYNC_CTRL_TRACK_ENABLE_MASK)
+/*! @} */
+
+/*! @name CCA_LQI_SRC - 802.15.4 CCA/LQI SOURCE */
+/*! @{ */
+#define XCVR_ZBDEM_CCA_LQI_SRC_CCA1_FROM_RX_DIG_MASK (0x1U)
+#define XCVR_ZBDEM_CCA_LQI_SRC_CCA1_FROM_RX_DIG_SHIFT (0U)
+/*! CCA1_FROM_RX_DIG - Selects the Source of CCA1 (Clear Channel Assessment Mode 1) Information Provided to the 802.15.4 Link Layer
+ *  0b0..Use the CCA1 information computed internally in the 802.15.4 Demod
+ *  0b1..Use the CCA1 information computed by the RX Digital
+ */
+#define XCVR_ZBDEM_CCA_LQI_SRC_CCA1_FROM_RX_DIG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA_LQI_SRC_CCA1_FROM_RX_DIG_SHIFT)) & XCVR_ZBDEM_CCA_LQI_SRC_CCA1_FROM_RX_DIG_MASK)
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_FROM_RX_DIG_MASK (0x2U)
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_FROM_RX_DIG_SHIFT (1U)
+/*! LQI_FROM_RX_DIG - Selects the Source of LQI (Link Quality Indicator) Information Provided to the 802.15.4 Link Layer
+ *  0b0..Use the LQI information computed internally in the 802.15.4 Demod
+ *  0b1..Use the LQI information computed by the RX Digital
+ */
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_FROM_RX_DIG(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA_LQI_SRC_LQI_FROM_RX_DIG_SHIFT)) & XCVR_ZBDEM_CCA_LQI_SRC_LQI_FROM_RX_DIG_MASK)
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_START_AT_SFD_MASK (0x4U)
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_START_AT_SFD_SHIFT (2U)
+/*! LQI_START_AT_SFD - Select Start Point for LQI Computation
+ *  0b0..Start LQI computation at Preamble Detection (similar to previous NXP 802.15.4 products)
+ *  0b1..Start LQI computation at SFD (Start of Frame Delimiter) Detection
+ */
+#define XCVR_ZBDEM_CCA_LQI_SRC_LQI_START_AT_SFD(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA_LQI_SRC_LQI_START_AT_SFD_SHIFT)) & XCVR_ZBDEM_CCA_LQI_SRC_LQI_START_AT_SFD_MASK)
+#define XCVR_ZBDEM_CCA_LQI_SRC_ZBDEM_CCA_CLK_ON_MASK (0x8U)
+#define XCVR_ZBDEM_CCA_LQI_SRC_ZBDEM_CCA_CLK_ON_SHIFT (3U)
+#define XCVR_ZBDEM_CCA_LQI_SRC_ZBDEM_CCA_CLK_ON(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA_LQI_SRC_ZBDEM_CCA_CLK_ON_SHIFT)) & XCVR_ZBDEM_CCA_LQI_SRC_ZBDEM_CCA_CLK_ON_MASK)
+/*! @} */
+
+/*! @name FAD_LPPS_THR - FAD CORRELATOR THRESHOLD */
+/*! @{ */
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_THR_MASK     (0xFFU)
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_THR_SHIFT    (0U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_THR(x)       (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_FAD_LPPS_THR_FAD_THR_SHIFT)) & XCVR_ZBDEM_FAD_LPPS_THR_FAD_THR_MASK)
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_FILL1_MASK   (0x7F00U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_FILL1_SHIFT  (8U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_FAD_FILL1(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_FAD_LPPS_THR_FAD_FILL1_SHIFT)) & XCVR_ZBDEM_FAD_LPPS_THR_FAD_FILL1_MASK)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_FILL_COUNT_MASK (0x7F0000U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_FILL_COUNT_SHIFT (16U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_FILL_COUNT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_FAD_LPPS_THR_LPPS_FILL_COUNT_SHIFT)) & XCVR_ZBDEM_FAD_LPPS_THR_LPPS_FILL_COUNT_MASK)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_LP_EN_COUNT_MASK (0x7F000000U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_LP_EN_COUNT_SHIFT (24U)
+#define XCVR_ZBDEM_FAD_LPPS_THR_LPPS_LP_EN_COUNT(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_FAD_LPPS_THR_LPPS_LP_EN_COUNT_SHIFT)) & XCVR_ZBDEM_FAD_LPPS_THR_LPPS_LP_EN_COUNT_MASK)
+/*! @} */
+
+/*! @name ZBDEM_AFC - 802.15.4 AFC STATUS */
+/*! @{ */
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_EN_MASK         (0x1U)
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_EN_SHIFT        (0U)
+/*! AFC_EN - AFC_EN
+ *  0b0..AFC is disabled
+ *  0b1..AFC is enabled
+ */
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_EN(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_ZBDEM_AFC_AFC_EN_SHIFT)) & XCVR_ZBDEM_ZBDEM_AFC_AFC_EN_MASK)
+#define XCVR_ZBDEM_ZBDEM_AFC_DCD_EN_MASK         (0x2U)
+#define XCVR_ZBDEM_ZBDEM_AFC_DCD_EN_SHIFT        (1U)
+/*! DCD_EN - DCD_EN
+ *  0b0..NCD Mode (default)
+ *  0b1..DCD Mode
+ */
+#define XCVR_ZBDEM_ZBDEM_AFC_DCD_EN(x)           (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_ZBDEM_AFC_DCD_EN_SHIFT)) & XCVR_ZBDEM_ZBDEM_AFC_DCD_EN_MASK)
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_OUT_MASK        (0x1F00U)
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_OUT_SHIFT       (8U)
+#define XCVR_ZBDEM_ZBDEM_AFC_AFC_OUT(x)          (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_ZBDEM_AFC_AFC_OUT_SHIFT)) & XCVR_ZBDEM_ZBDEM_AFC_AFC_OUT_MASK)
+/*! @} */
+
+/*! @name CCA2_CTRL - CCA MODE 2 CONTROL REGISTER */
+/*! @{ */
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_INTERVAL_MASK  (0x3U)
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_INTERVAL_SHIFT (0U)
+/*! CCA2_INTERVAL - CCA Mode 2 Measurement Window Duration
+ *  0b00..64 us
+ *  0b01..128 us
+ *  0b10..256 us
+ *  0b11..512 us
+ */
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_INTERVAL(x)    (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_CTRL_CCA2_INTERVAL_SHIFT)) & XCVR_ZBDEM_CCA2_CTRL_CCA2_INTERVAL_MASK)
+#define XCVR_ZBDEM_CCA2_CTRL_USE_DEMOD_CCA2_MASK (0x4U)
+#define XCVR_ZBDEM_CCA2_CTRL_USE_DEMOD_CCA2_SHIFT (2U)
+/*! USE_DEMOD_CCA2 - Selects CCA Mode 2 Computation Engine
+ *  0b0..Use standalone (new) CCA Mode 2 Engine, decoupled from demodulator
+ *  0b1..Use 802.15.4 demodulator-based (legacy) CCA Mode 2 Engine (default)
+ */
+#define XCVR_ZBDEM_CCA2_CTRL_USE_DEMOD_CCA2(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_CTRL_USE_DEMOD_CCA2_SHIFT)) & XCVR_ZBDEM_CCA2_CTRL_USE_DEMOD_CCA2_MASK)
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_REF_SEQ_MASK   (0xFF00U)
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_REF_SEQ_SHIFT  (8U)
+#define XCVR_ZBDEM_CCA2_CTRL_CCA2_REF_SEQ(x)     (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_CTRL_CCA2_REF_SEQ_SHIFT)) & XCVR_ZBDEM_CCA2_CTRL_CCA2_REF_SEQ_MASK)
+/*! @} */
+
+/*! @name CCA2_THRESH - CCA MODE 2 CONTROL REGISTER */
+/*! @{ */
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_CNT_THRESH_MASK (0x3FFU)
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_CNT_THRESH_SHIFT (0U)
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_CNT_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_THRESH_CCA2_CNT_THRESH_SHIFT)) & XCVR_ZBDEM_CCA2_THRESH_CCA2_CNT_THRESH_MASK)
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_SYM_THRESH_MASK (0x3FF0000U)
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_SYM_THRESH_SHIFT (16U)
+#define XCVR_ZBDEM_CCA2_THRESH_CCA2_SYM_THRESH(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_THRESH_CCA2_SYM_THRESH_SHIFT)) & XCVR_ZBDEM_CCA2_THRESH_CCA2_SYM_THRESH_MASK)
+/*! @} */
+
+/*! @name CCA2_STATUS - CCA MODE 2 STATUS REGISTER */
+/*! @{ */
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_MAX_MASK (0x3FFU)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_MAX_SHIFT (0U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_MAX(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_MAX_SHIFT)) & XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_MAX_MASK)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_COMPLETE_MASK (0x400U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_COMPLETE_SHIFT (10U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_COMPLETE(x)  (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_STATUS_CCA2_COMPLETE_SHIFT)) & XCVR_ZBDEM_CCA2_STATUS_CCA2_COMPLETE_MASK)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CHANNEL_STATE_MASK (0x800U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CHANNEL_STATE_SHIFT (11U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CHANNEL_STATE(x) (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_STATUS_CCA2_CHANNEL_STATE_SHIFT)) & XCVR_ZBDEM_CCA2_STATUS_CCA2_CHANNEL_STATE_MASK)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_SYM_MASK (0x3FF0000U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_SYM_SHIFT (16U)
+#define XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_SYM(x)   (((uint32_t)(((uint32_t)(x)) << XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_SYM_SHIFT)) & XCVR_ZBDEM_CCA2_STATUS_CCA2_CNT_SYM_MASK)
+/*! @} */
+
+
+/*!
+ * @}
+ */ /* end of group XCVR_ZBDEM_Register_Masks */
+
+
+/* XCVR_ZBDEM - Peripheral instance base addresses */
+/** Peripheral XCVR_ZBDEM base address */
+#define XCVR_ZBDEM_BASE                          (0x41030480u)
+/** Peripheral XCVR_ZBDEM base pointer */
+#define XCVR_ZBDEM                               ((XCVR_ZBDEM_Type *)XCVR_ZBDEM_BASE)
+/** Array initializer of XCVR_ZBDEM peripheral base addresses */
+#define XCVR_ZBDEM_BASE_ADDRS                    { XCVR_ZBDEM_BASE }
+/** Array initializer of XCVR_ZBDEM peripheral base pointers */
+#define XCVR_ZBDEM_BASE_PTRS                     { XCVR_ZBDEM }
+
+/*!
+ * @}
+ */ /* end of group XCVR_ZBDEM_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- XRDC Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XRDC_Peripheral_Access_Layer XRDC Peripheral Access Layer
+ * @{
+ */
+
+/** XRDC - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t CR;                                /**< Control Register, offset: 0x0 */
+       uint8_t RESERVED_0[236];
+  __I  uint32_t HWCFG0;                            /**< Hardware Configuration Register 0, offset: 0xF0 */
+  __I  uint32_t HWCFG1;                            /**< Hardware Configuration Register 1, offset: 0xF4 */
+  __I  uint32_t HWCFG2;                            /**< Hardware Configuration Register 2, offset: 0xF8 */
+  __I  uint32_t HWCFG3;                            /**< Hardware Configuration Register 3, offset: 0xFC */
+  __I  uint8_t MDACFG[37];                         /**< Master Domain Assignment Configuration Register, array offset: 0x100, array step: 0x1 */
+       uint8_t RESERVED_1[27];
+  __I  uint8_t MRCFG[2];                           /**< Memory Region Configuration Register, array offset: 0x140, array step: 0x1 */
+       uint8_t RESERVED_2[186];
+  __IO uint32_t FDID;                              /**< Fault Domain ID, offset: 0x1FC */
+  __I  uint32_t DERRLOC[3];                        /**< Domain Error Location Register, array offset: 0x200, array step: 0x4 */
+       uint8_t RESERVED_3[500];
+  __IO uint32_t DERR_W[19][4];                     /**< Domain Error Word0 Register..Domain Error Word3 Register, array offset: 0x400, array step: index*0x10, index2*0x4 */
+       uint8_t RESERVED_4[464];
+  __IO uint32_t PID[37];                           /**< Process Identifier, array offset: 0x700, array step: 0x4 */
+       uint8_t RESERVED_5[108];
+  struct {                                         /* offset: 0x800, array step: 0x20 */
+    __IO uint32_t MDA_W[2];                          /**< Master Domain Assignment, array offset: 0x800, array step: index*0x20, index2*0x4 */
+         uint8_t RESERVED_0[24];
+  } MDA[37];
+       uint8_t RESERVED_6[864];
+  __IO uint32_t PDAC_W[289][2];                    /**< Peripheral Domain Access Control, array offset: 0x1000, array step: index*0x8, index2*0x4 */
+       uint8_t RESERVED_7[1784];
+  struct {                                         /* offset: 0x2000, array step: 0x20 */
+    __IO uint32_t MRGD_W[5];                         /**< Memory Region Descriptor, array offset: 0x2000, array step: index*0x20, index2*0x4 */
+         uint8_t RESERVED_0[12];
+  } MRGD[24];
+} XRDC_Type;
+
+/* ----------------------------------------------------------------------------
+   -- XRDC Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup XRDC_Register_Masks XRDC Register Masks
+ * @{
+ */
+
+/*! @name CR - Control Register */
+/*! @{ */
+#define XRDC_CR_GVLDM_MASK                       (0x1U)
+#define XRDC_CR_GVLDM_SHIFT                      (0U)
+/*! GVLDM - Global Valid MDACs(XRDC global enable/disable).
+ *  0b0..XRDC MDACs are disabled.
+ *  0b1..XRDC MDACs are enabled.
+ */
+#define XRDC_CR_GVLDM(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDM_SHIFT)) & XRDC_CR_GVLDM_MASK)
+#define XRDC_CR_HRL_MASK                         (0x1EU)
+#define XRDC_CR_HRL_SHIFT                        (1U)
+#define XRDC_CR_HRL(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_HRL_SHIFT)) & XRDC_CR_HRL_MASK)
+#define XRDC_CR_VAW_MASK                         (0x100U)
+#define XRDC_CR_VAW_SHIFT                        (8U)
+/*! VAW - Virtualization aware
+ *  0b0..Implementation is not virtualization aware.
+ *  0b1..Implementation is virtualization aware.
+ */
+#define XRDC_CR_VAW(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_VAW_SHIFT)) & XRDC_CR_VAW_MASK)
+#define XRDC_CR_GVLDP_MASK                       (0x4000U)
+#define XRDC_CR_GVLDP_SHIFT                      (14U)
+/*! GVLDP - Global Valid for PACs/MSCs
+ *  0b0..XRDC PACs/MSCs are disabled.
+ *  0b1..XRDC PACs/MSCs are enabled.
+ */
+#define XRDC_CR_GVLDP(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDP_SHIFT)) & XRDC_CR_GVLDP_MASK)
+#define XRDC_CR_GVLDC_MASK                       (0x8000U)
+#define XRDC_CR_GVLDC_SHIFT                      (15U)
+/*! GVLDC - Global Valid for MRCs
+ *  0b0..XRDC MRCs are disabled.
+ *  0b1..XRDC MRCs are enabled.
+ */
+#define XRDC_CR_GVLDC(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_CR_GVLDC_SHIFT)) & XRDC_CR_GVLDC_MASK)
+#define XRDC_CR_LK1_MASK                         (0x40000000U)
+#define XRDC_CR_LK1_SHIFT                        (30U)
+/*! LK1 - 1-bit Lock
+ *  0b0..Register can be written by any secure privileged write.
+ *  0b1..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_CR_LK1(x)                           (((uint32_t)(((uint32_t)(x)) << XRDC_CR_LK1_SHIFT)) & XRDC_CR_LK1_MASK)
+/*! @} */
+
+/*! @name HWCFG0 - Hardware Configuration Register 0 */
+/*! @{ */
+#define XRDC_HWCFG0_NDID_MASK                    (0xFFU)
+#define XRDC_HWCFG0_NDID_SHIFT                   (0U)
+#define XRDC_HWCFG0_NDID(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NDID_SHIFT)) & XRDC_HWCFG0_NDID_MASK)
+#define XRDC_HWCFG0_NMSTR_MASK                   (0xFF00U)
+#define XRDC_HWCFG0_NMSTR_SHIFT                  (8U)
+#define XRDC_HWCFG0_NMSTR(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NMSTR_SHIFT)) & XRDC_HWCFG0_NMSTR_MASK)
+#define XRDC_HWCFG0_NMRC_MASK                    (0xFF0000U)
+#define XRDC_HWCFG0_NMRC_SHIFT                   (16U)
+#define XRDC_HWCFG0_NMRC(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NMRC_SHIFT)) & XRDC_HWCFG0_NMRC_MASK)
+#define XRDC_HWCFG0_NPAC_MASK                    (0xF000000U)
+#define XRDC_HWCFG0_NPAC_SHIFT                   (24U)
+#define XRDC_HWCFG0_NPAC(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_NPAC_SHIFT)) & XRDC_HWCFG0_NPAC_MASK)
+#define XRDC_HWCFG0_MID_MASK                     (0xF0000000U)
+#define XRDC_HWCFG0_MID_SHIFT                    (28U)
+#define XRDC_HWCFG0_MID(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG0_MID_SHIFT)) & XRDC_HWCFG0_MID_MASK)
+/*! @} */
+
+/*! @name HWCFG1 - Hardware Configuration Register 1 */
+/*! @{ */
+#define XRDC_HWCFG1_DID_MASK                     (0xFU)
+#define XRDC_HWCFG1_DID_SHIFT                    (0U)
+#define XRDC_HWCFG1_DID(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG1_DID_SHIFT)) & XRDC_HWCFG1_DID_MASK)
+/*! @} */
+
+/*! @name HWCFG2 - Hardware Configuration Register 2 */
+/*! @{ */
+#define XRDC_HWCFG2_PIDP0_MASK                   (0x1U)
+#define XRDC_HWCFG2_PIDP0_SHIFT                  (0U)
+/*! PIDP0 - Process identifier
+ *  0b0..Bus master 0 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 0 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP0(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP0_SHIFT)) & XRDC_HWCFG2_PIDP0_MASK)
+#define XRDC_HWCFG2_PIDP1_MASK                   (0x2U)
+#define XRDC_HWCFG2_PIDP1_SHIFT                  (1U)
+/*! PIDP1 - Process identifier
+ *  0b0..Bus master 1 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 1 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP1(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP1_SHIFT)) & XRDC_HWCFG2_PIDP1_MASK)
+#define XRDC_HWCFG2_PIDP2_MASK                   (0x4U)
+#define XRDC_HWCFG2_PIDP2_SHIFT                  (2U)
+/*! PIDP2 - Process identifier
+ *  0b0..Bus master 2 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 2 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP2(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP2_SHIFT)) & XRDC_HWCFG2_PIDP2_MASK)
+#define XRDC_HWCFG2_PIDP3_MASK                   (0x8U)
+#define XRDC_HWCFG2_PIDP3_SHIFT                  (3U)
+/*! PIDP3 - Process identifier
+ *  0b0..Bus master 3 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 3 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP3(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP3_SHIFT)) & XRDC_HWCFG2_PIDP3_MASK)
+#define XRDC_HWCFG2_PIDP4_MASK                   (0x10U)
+#define XRDC_HWCFG2_PIDP4_SHIFT                  (4U)
+/*! PIDP4 - Process identifier
+ *  0b0..Bus master 4 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 4 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP4(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP4_SHIFT)) & XRDC_HWCFG2_PIDP4_MASK)
+#define XRDC_HWCFG2_PIDP5_MASK                   (0x20U)
+#define XRDC_HWCFG2_PIDP5_SHIFT                  (5U)
+/*! PIDP5 - Process identifier
+ *  0b0..Bus master 5 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 5 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP5(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP5_SHIFT)) & XRDC_HWCFG2_PIDP5_MASK)
+#define XRDC_HWCFG2_PIDP6_MASK                   (0x40U)
+#define XRDC_HWCFG2_PIDP6_SHIFT                  (6U)
+/*! PIDP6 - Process identifier
+ *  0b0..Bus master 6 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 6 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP6(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP6_SHIFT)) & XRDC_HWCFG2_PIDP6_MASK)
+#define XRDC_HWCFG2_PIDP7_MASK                   (0x80U)
+#define XRDC_HWCFG2_PIDP7_SHIFT                  (7U)
+/*! PIDP7 - Process identifier
+ *  0b0..Bus master 7 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 7 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP7(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP7_SHIFT)) & XRDC_HWCFG2_PIDP7_MASK)
+#define XRDC_HWCFG2_PIDP8_MASK                   (0x100U)
+#define XRDC_HWCFG2_PIDP8_SHIFT                  (8U)
+/*! PIDP8 - Process identifier
+ *  0b0..Bus master 8 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 8 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP8(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP8_SHIFT)) & XRDC_HWCFG2_PIDP8_MASK)
+#define XRDC_HWCFG2_PIDP9_MASK                   (0x200U)
+#define XRDC_HWCFG2_PIDP9_SHIFT                  (9U)
+/*! PIDP9 - Process identifier
+ *  0b0..Bus master 9 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 9 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP9(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP9_SHIFT)) & XRDC_HWCFG2_PIDP9_MASK)
+#define XRDC_HWCFG2_PIDP10_MASK                  (0x400U)
+#define XRDC_HWCFG2_PIDP10_SHIFT                 (10U)
+/*! PIDP10 - Process identifier
+ *  0b0..Bus master 10 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 10 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP10(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP10_SHIFT)) & XRDC_HWCFG2_PIDP10_MASK)
+#define XRDC_HWCFG2_PIDP11_MASK                  (0x800U)
+#define XRDC_HWCFG2_PIDP11_SHIFT                 (11U)
+/*! PIDP11 - Process identifier
+ *  0b0..Bus master 11 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 11 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP11(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP11_SHIFT)) & XRDC_HWCFG2_PIDP11_MASK)
+#define XRDC_HWCFG2_PIDP12_MASK                  (0x1000U)
+#define XRDC_HWCFG2_PIDP12_SHIFT                 (12U)
+/*! PIDP12 - Process identifier
+ *  0b0..Bus master 12 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 12 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP12(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP12_SHIFT)) & XRDC_HWCFG2_PIDP12_MASK)
+#define XRDC_HWCFG2_PIDP13_MASK                  (0x2000U)
+#define XRDC_HWCFG2_PIDP13_SHIFT                 (13U)
+/*! PIDP13 - Process identifier
+ *  0b0..Bus master 13 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 13 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP13(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP13_SHIFT)) & XRDC_HWCFG2_PIDP13_MASK)
+#define XRDC_HWCFG2_PIDP14_MASK                  (0x4000U)
+#define XRDC_HWCFG2_PIDP14_SHIFT                 (14U)
+/*! PIDP14 - Process identifier
+ *  0b0..Bus master 14 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 14 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP14(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP14_SHIFT)) & XRDC_HWCFG2_PIDP14_MASK)
+#define XRDC_HWCFG2_PIDP15_MASK                  (0x8000U)
+#define XRDC_HWCFG2_PIDP15_SHIFT                 (15U)
+/*! PIDP15 - Process identifier
+ *  0b0..Bus master 15 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 15 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP15(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP15_SHIFT)) & XRDC_HWCFG2_PIDP15_MASK)
+#define XRDC_HWCFG2_PIDP16_MASK                  (0x10000U)
+#define XRDC_HWCFG2_PIDP16_SHIFT                 (16U)
+/*! PIDP16 - Process identifier
+ *  0b0..Bus master 16 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 16 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP16(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP16_SHIFT)) & XRDC_HWCFG2_PIDP16_MASK)
+#define XRDC_HWCFG2_PIDP17_MASK                  (0x20000U)
+#define XRDC_HWCFG2_PIDP17_SHIFT                 (17U)
+/*! PIDP17 - Process identifier
+ *  0b0..Bus master 17 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 17 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP17(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP17_SHIFT)) & XRDC_HWCFG2_PIDP17_MASK)
+#define XRDC_HWCFG2_PIDP18_MASK                  (0x40000U)
+#define XRDC_HWCFG2_PIDP18_SHIFT                 (18U)
+/*! PIDP18 - Process identifier
+ *  0b0..Bus master 18 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 18 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP18(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP18_SHIFT)) & XRDC_HWCFG2_PIDP18_MASK)
+#define XRDC_HWCFG2_PIDP19_MASK                  (0x80000U)
+#define XRDC_HWCFG2_PIDP19_SHIFT                 (19U)
+/*! PIDP19 - Process identifier
+ *  0b0..Bus master 19 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 19 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP19(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP19_SHIFT)) & XRDC_HWCFG2_PIDP19_MASK)
+#define XRDC_HWCFG2_PIDP20_MASK                  (0x100000U)
+#define XRDC_HWCFG2_PIDP20_SHIFT                 (20U)
+/*! PIDP20 - Process identifier
+ *  0b0..Bus master 20 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 20 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP20(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP20_SHIFT)) & XRDC_HWCFG2_PIDP20_MASK)
+#define XRDC_HWCFG2_PIDP21_MASK                  (0x200000U)
+#define XRDC_HWCFG2_PIDP21_SHIFT                 (21U)
+/*! PIDP21 - Process identifier
+ *  0b0..Bus master 21 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 21 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP21(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP21_SHIFT)) & XRDC_HWCFG2_PIDP21_MASK)
+#define XRDC_HWCFG2_PIDP22_MASK                  (0x400000U)
+#define XRDC_HWCFG2_PIDP22_SHIFT                 (22U)
+/*! PIDP22 - Process identifier
+ *  0b0..Bus master 22 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 22 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP22(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP22_SHIFT)) & XRDC_HWCFG2_PIDP22_MASK)
+#define XRDC_HWCFG2_PIDP23_MASK                  (0x800000U)
+#define XRDC_HWCFG2_PIDP23_SHIFT                 (23U)
+/*! PIDP23 - Process identifier
+ *  0b0..Bus master 23 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 23 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP23(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP23_SHIFT)) & XRDC_HWCFG2_PIDP23_MASK)
+#define XRDC_HWCFG2_PIDP24_MASK                  (0x1000000U)
+#define XRDC_HWCFG2_PIDP24_SHIFT                 (24U)
+/*! PIDP24 - Process identifier
+ *  0b0..Bus master 24 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 24 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP24(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP24_SHIFT)) & XRDC_HWCFG2_PIDP24_MASK)
+#define XRDC_HWCFG2_PIDP25_MASK                  (0x2000000U)
+#define XRDC_HWCFG2_PIDP25_SHIFT                 (25U)
+/*! PIDP25 - Process identifier
+ *  0b0..Bus master 25 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 25 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP25(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP25_SHIFT)) & XRDC_HWCFG2_PIDP25_MASK)
+#define XRDC_HWCFG2_PIDP26_MASK                  (0x4000000U)
+#define XRDC_HWCFG2_PIDP26_SHIFT                 (26U)
+/*! PIDP26 - Process identifier
+ *  0b0..Bus master 26 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 26 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP26(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP26_SHIFT)) & XRDC_HWCFG2_PIDP26_MASK)
+#define XRDC_HWCFG2_PIDP27_MASK                  (0x8000000U)
+#define XRDC_HWCFG2_PIDP27_SHIFT                 (27U)
+/*! PIDP27 - Process identifier
+ *  0b0..Bus master 27 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 27 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP27(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP27_SHIFT)) & XRDC_HWCFG2_PIDP27_MASK)
+#define XRDC_HWCFG2_PIDP28_MASK                  (0x10000000U)
+#define XRDC_HWCFG2_PIDP28_SHIFT                 (28U)
+/*! PIDP28 - Process identifier
+ *  0b0..Bus master 28 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 28 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP28(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP28_SHIFT)) & XRDC_HWCFG2_PIDP28_MASK)
+#define XRDC_HWCFG2_PIDP29_MASK                  (0x20000000U)
+#define XRDC_HWCFG2_PIDP29_SHIFT                 (29U)
+/*! PIDP29 - Process identifier
+ *  0b0..Bus master 29 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 29 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP29(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP29_SHIFT)) & XRDC_HWCFG2_PIDP29_MASK)
+#define XRDC_HWCFG2_PIDP30_MASK                  (0x40000000U)
+#define XRDC_HWCFG2_PIDP30_SHIFT                 (30U)
+/*! PIDP30 - Process identifier
+ *  0b0..Bus master 30 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 30 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP30(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP30_SHIFT)) & XRDC_HWCFG2_PIDP30_MASK)
+#define XRDC_HWCFG2_PIDP31_MASK                  (0x80000000U)
+#define XRDC_HWCFG2_PIDP31_SHIFT                 (31U)
+/*! PIDP31 - Process identifier
+ *  0b0..Bus master 31 does not source a process identifier register. The XRDC_MDAC logic provides the needed PID for processor cores.
+ *  0b1..Bus master 31 sources a process identifier register to the XRDC_MDAC logic.
+ */
+#define XRDC_HWCFG2_PIDP31(x)                    (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG2_PIDP31_SHIFT)) & XRDC_HWCFG2_PIDP31_MASK)
+/*! @} */
+
+/*! @name HWCFG3 - Hardware Configuration Register 3 */
+/*! @{ */
+#define XRDC_HWCFG3_PIDPn_MASK                   (0xFFFFFFFFU)
+#define XRDC_HWCFG3_PIDPn_SHIFT                  (0U)
+#define XRDC_HWCFG3_PIDPn(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_HWCFG3_PIDPn_SHIFT)) & XRDC_HWCFG3_PIDPn_MASK)
+/*! @} */
+
+/*! @name MDACFG - Master Domain Assignment Configuration Register */
+/*! @{ */
+#define XRDC_MDACFG_NMDAR_MASK                   (0xFU)
+#define XRDC_MDACFG_NMDAR_SHIFT                  (0U)
+#define XRDC_MDACFG_NMDAR(x)                     (((uint8_t)(((uint8_t)(x)) << XRDC_MDACFG_NMDAR_SHIFT)) & XRDC_MDACFG_NMDAR_MASK)
+#define XRDC_MDACFG_NCM_MASK                     (0x80U)
+#define XRDC_MDACFG_NCM_SHIFT                    (7U)
+/*! NCM - Non-CPU Master
+ *  0b0..Bus master is a processor.
+ *  0b1..Bus master is a non-processor.
+ */
+#define XRDC_MDACFG_NCM(x)                       (((uint8_t)(((uint8_t)(x)) << XRDC_MDACFG_NCM_SHIFT)) & XRDC_MDACFG_NCM_MASK)
+/*! @} */
+
+/* The count of XRDC_MDACFG */
+#define XRDC_MDACFG_COUNT                        (37U)
+
+/*! @name MRCFG - Memory Region Configuration Register */
+/*! @{ */
+#define XRDC_MRCFG_NMRGD_MASK                    (0x1FU)
+#define XRDC_MRCFG_NMRGD_SHIFT                   (0U)
+#define XRDC_MRCFG_NMRGD(x)                      (((uint8_t)(((uint8_t)(x)) << XRDC_MRCFG_NMRGD_SHIFT)) & XRDC_MRCFG_NMRGD_MASK)
+/*! @} */
+
+/* The count of XRDC_MRCFG */
+#define XRDC_MRCFG_COUNT                         (2U)
+
+/*! @name FDID - Fault Domain ID */
+/*! @{ */
+#define XRDC_FDID_FDID_MASK                      (0xFU)
+#define XRDC_FDID_FDID_SHIFT                     (0U)
+#define XRDC_FDID_FDID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_FDID_FDID_SHIFT)) & XRDC_FDID_FDID_MASK)
+/*! @} */
+
+/*! @name DERRLOC - Domain Error Location Register */
+/*! @{ */
+#define XRDC_DERRLOC_MRCINST_MASK                (0xFFFFU)
+#define XRDC_DERRLOC_MRCINST_SHIFT               (0U)
+#define XRDC_DERRLOC_MRCINST(x)                  (((uint32_t)(((uint32_t)(x)) << XRDC_DERRLOC_MRCINST_SHIFT)) & XRDC_DERRLOC_MRCINST_MASK)
+#define XRDC_DERRLOC_PACINST_MASK                (0xF0000U)
+#define XRDC_DERRLOC_PACINST_SHIFT               (16U)
+#define XRDC_DERRLOC_PACINST(x)                  (((uint32_t)(((uint32_t)(x)) << XRDC_DERRLOC_PACINST_SHIFT)) & XRDC_DERRLOC_PACINST_MASK)
+/*! @} */
+
+/* The count of XRDC_DERRLOC */
+#define XRDC_DERRLOC_COUNT                       (3U)
+
+/*! @name DERR_W - Domain Error Word0 Register..Domain Error Word3 Register */
+/*! @{ */
+#define XRDC_DERR_W_EADDR_MASK                   (0xFFFFFFFFU)
+#define XRDC_DERR_W_EADDR_SHIFT                  (0U)
+#define XRDC_DERR_W_EADDR(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EADDR_SHIFT)) & XRDC_DERR_W_EADDR_MASK)
+#define XRDC_DERR_W_EDID_MASK                    (0xFU)
+#define XRDC_DERR_W_EDID_SHIFT                   (0U)
+#define XRDC_DERR_W_EDID(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EDID_SHIFT)) & XRDC_DERR_W_EDID_MASK)
+#define XRDC_DERR_W_EATR_MASK                    (0x700U)
+#define XRDC_DERR_W_EATR_SHIFT                   (8U)
+/*! EATR - Error attributes
+ *  0b000..Secure user mode, instruction fetch access.
+ *  0b001..Secure user mode, data access.
+ *  0b010..Secure privileged mode, instruction fetch access.
+ *  0b011..Secure privileged mode, data access.
+ *  0b100..Nonsecure user mode, instruction fetch access.
+ *  0b101..Nonsecure user mode, data access.
+ *  0b110..Nonsecure privileged mode, instruction fetch access.
+ *  0b111..Nonsecure privileged mode, data access.
+ */
+#define XRDC_DERR_W_EATR(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EATR_SHIFT)) & XRDC_DERR_W_EATR_MASK)
+#define XRDC_DERR_W_ERW_MASK                     (0x800U)
+#define XRDC_DERR_W_ERW_SHIFT                    (11U)
+/*! ERW - Error read/write
+ *  0b0..Read access
+ *  0b1..Write access
+ */
+#define XRDC_DERR_W_ERW(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_ERW_SHIFT)) & XRDC_DERR_W_ERW_MASK)
+#define XRDC_DERR_W_EPORT_MASK                   (0x7000000U)
+#define XRDC_DERR_W_EPORT_SHIFT                  (24U)
+#define XRDC_DERR_W_EPORT(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EPORT_SHIFT)) & XRDC_DERR_W_EPORT_MASK)
+#define XRDC_DERR_W_EST_MASK                     (0xC0000000U)
+#define XRDC_DERR_W_EST_SHIFT                    (30U)
+/*! EST - Error state
+ *  0b00..No access violation has been detected.
+ *  0b01..No access violation has been detected.
+ *  0b10..A single access violation has been detected.
+ *  0b11..Multiple access violations for this domain have been detected by this submodule instance. Only the address and attribute information for the first error have been captured in DERR_W0_i and DERR_W1_i.
+ */
+#define XRDC_DERR_W_EST(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_EST_SHIFT)) & XRDC_DERR_W_EST_MASK)
+#define XRDC_DERR_W_RECR_MASK                    (0xC0000000U)
+#define XRDC_DERR_W_RECR_SHIFT                   (30U)
+#define XRDC_DERR_W_RECR(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_DERR_W_RECR_SHIFT)) & XRDC_DERR_W_RECR_MASK)
+/*! @} */
+
+/* The count of XRDC_DERR_W */
+#define XRDC_DERR_W_COUNT                        (19U)
+
+/* The count of XRDC_DERR_W */
+#define XRDC_DERR_W_COUNT2                       (4U)
+
+/*! @name PID - Process Identifier */
+/*! @{ */
+#define XRDC_PID_PID_MASK                        (0x3FU)
+#define XRDC_PID_PID_SHIFT                       (0U)
+#define XRDC_PID_PID(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_PID_SHIFT)) & XRDC_PID_PID_MASK)
+#define XRDC_PID_SP4SM_MASK                      (0x8000000U)
+#define XRDC_PID_SP4SM_SHIFT                     (27U)
+#define XRDC_PID_SP4SM(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_PID_SP4SM_SHIFT)) & XRDC_PID_SP4SM_MASK)
+#define XRDC_PID_TSM_MASK                        (0x10000000U)
+#define XRDC_PID_TSM_SHIFT                       (28U)
+#define XRDC_PID_TSM(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_TSM_SHIFT)) & XRDC_PID_TSM_MASK)
+#define XRDC_PID_LK2_MASK                        (0x60000000U)
+#define XRDC_PID_LK2_SHIFT                       (29U)
+/*! LK2 - Lock
+ *  0b00..Register can be written by any secure privileged write.
+ *  0b01..Register can be written by any secure privileged write.
+ *  0b10..Register can only be written by a secure privileged write from bus master m.
+ *  0b11..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_PID_LK2(x)                          (((uint32_t)(((uint32_t)(x)) << XRDC_PID_LK2_SHIFT)) & XRDC_PID_LK2_MASK)
+/*! @} */
+
+/* The count of XRDC_PID */
+#define XRDC_PID_COUNT                           (37U)
+
+/*! @name MDA_W - Master Domain Assignment */
+/*! @{ */
+#define XRDC_MDA_W_DID_MASK                      (0xFU)
+#define XRDC_MDA_W_DID_SHIFT                     (0U)
+#define XRDC_MDA_W_DID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DID_SHIFT)) & XRDC_MDA_W_DID_MASK)
+#define XRDC_MDA_W_DIDS_MASK                     (0x30U)
+#define XRDC_MDA_W_DIDS_SHIFT                    (4U)
+/*! DIDS - DID Select
+ *  0b00..Use MDAm[3:0] as the domain identifier.
+ *  0b01..Use the input DID as the domain identifier.
+ *  0b10..Use MDAm[3:2] concatenated with the low-order 2 bits of the input DID (DID_in[1:0]) as the domain identifier.
+ *  0b11..Reserved for future use.
+ */
+#define XRDC_MDA_W_DIDS(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DIDS_SHIFT)) & XRDC_MDA_W_DIDS_MASK)
+#define XRDC_MDA_W_PA_MASK                       (0x30U)
+#define XRDC_MDA_W_PA_SHIFT                      (4U)
+/*! PA - Privileged attribute
+ *  0b00..Force the bus attribute for this master to user.
+ *  0b01..Force the bus attribute for this master to privileged.
+ *  0b10..Use the bus master's privileged/user attribute directly.
+ *  0b11..Use the bus master's privileged/user attribute directly.
+ */
+#define XRDC_MDA_W_PA(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PA_SHIFT)) & XRDC_MDA_W_PA_MASK)
+#define XRDC_MDA_W_PE_MASK                       (0xC0U)
+#define XRDC_MDA_W_PE_SHIFT                      (6U)
+/*! PE - Process identifier enable
+ *  0b00..No process identifier is included in the domain hit evaluation.
+ *  0b01..No process identifier is included in the domain hit evaluation.
+ *  0b10..The process identifier is included in the domain hit evaluation as defined by the expression: partial_domain_hit = (PE == 2) && ((PID & ~PIDM) == (XRDC_PIDn[PID] & ~PIDM))
+ *  0b11..The process identifier is included in the domain hit evaluation as defined by the expression: partial_domain_hit = (PE == 3) && ~((PID & ~PIDM) == (XRDC_PIDn[PID] & ~PIDM))
+ */
+#define XRDC_MDA_W_PE(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PE_SHIFT)) & XRDC_MDA_W_PE_MASK)
+#define XRDC_MDA_W_SA_MASK                       (0xC0U)
+#define XRDC_MDA_W_SA_SHIFT                      (6U)
+/*! SA - Secure attribute
+ *  0b00..Force the bus attribute for this master to secure.
+ *  0b01..Force the bus attribute for this master to nonsecure.
+ *  0b10..Use the bus master's secure/nonsecure attribute directly.
+ *  0b11..Use the bus master's secure/nonsecure attribute directly.
+ */
+#define XRDC_MDA_W_SA(x)                         (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_SA_SHIFT)) & XRDC_MDA_W_SA_MASK)
+#define XRDC_MDA_W_DIDB_MASK                     (0x100U)
+#define XRDC_MDA_W_DIDB_SHIFT                    (8U)
+/*! DIDB - DID Bypass
+ *  0b0..Use MDAn[3:0] as the domain identifier.
+ *  0b1..Use the DID input as the domain identifier.
+ */
+#define XRDC_MDA_W_DIDB(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DIDB_SHIFT)) & XRDC_MDA_W_DIDB_MASK)
+#define XRDC_MDA_W_PIDM_MASK                     (0x3F00U)
+#define XRDC_MDA_W_PIDM_SHIFT                    (8U)
+#define XRDC_MDA_W_PIDM(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PIDM_SHIFT)) & XRDC_MDA_W_PIDM_MASK)
+#define XRDC_MDA_W_PID_MASK                      (0x3F0000U)
+#define XRDC_MDA_W_PID_SHIFT                     (16U)
+#define XRDC_MDA_W_PID(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_PID_SHIFT)) & XRDC_MDA_W_PID_MASK)
+#define XRDC_MDA_W_DFMT_MASK                     (0x20000000U)
+#define XRDC_MDA_W_DFMT_SHIFT                    (29U)
+/*! DFMT - Domain format
+ *  0b0..Processor-core domain assignment
+ *  0b1..Non-processor domain assignment
+ */
+#define XRDC_MDA_W_DFMT(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_DFMT_SHIFT)) & XRDC_MDA_W_DFMT_MASK)
+#define XRDC_MDA_W_LK1_MASK                      (0x40000000U)
+#define XRDC_MDA_W_LK1_SHIFT                     (30U)
+/*! LK1 - 1-bit Lock
+ *  0b0..Register can be written by any secure privileged write.
+ *  0b1..Register is locked (read-only) until the next reset.
+ */
+#define XRDC_MDA_W_LK1(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_LK1_SHIFT)) & XRDC_MDA_W_LK1_MASK)
+#define XRDC_MDA_W_VLD_MASK                      (0x80000000U)
+#define XRDC_MDA_W_VLD_SHIFT                     (31U)
+/*! VLD - Valid
+ *  0b0..The Wr domain assignment is invalid.
+ *  0b1..The Wr domain assignment is valid.
+ */
+#define XRDC_MDA_W_VLD(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MDA_W_VLD_SHIFT)) & XRDC_MDA_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_MDA_W */
+#define XRDC_MDA_W_COUNT                         (37U)
+
+/* The count of XRDC_MDA_W */
+#define XRDC_MDA_W_COUNT2                        (2U)
+
+/*! @name PDAC_W - Peripheral Domain Access Control */
+/*! @{ */
+#define XRDC_PDAC_W_D0ACP_MASK                   (0x7U)
+#define XRDC_PDAC_W_D0ACP_SHIFT                  (0U)
+#define XRDC_PDAC_W_D0ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D0ACP_SHIFT)) & XRDC_PDAC_W_D0ACP_MASK)
+#define XRDC_PDAC_W_D1ACP_MASK                   (0x38U)
+#define XRDC_PDAC_W_D1ACP_SHIFT                  (3U)
+#define XRDC_PDAC_W_D1ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D1ACP_SHIFT)) & XRDC_PDAC_W_D1ACP_MASK)
+#define XRDC_PDAC_W_D2ACP_MASK                   (0x1C0U)
+#define XRDC_PDAC_W_D2ACP_SHIFT                  (6U)
+#define XRDC_PDAC_W_D2ACP(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_D2ACP_SHIFT)) & XRDC_PDAC_W_D2ACP_MASK)
+#define XRDC_PDAC_W_EAL_MASK                     (0x3000000U)
+#define XRDC_PDAC_W_EAL_SHIFT                    (24U)
+/*! EAL - Exclusive Access Lock
+ *  0b00..Lock disabled
+ *  0b01..Lock disabled until next reset
+ *  0b10..Lock enabled, lock state = available
+ *  0b11..Lock enabled, lock state = not available
+ */
+#define XRDC_PDAC_W_EAL(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_EAL_SHIFT)) & XRDC_PDAC_W_EAL_MASK)
+#define XRDC_PDAC_W_EALO_MASK                    (0xF000000U)
+#define XRDC_PDAC_W_EALO_SHIFT                   (24U)
+#define XRDC_PDAC_W_EALO(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_EALO_SHIFT)) & XRDC_PDAC_W_EALO_MASK)
+#define XRDC_PDAC_W_LK2_MASK                     (0x60000000U)
+#define XRDC_PDAC_W_LK2_SHIFT                    (29U)
+/*! LK2 - Lock
+ *  0b00..Entire PDACs can be written.
+ *  0b01..Entire PDACs can be written.
+ *  0b10..Domain x can only update the DxACP field and the LK2 field; no other PDACs fields can be written.
+ *  0b11..PDACs is locked (read-only) until the next reset.
+ */
+#define XRDC_PDAC_W_LK2(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_LK2_SHIFT)) & XRDC_PDAC_W_LK2_MASK)
+#define XRDC_PDAC_W_VLD_MASK                     (0x80000000U)
+#define XRDC_PDAC_W_VLD_SHIFT                    (31U)
+/*! VLD - Valid
+ *  0b0..The PDACs assignment is invalid.
+ *  0b1..The PDACs assignment is valid.
+ */
+#define XRDC_PDAC_W_VLD(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_PDAC_W_VLD_SHIFT)) & XRDC_PDAC_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_PDAC_W */
+#define XRDC_PDAC_W_COUNT                        (289U)
+
+/* The count of XRDC_PDAC_W */
+#define XRDC_PDAC_W_COUNT2                       (2U)
+
+/*! @name MRGD_W - Memory Region Descriptor */
+/*! @{ */
+#define XRDC_MRGD_W_ACCSET1_MASK                 (0xFFFU)
+#define XRDC_MRGD_W_ACCSET1_SHIFT                (0U)
+#define XRDC_MRGD_W_ACCSET1(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ACCSET1_SHIFT)) & XRDC_MRGD_W_ACCSET1_MASK)
+#define XRDC_MRGD_W_D0SEL_MASK                   (0x7U)
+#define XRDC_MRGD_W_D0SEL_SHIFT                  (0U)
+#define XRDC_MRGD_W_D0SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D0SEL_SHIFT)) & XRDC_MRGD_W_D0SEL_MASK)
+#define XRDC_MRGD_W_D1SEL_MASK                   (0x38U)
+#define XRDC_MRGD_W_D1SEL_SHIFT                  (3U)
+#define XRDC_MRGD_W_D1SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D1SEL_SHIFT)) & XRDC_MRGD_W_D1SEL_MASK)
+#define XRDC_MRGD_W_ENDADDR_MASK                 (0xFFFFFFE0U)
+#define XRDC_MRGD_W_ENDADDR_SHIFT                (5U)
+#define XRDC_MRGD_W_ENDADDR(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ENDADDR_SHIFT)) & XRDC_MRGD_W_ENDADDR_MASK)
+#define XRDC_MRGD_W_SRTADDR_MASK                 (0xFFFFFFE0U)
+#define XRDC_MRGD_W_SRTADDR_SHIFT                (5U)
+#define XRDC_MRGD_W_SRTADDR(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_SRTADDR_SHIFT)) & XRDC_MRGD_W_SRTADDR_MASK)
+#define XRDC_MRGD_W_D2SEL_MASK                   (0x1C0U)
+#define XRDC_MRGD_W_D2SEL_SHIFT                  (6U)
+#define XRDC_MRGD_W_D2SEL(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_D2SEL_SHIFT)) & XRDC_MRGD_W_D2SEL_MASK)
+#define XRDC_MRGD_W_LKAS1_MASK                   (0x1000U)
+#define XRDC_MRGD_W_LKAS1_SHIFT                  (12U)
+/*! LKAS1 - Lock ACCSET1
+ *  0b0..Writes to ACCSET1 affect lesser modes
+ *  0b1..ACCSET1 cannot be modified
+ */
+#define XRDC_MRGD_W_LKAS1(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LKAS1_SHIFT)) & XRDC_MRGD_W_LKAS1_MASK)
+#define XRDC_MRGD_W_ACCSET2_MASK                 (0xFFF0000U)
+#define XRDC_MRGD_W_ACCSET2_SHIFT                (16U)
+#define XRDC_MRGD_W_ACCSET2(x)                   (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_ACCSET2_SHIFT)) & XRDC_MRGD_W_ACCSET2_MASK)
+#define XRDC_MRGD_W_EAL_MASK                     (0x3000000U)
+#define XRDC_MRGD_W_EAL_SHIFT                    (24U)
+/*! EAL - Exclusive Access Lock
+ *  0b00..Lock disabled
+ *  0b01..Lock disabled until next reset
+ *  0b10..Lock enabled, lock state = available
+ *  0b11..Lock enabled, lock state = not available
+ */
+#define XRDC_MRGD_W_EAL(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_EAL_SHIFT)) & XRDC_MRGD_W_EAL_MASK)
+#define XRDC_MRGD_W_EALO_MASK                    (0xF000000U)
+#define XRDC_MRGD_W_EALO_SHIFT                   (24U)
+#define XRDC_MRGD_W_EALO(x)                      (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_EALO_SHIFT)) & XRDC_MRGD_W_EALO_MASK)
+#define XRDC_MRGD_W_LKAS2_MASK                   (0x10000000U)
+#define XRDC_MRGD_W_LKAS2_SHIFT                  (28U)
+/*! LKAS2 - Lock ACCSET2
+ *  0b0..Writes to ACCSET2 affect lesser modes
+ *  0b1..ACCSET2 cannot be modified
+ */
+#define XRDC_MRGD_W_LKAS2(x)                     (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LKAS2_SHIFT)) & XRDC_MRGD_W_LKAS2_MASK)
+#define XRDC_MRGD_W_LK2_MASK                     (0x60000000U)
+#define XRDC_MRGD_W_LK2_SHIFT                    (29U)
+/*! LK2 - Lock
+ *  0b00..Entire MRGDn can be written.
+ *  0b01..Entire MRGDn can be written.
+ *  0b10..Domain x can only update the DxACP field and the LK2 field; no other MRGDn fields can be written.
+ *  0b11..MRGDn is locked (read-only) until the next reset.
+ */
+#define XRDC_MRGD_W_LK2(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_LK2_SHIFT)) & XRDC_MRGD_W_LK2_MASK)
+#define XRDC_MRGD_W_CR_MASK                      (0x80000000U)
+#define XRDC_MRGD_W_CR_SHIFT                     (31U)
+#define XRDC_MRGD_W_CR(x)                        (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_CR_SHIFT)) & XRDC_MRGD_W_CR_MASK)
+#define XRDC_MRGD_W_VLD_MASK                     (0x80000000U)
+#define XRDC_MRGD_W_VLD_SHIFT                    (31U)
+/*! VLD - Valid
+ *  0b0..The MRGDn assignment is invalid.
+ *  0b1..The MRGDn assignment is valid.
+ */
+#define XRDC_MRGD_W_VLD(x)                       (((uint32_t)(((uint32_t)(x)) << XRDC_MRGD_W_VLD_SHIFT)) & XRDC_MRGD_W_VLD_MASK)
+/*! @} */
+
+/* The count of XRDC_MRGD_W */
+#define XRDC_MRGD_W_COUNT                        (24U)
+
+/* The count of XRDC_MRGD_W */
+#define XRDC_MRGD_W_COUNT2                       (5U)
+
+
+/*!
+ * @}
+ */ /* end of group XRDC_Register_Masks */
+
+
+/* XRDC - Peripheral instance base addresses */
+/** Peripheral XRDC base address */
+#define XRDC_BASE                                (0x40014000u)
+/** Peripheral XRDC base pointer */
+#define XRDC                                     ((XRDC_Type *)XRDC_BASE)
+/** Array initializer of XRDC peripheral base addresses */
+#define XRDC_BASE_ADDRS                          { XRDC_BASE }
+/** Array initializer of XRDC peripheral base pointers */
+#define XRDC_BASE_PTRS                           { XRDC }
+
+/*!
+ * @}
+ */ /* end of group XRDC_Peripheral_Access_Layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- ZLL Peripheral Access Layer
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ZLL_Peripheral_Access_Layer ZLL Peripheral Access Layer
+ * @{
+ */
+
+/** ZLL - Register Layout Typedef */
+typedef struct {
+  __IO uint32_t IRQSTS;                            /**< INTERRUPT REQUEST STATUS, offset: 0x0 */
+  __IO uint32_t PHY_CTRL;                          /**< PHY CONTROL, offset: 0x4 */
+  __IO uint32_t EVENT_TMR;                         /**< EVENT TIMER, offset: 0x8 */
+  __I  uint32_t TIMESTAMP;                         /**< TIMESTAMP, offset: 0xC */
+  __IO uint32_t T1CMP;                             /**< T1 COMPARE, offset: 0x10 */
+  __IO uint32_t T2CMP;                             /**< T2 COMPARE, offset: 0x14 */
+  __IO uint32_t T2PRIMECMP;                        /**< T2 PRIME COMPARE, offset: 0x18 */
+  __IO uint32_t T3CMP;                             /**< T3 COMPARE, offset: 0x1C */
+  __IO uint32_t T4CMP;                             /**< T4 COMPARE, offset: 0x20 */
+  __IO uint32_t PA_PWR;                            /**< PA POWER, offset: 0x24 */
+  __IO uint32_t CHANNEL_NUM0;                      /**< CHANNEL NUMBER 0, offset: 0x28 */
+  __I  uint32_t LQI_AND_RSSI;                      /**< LQI AND RSSI, offset: 0x2C */
+  __IO uint32_t MACSHORTADDRS0;                    /**< MAC SHORT ADDRESS 0, offset: 0x30 */
+  __IO uint32_t MACLONGADDRS0_LSB;                 /**< MAC LONG ADDRESS 0 LSB, offset: 0x34 */
+  __IO uint32_t MACLONGADDRS0_MSB;                 /**< MAC LONG ADDRESS 0 MSB, offset: 0x38 */
+  __IO uint32_t RX_FRAME_FILTER;                   /**< RECEIVE FRAME FILTER, offset: 0x3C */
+  __IO uint32_t CCA_LQI_CTRL;                      /**< CCA AND LQI CONTROL, offset: 0x40 */
+  __IO uint32_t CCA2_CTRL;                         /**< CCA2 CONTROL, offset: 0x44 */
+       uint8_t RESERVED_0[4];
+  __IO uint32_t DSM_CTRL;                          /**< DSM CONTROL, offset: 0x4C */
+  __IO uint32_t BSM_CTRL;                          /**< BSM CONTROL, offset: 0x50 */
+  __IO uint32_t MACSHORTADDRS1;                    /**< MAC SHORT ADDRESS FOR PAN1, offset: 0x54 */
+  __IO uint32_t MACLONGADDRS1_LSB;                 /**< MAC LONG ADDRESS 1 LSB, offset: 0x58 */
+  __IO uint32_t MACLONGADDRS1_MSB;                 /**< MAC LONG ADDRESS 1 MSB, offset: 0x5C */
+  __IO uint32_t DUAL_PAN_CTRL;                     /**< DUAL PAN CONTROL, offset: 0x60 */
+  __IO uint32_t CHANNEL_NUM1;                      /**< CHANNEL NUMBER 1, offset: 0x64 */
+  __IO uint32_t SAM_CTRL;                          /**< SAM CONTROL, offset: 0x68 */
+  __IO uint32_t SAM_TABLE;                         /**< SOURCE ADDRESS MANAGEMENT TABLE, offset: 0x6C */
+  __I  uint32_t SAM_MATCH;                         /**< SOURCE ADDRESS MANAGEMENT MATCH, offset: 0x70 */
+  __I  uint32_t SAM_FREE_IDX;                      /**< SAM FREE INDEX, offset: 0x74 */
+  __IO uint32_t SEQ_CTRL_STS;                      /**< SEQUENCE CONTROL AND STATUS, offset: 0x78 */
+  __IO uint32_t ACKDELAY;                          /**< ACK DELAY, offset: 0x7C */
+  __IO uint32_t FILTERFAIL_CODE;                   /**< FILTER FAIL CODE, offset: 0x80 */
+  __IO uint32_t RX_WTR_MARK;                       /**< RECEIVE WATER MARK, offset: 0x84 */
+       uint8_t RESERVED_1[4];
+  __IO uint32_t SLOT_PRELOAD;                      /**< SLOT PRELOAD, offset: 0x8C */
+  __I  uint32_t SEQ_STATE;                         /**< 802.15.4 SEQUENCE STATE, offset: 0x90 */
+  __IO uint32_t TMR_PRESCALE;                      /**< TIMER PRESCALER, offset: 0x94 */
+  __IO uint32_t LENIENCY_LSB;                      /**< LENIENCY LSB, offset: 0x98 */
+  __IO uint32_t LENIENCY_MSB;                      /**< LENIENCY MSB, offset: 0x9C */
+  __I  uint32_t PART_ID;                           /**< PART ID, offset: 0xA0 */
+       uint8_t RESERVED_2[92];
+  __IO uint16_t PKT_BUFFER_TX[64];                 /**< Packet Buffer TX, array offset: 0x100, array step: 0x2 */
+  __IO uint16_t PKT_BUFFER_RX[64];                 /**< Packet Buffer RX, array offset: 0x180, array step: 0x2 */
+} ZLL_Type;
+
+/* ----------------------------------------------------------------------------
+   -- ZLL Register Masks
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup ZLL_Register_Masks ZLL Register Masks
+ * @{
+ */
+
+/*! @name IRQSTS - INTERRUPT REQUEST STATUS */
+/*! @{ */
+#define ZLL_IRQSTS_SEQIRQ_MASK                   (0x1U)
+#define ZLL_IRQSTS_SEQIRQ_SHIFT                  (0U)
+/*! SEQIRQ - Sequencer IRQ
+ *  0b0..A Sequencer Interrupt has not occurred
+ *  0b1..A Sequencer Interrupt has occurred
+ */
+#define ZLL_IRQSTS_SEQIRQ(x)                     (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_SEQIRQ_SHIFT)) & ZLL_IRQSTS_SEQIRQ_MASK)
+#define ZLL_IRQSTS_TXIRQ_MASK                    (0x2U)
+#define ZLL_IRQSTS_TXIRQ_SHIFT                   (1U)
+/*! TXIRQ - TX IRQ
+ *  0b0..A TX Interrupt has not occurred
+ *  0b1..A TX Interrupt has occurred
+ */
+#define ZLL_IRQSTS_TXIRQ(x)                      (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TXIRQ_SHIFT)) & ZLL_IRQSTS_TXIRQ_MASK)
+#define ZLL_IRQSTS_RXIRQ_MASK                    (0x4U)
+#define ZLL_IRQSTS_RXIRQ_SHIFT                   (2U)
+/*! RXIRQ - RX IRQ
+ *  0b0..A RX Interrupt has not occurred
+ *  0b1..A RX Interrupt has occurred
+ */
+#define ZLL_IRQSTS_RXIRQ(x)                      (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_RXIRQ_SHIFT)) & ZLL_IRQSTS_RXIRQ_MASK)
+#define ZLL_IRQSTS_CCAIRQ_MASK                   (0x8U)
+#define ZLL_IRQSTS_CCAIRQ_SHIFT                  (3U)
+/*! CCAIRQ - CCA IRQ
+ *  0b0..A CCA Interrupt has not occurred
+ *  0b1..A CCA Interrupt has occurred
+ */
+#define ZLL_IRQSTS_CCAIRQ(x)                     (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_CCAIRQ_SHIFT)) & ZLL_IRQSTS_CCAIRQ_MASK)
+#define ZLL_IRQSTS_RXWTRMRKIRQ_MASK              (0x10U)
+#define ZLL_IRQSTS_RXWTRMRKIRQ_SHIFT             (4U)
+/*! RXWTRMRKIRQ - Receive Watermark IRQ
+ *  0b0..A Receive Watermark Interrupt has not occurred
+ *  0b1..A Receive Watermark Interrupt has occurred
+ */
+#define ZLL_IRQSTS_RXWTRMRKIRQ(x)                (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_RXWTRMRKIRQ_SHIFT)) & ZLL_IRQSTS_RXWTRMRKIRQ_MASK)
+#define ZLL_IRQSTS_FILTERFAIL_IRQ_MASK           (0x20U)
+#define ZLL_IRQSTS_FILTERFAIL_IRQ_SHIFT          (5U)
+/*! FILTERFAIL_IRQ - Filter Fail IRQ
+ *  0b0..A Filter Fail Interrupt has not occurred
+ *  0b1..A Filter Fail Interrupt has occurred
+ */
+#define ZLL_IRQSTS_FILTERFAIL_IRQ(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_FILTERFAIL_IRQ_SHIFT)) & ZLL_IRQSTS_FILTERFAIL_IRQ_MASK)
+#define ZLL_IRQSTS_PLL_UNLOCK_IRQ_MASK           (0x40U)
+#define ZLL_IRQSTS_PLL_UNLOCK_IRQ_SHIFT          (6U)
+/*! PLL_UNLOCK_IRQ - PLL Unlock IRQ
+ *  0b0..A PLL Unlock Interrupt has not occurred
+ *  0b1..A PLL Unlock Interrupt has occurred
+ */
+#define ZLL_IRQSTS_PLL_UNLOCK_IRQ(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_PLL_UNLOCK_IRQ_SHIFT)) & ZLL_IRQSTS_PLL_UNLOCK_IRQ_MASK)
+#define ZLL_IRQSTS_RX_FRM_PEND_MASK              (0x80U)
+#define ZLL_IRQSTS_RX_FRM_PEND_SHIFT             (7U)
+#define ZLL_IRQSTS_RX_FRM_PEND(x)                (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_RX_FRM_PEND_SHIFT)) & ZLL_IRQSTS_RX_FRM_PEND_MASK)
+#define ZLL_IRQSTS_WAKE_IRQ_MASK                 (0x100U)
+#define ZLL_IRQSTS_WAKE_IRQ_SHIFT                (8U)
+/*! WAKE_IRQ - WAKE Interrupt Request
+ *  0b0..A Wake Interrupt has not occurred
+ *  0b1..A Wake Interrupt has occurred
+ */
+#define ZLL_IRQSTS_WAKE_IRQ(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_WAKE_IRQ_SHIFT)) & ZLL_IRQSTS_WAKE_IRQ_MASK)
+#define ZLL_IRQSTS_TSM_IRQ_MASK                  (0x400U)
+#define ZLL_IRQSTS_TSM_IRQ_SHIFT                 (10U)
+/*! TSM_IRQ - TSM IRQ
+ *  0b0..A TSM Interrupt has not occurred
+ *  0b1..A TSM Interrupt has occurred
+ */
+#define ZLL_IRQSTS_TSM_IRQ(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TSM_IRQ_SHIFT)) & ZLL_IRQSTS_TSM_IRQ_MASK)
+#define ZLL_IRQSTS_ENH_PKT_STATUS_MASK           (0x800U)
+#define ZLL_IRQSTS_ENH_PKT_STATUS_SHIFT          (11U)
+/*! ENH_PKT_STATUS - Enhanced Packet Status
+ *  0b0..The last packet received was neither 4e- nor 2015-compliant
+ *  0b1..The last packet received was 4e- or 2015-compliant (RX_FRAME_FILTER register should be queried for additional status bits)
+ */
+#define ZLL_IRQSTS_ENH_PKT_STATUS(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_ENH_PKT_STATUS_SHIFT)) & ZLL_IRQSTS_ENH_PKT_STATUS_MASK)
+#define ZLL_IRQSTS_PI_MASK                       (0x1000U)
+#define ZLL_IRQSTS_PI_SHIFT                      (12U)
+/*! PI - Poll Indication
+ *  0b0..the received packet was not a data request
+ *  0b1..the received packet was a data request, regardless of whether a Source Address table match occurred, or whether Source Address Management is enabled or not
+ */
+#define ZLL_IRQSTS_PI(x)                         (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_PI_SHIFT)) & ZLL_IRQSTS_PI_MASK)
+#define ZLL_IRQSTS_SRCADDR_MASK                  (0x2000U)
+#define ZLL_IRQSTS_SRCADDR_SHIFT                 (13U)
+#define ZLL_IRQSTS_SRCADDR(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_SRCADDR_SHIFT)) & ZLL_IRQSTS_SRCADDR_MASK)
+#define ZLL_IRQSTS_CCA_MASK                      (0x4000U)
+#define ZLL_IRQSTS_CCA_SHIFT                     (14U)
+/*! CCA - CCA Status
+ *  0b0..IDLE
+ *  0b1..BUSY
+ */
+#define ZLL_IRQSTS_CCA(x)                        (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_CCA_SHIFT)) & ZLL_IRQSTS_CCA_MASK)
+#define ZLL_IRQSTS_CRCVALID_MASK                 (0x8000U)
+#define ZLL_IRQSTS_CRCVALID_SHIFT                (15U)
+/*! CRCVALID - CRC Valid Status
+ *  0b0..Rx FCS != calculated CRC (incorrect)
+ *  0b1..Rx FCS = calculated CRC (correct)
+ */
+#define ZLL_IRQSTS_CRCVALID(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_CRCVALID_SHIFT)) & ZLL_IRQSTS_CRCVALID_MASK)
+#define ZLL_IRQSTS_TMR1IRQ_MASK                  (0x10000U)
+#define ZLL_IRQSTS_TMR1IRQ_SHIFT                 (16U)
+#define ZLL_IRQSTS_TMR1IRQ(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR1IRQ_SHIFT)) & ZLL_IRQSTS_TMR1IRQ_MASK)
+#define ZLL_IRQSTS_TMR2IRQ_MASK                  (0x20000U)
+#define ZLL_IRQSTS_TMR2IRQ_SHIFT                 (17U)
+#define ZLL_IRQSTS_TMR2IRQ(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR2IRQ_SHIFT)) & ZLL_IRQSTS_TMR2IRQ_MASK)
+#define ZLL_IRQSTS_TMR3IRQ_MASK                  (0x40000U)
+#define ZLL_IRQSTS_TMR3IRQ_SHIFT                 (18U)
+#define ZLL_IRQSTS_TMR3IRQ(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR3IRQ_SHIFT)) & ZLL_IRQSTS_TMR3IRQ_MASK)
+#define ZLL_IRQSTS_TMR4IRQ_MASK                  (0x80000U)
+#define ZLL_IRQSTS_TMR4IRQ_SHIFT                 (19U)
+#define ZLL_IRQSTS_TMR4IRQ(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR4IRQ_SHIFT)) & ZLL_IRQSTS_TMR4IRQ_MASK)
+#define ZLL_IRQSTS_TMR1MSK_MASK                  (0x100000U)
+#define ZLL_IRQSTS_TMR1MSK_SHIFT                 (20U)
+/*! TMR1MSK - Timer Comperator 1 Interrupt Mask bit
+ *  0b0..allows interrupt when comparator matches event timer count
+ *  0b1..Interrupt generation is disabled, but a TMR1IRQ flag can be set
+ */
+#define ZLL_IRQSTS_TMR1MSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR1MSK_SHIFT)) & ZLL_IRQSTS_TMR1MSK_MASK)
+#define ZLL_IRQSTS_TMR2MSK_MASK                  (0x200000U)
+#define ZLL_IRQSTS_TMR2MSK_SHIFT                 (21U)
+/*! TMR2MSK - Timer Comperator 2 Interrupt Mask bit
+ *  0b0..allows interrupt when comparator matches event timer count
+ *  0b1..Interrupt generation is disabled, but a TMR2IRQ flag can be set
+ */
+#define ZLL_IRQSTS_TMR2MSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR2MSK_SHIFT)) & ZLL_IRQSTS_TMR2MSK_MASK)
+#define ZLL_IRQSTS_TMR3MSK_MASK                  (0x400000U)
+#define ZLL_IRQSTS_TMR3MSK_SHIFT                 (22U)
+/*! TMR3MSK - Timer Comperator 3 Interrupt Mask bit
+ *  0b0..allows interrupt when comparator matches event timer count
+ *  0b1..Interrupt generation is disabled, but a TMR3IRQ flag can be set
+ */
+#define ZLL_IRQSTS_TMR3MSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR3MSK_SHIFT)) & ZLL_IRQSTS_TMR3MSK_MASK)
+#define ZLL_IRQSTS_TMR4MSK_MASK                  (0x800000U)
+#define ZLL_IRQSTS_TMR4MSK_SHIFT                 (23U)
+/*! TMR4MSK - Timer Comperator 4 Interrupt Mask bit
+ *  0b0..allows interrupt when comparator matches event timer count
+ *  0b1..Interrupt generation is disabled, but a TMR4IRQ flag can be set
+ */
+#define ZLL_IRQSTS_TMR4MSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_TMR4MSK_SHIFT)) & ZLL_IRQSTS_TMR4MSK_MASK)
+#define ZLL_IRQSTS_RX_FRAME_LENGTH_MASK          (0x7F000000U)
+#define ZLL_IRQSTS_RX_FRAME_LENGTH_SHIFT         (24U)
+#define ZLL_IRQSTS_RX_FRAME_LENGTH(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_IRQSTS_RX_FRAME_LENGTH_SHIFT)) & ZLL_IRQSTS_RX_FRAME_LENGTH_MASK)
+/*! @} */
+
+/*! @name PHY_CTRL - PHY CONTROL */
+/*! @{ */
+#define ZLL_PHY_CTRL_XCVSEQ_MASK                 (0x7U)
+#define ZLL_PHY_CTRL_XCVSEQ_SHIFT                (0U)
+/*! XCVSEQ - 802.15.4 Transceiver Sequence Selector
+ *  0b000..I (IDLE)
+ *  0b001..R (RECEIVE)
+ *  0b010..T (TRANSMIT)
+ *  0b011..C (CCA)
+ *  0b100..TR (TRANSMIT/RECEIVE)
+ *  0b101..CCCA (CONTINUOUS CCA)
+ *  0b110..Reserved
+ *  0b111..Reserved
+ */
+#define ZLL_PHY_CTRL_XCVSEQ(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_XCVSEQ_SHIFT)) & ZLL_PHY_CTRL_XCVSEQ_MASK)
+#define ZLL_PHY_CTRL_AUTOACK_MASK                (0x8U)
+#define ZLL_PHY_CTRL_AUTOACK_SHIFT               (3U)
+/*! AUTOACK - Auto Acknowledge Enable
+ *  0b0..sequence manager will not follow a receive frame with a Tx Ack frame, under any conditions; the autosequence will terminate after the receive frame.
+ *  0b1..sequence manager will follow a receive frame with an automatic hardware-generated Tx Ack frame, assuming other necessary conditions are met.
+ */
+#define ZLL_PHY_CTRL_AUTOACK(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_AUTOACK_SHIFT)) & ZLL_PHY_CTRL_AUTOACK_MASK)
+#define ZLL_PHY_CTRL_RXACKRQD_MASK               (0x10U)
+#define ZLL_PHY_CTRL_RXACKRQD_SHIFT              (4U)
+/*! RXACKRQD - Receive Acknowledge Frame required
+ *  0b0..An ordinary receive frame (any type of frame) follows the transmit frame.
+ *  0b1..A receive Ack frame is expected to follow the transmit frame (non-Ack frames are rejected).
+ */
+#define ZLL_PHY_CTRL_RXACKRQD(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_RXACKRQD_SHIFT)) & ZLL_PHY_CTRL_RXACKRQD_MASK)
+#define ZLL_PHY_CTRL_CCABFRTX_MASK               (0x20U)
+#define ZLL_PHY_CTRL_CCABFRTX_SHIFT              (5U)
+/*! CCABFRTX - CCA Before TX
+ *  0b0..no CCA required, transmit operation begins immediately.
+ *  0b1..at least one CCA measurement is required prior to the transmit operation (see also SLOTTED).
+ */
+#define ZLL_PHY_CTRL_CCABFRTX(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_CCABFRTX_SHIFT)) & ZLL_PHY_CTRL_CCABFRTX_MASK)
+#define ZLL_PHY_CTRL_SLOTTED_MASK                (0x40U)
+#define ZLL_PHY_CTRL_SLOTTED_SHIFT               (6U)
+#define ZLL_PHY_CTRL_SLOTTED(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_SLOTTED_SHIFT)) & ZLL_PHY_CTRL_SLOTTED_MASK)
+#define ZLL_PHY_CTRL_TMRTRIGEN_MASK              (0x80U)
+#define ZLL_PHY_CTRL_TMRTRIGEN_SHIFT             (7U)
+/*! TMRTRIGEN - Timer2 Trigger Enable
+ *  0b0..programmed sequence initiates immediately upon write to XCVSEQ.
+ *  0b1..allow timer TC2 (or TC2') to initiate a preprogrammed sequence (see XCVSEQ register).
+ */
+#define ZLL_PHY_CTRL_TMRTRIGEN(x)                (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TMRTRIGEN_SHIFT)) & ZLL_PHY_CTRL_TMRTRIGEN_MASK)
+#define ZLL_PHY_CTRL_SEQMSK_MASK                 (0x100U)
+#define ZLL_PHY_CTRL_SEQMSK_SHIFT                (8U)
+/*! SEQMSK - Sequencer Interrupt Mask
+ *  0b0..allows completion of an autosequence to generate a zigbee interrupt
+ *  0b1..Completion of an autosequence will set the SEQIRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_SEQMSK(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_SEQMSK_SHIFT)) & ZLL_PHY_CTRL_SEQMSK_MASK)
+#define ZLL_PHY_CTRL_TXMSK_MASK                  (0x200U)
+#define ZLL_PHY_CTRL_TXMSK_SHIFT                 (9U)
+/*! TXMSK - TX Interrupt Mask
+ *  0b0..allows completion of a TX operation to generate a zigbee interrupt
+ *  0b1..Completion of a TX operation will set the TXIRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_TXMSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TXMSK_SHIFT)) & ZLL_PHY_CTRL_TXMSK_MASK)
+#define ZLL_PHY_CTRL_RXMSK_MASK                  (0x400U)
+#define ZLL_PHY_CTRL_RXMSK_SHIFT                 (10U)
+/*! RXMSK - RX Interrupt Mask
+ *  0b0..allows completion of a RX operation to generate a zigbee interrupt
+ *  0b1..Completion of a RX operation will set the RXIRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_RXMSK(x)                    (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_RXMSK_SHIFT)) & ZLL_PHY_CTRL_RXMSK_MASK)
+#define ZLL_PHY_CTRL_CCAMSK_MASK                 (0x800U)
+#define ZLL_PHY_CTRL_CCAMSK_SHIFT                (11U)
+/*! CCAMSK - CCA Interrupt Mask
+ *  0b0..allows completion of a CCA operation to generate a zigbee interrupt
+ *  0b1..Completion of a CCA operation will set the CCA status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_CCAMSK(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_CCAMSK_SHIFT)) & ZLL_PHY_CTRL_CCAMSK_MASK)
+#define ZLL_PHY_CTRL_RX_WMRK_MSK_MASK            (0x1000U)
+#define ZLL_PHY_CTRL_RX_WMRK_MSK_SHIFT           (12U)
+/*! RX_WMRK_MSK - RX Watermark Interrupt Mask
+ *  0b0..allows a Received Byte Count match to the RX_WTR_MARK threshold register to generate a zigbee interrupt
+ *  0b1..A Received Byte Count match to the RX_WTR_MARK threshold register will set the RXWTRMRKIRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_RX_WMRK_MSK(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_RX_WMRK_MSK_SHIFT)) & ZLL_PHY_CTRL_RX_WMRK_MSK_MASK)
+#define ZLL_PHY_CTRL_FILTERFAIL_MSK_MASK         (0x2000U)
+#define ZLL_PHY_CTRL_FILTERFAIL_MSK_SHIFT        (13U)
+/*! FILTERFAIL_MSK - FilterFail Interrupt Mask
+ *  0b0..allows Packet Processor Filtering Failure to generate a zigbee interrupt
+ *  0b1..A Packet Processor Filtering Failure will set the FILTERFAIL_IRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_FILTERFAIL_MSK(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_FILTERFAIL_MSK_SHIFT)) & ZLL_PHY_CTRL_FILTERFAIL_MSK_MASK)
+#define ZLL_PHY_CTRL_PLL_UNLOCK_MSK_MASK         (0x4000U)
+#define ZLL_PHY_CTRL_PLL_UNLOCK_MSK_SHIFT        (14U)
+/*! PLL_UNLOCK_MSK - PLL Unlock Interrupt Mask
+ *  0b0..allows PLL unlock event to generate a zigbee interrupt
+ *  0b1..A PLL unlock event will set the PLL_UNLOCK_IRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_PLL_UNLOCK_MSK(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_PLL_UNLOCK_MSK_SHIFT)) & ZLL_PHY_CTRL_PLL_UNLOCK_MSK_MASK)
+#define ZLL_PHY_CTRL_CRC_MSK_MASK                (0x8000U)
+#define ZLL_PHY_CTRL_CRC_MSK_SHIFT               (15U)
+/*! CRC_MSK - CRC Mask
+ *  0b0..sequence manager ignores CRCVALID and considers the receive operation complete after the last octet of the frame has been received.
+ *  0b1..sequence manager requires CRCVALID=1 at the end of the received frame in order for the receive operation to complete successfully; if CRCVALID=0, sequence manager will return to preamble-detect mode after the last octet of the frame has been received.
+ */
+#define ZLL_PHY_CTRL_CRC_MSK(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_CRC_MSK_SHIFT)) & ZLL_PHY_CTRL_CRC_MSK_MASK)
+#define ZLL_PHY_CTRL_WAKE_MSK_MASK               (0x10000U)
+#define ZLL_PHY_CTRL_WAKE_MSK_SHIFT              (16U)
+/*! WAKE_MSK
+ *  0b0..Allows a wakeup from DSM to generate a zigbee interrupt
+ *  0b1..Wakeup from DSM will set the WAKE_IRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_WAKE_MSK(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_WAKE_MSK_SHIFT)) & ZLL_PHY_CTRL_WAKE_MSK_MASK)
+#define ZLL_PHY_CTRL_TSM_MSK_MASK                (0x40000U)
+#define ZLL_PHY_CTRL_TSM_MSK_SHIFT               (18U)
+/*! TSM_MSK
+ *  0b0..allows assertion of a TSM interrupt to generate a zigbee interrupt
+ *  0b1..Assertion of a TSM interrupt will set the TSM_IRQ status bit, but a zigbee interrupt is not generated
+ */
+#define ZLL_PHY_CTRL_TSM_MSK(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TSM_MSK_SHIFT)) & ZLL_PHY_CTRL_TSM_MSK_MASK)
+#define ZLL_PHY_CTRL_TMR1CMP_EN_MASK             (0x100000U)
+#define ZLL_PHY_CTRL_TMR1CMP_EN_SHIFT            (20U)
+/*! TMR1CMP_EN - Timer 1 Compare Enable
+ *  0b0..Don't allow an Event Timer Match to T1CMP to set TMR1IRQ
+ *  0b1..Allow an Event Timer Match to T1CMP to set TMR1IRQ
+ */
+#define ZLL_PHY_CTRL_TMR1CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TMR1CMP_EN_SHIFT)) & ZLL_PHY_CTRL_TMR1CMP_EN_MASK)
+#define ZLL_PHY_CTRL_TMR2CMP_EN_MASK             (0x200000U)
+#define ZLL_PHY_CTRL_TMR2CMP_EN_SHIFT            (21U)
+/*! TMR2CMP_EN - Timer 2 Compare Enable
+ *  0b0..Don't allow an Event Timer Match to T2CMP or T2PRIMECMP to set TMR2IRQ
+ *  0b1..Allow an Event Timer Match to T2CMP or T2PRIMECMP to set TMR2IRQ
+ */
+#define ZLL_PHY_CTRL_TMR2CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TMR2CMP_EN_SHIFT)) & ZLL_PHY_CTRL_TMR2CMP_EN_MASK)
+#define ZLL_PHY_CTRL_TMR3CMP_EN_MASK             (0x400000U)
+#define ZLL_PHY_CTRL_TMR3CMP_EN_SHIFT            (22U)
+/*! TMR3CMP_EN - Timer 3 Compare Enable
+ *  0b0..Don't allow an Event Timer Match to T3CMP to set TMR3IRQ
+ *  0b1..Allow an Event Timer Match to T3CMP to set TMR3IRQ
+ */
+#define ZLL_PHY_CTRL_TMR3CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TMR3CMP_EN_SHIFT)) & ZLL_PHY_CTRL_TMR3CMP_EN_MASK)
+#define ZLL_PHY_CTRL_TMR4CMP_EN_MASK             (0x800000U)
+#define ZLL_PHY_CTRL_TMR4CMP_EN_SHIFT            (23U)
+/*! TMR4CMP_EN - Timer 4 Compare Enable
+ *  0b0..Don't allow an Event Timer Match to T4CMP to set TMR4IRQ
+ *  0b1..Allow an Event Timer Match to T4CMP to set TMR4IRQ
+ */
+#define ZLL_PHY_CTRL_TMR4CMP_EN(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TMR4CMP_EN_SHIFT)) & ZLL_PHY_CTRL_TMR4CMP_EN_MASK)
+#define ZLL_PHY_CTRL_TC2PRIME_EN_MASK            (0x1000000U)
+#define ZLL_PHY_CTRL_TC2PRIME_EN_SHIFT           (24U)
+/*! TC2PRIME_EN - Timer 2 Prime Compare Enable
+ *  0b0..Don't allow a match of the lower 16 bits of Event Timer to T2PRIMECMP to set TMR2IRQ
+ *  0b1..Allow a match of the lower 16 bits of Event Timer to T2PRIMECMP to set TMR2IRQ
+ */
+#define ZLL_PHY_CTRL_TC2PRIME_EN(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TC2PRIME_EN_SHIFT)) & ZLL_PHY_CTRL_TC2PRIME_EN_MASK)
+#define ZLL_PHY_CTRL_PROMISCUOUS_MASK            (0x2000000U)
+#define ZLL_PHY_CTRL_PROMISCUOUS_SHIFT           (25U)
+/*! PROMISCUOUS - Promiscuous Mode Enable
+ *  0b0..normal mode
+ *  0b1..all packet filtering except frame length checking (FrameLength>=5 and FrameLength<=127) is bypassed.
+ */
+#define ZLL_PHY_CTRL_PROMISCUOUS(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_PROMISCUOUS_SHIFT)) & ZLL_PHY_CTRL_PROMISCUOUS_MASK)
+#define ZLL_PHY_CTRL_TC3_POSTPONE_ON_SFD_MASK    (0x4000000U)
+#define ZLL_PHY_CTRL_TC3_POSTPONE_ON_SFD_SHIFT   (26U)
+/*! TC3_POSTPONE_ON_SFD - Postpone TC3 Timeout On SFD Enable
+ *  0b0..TC3 Abort will occur on TMR3 timeout, regardless of rx_sfd_detect
+ *  0b1..TC3 Abort will be deferred on TMR3 timeout if rx_sfd_detect is asserted; otherwise the TC3 Abort will occur immediately
+ */
+#define ZLL_PHY_CTRL_TC3_POSTPONE_ON_SFD(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TC3_POSTPONE_ON_SFD_SHIFT)) & ZLL_PHY_CTRL_TC3_POSTPONE_ON_SFD_MASK)
+#define ZLL_PHY_CTRL_CCATYPE_MASK                (0x18000000U)
+#define ZLL_PHY_CTRL_CCATYPE_SHIFT               (27U)
+/*! CCATYPE - Clear Channel Assessment Type
+ *  0b00..ENERGY DETECT
+ *  0b01..CCA MODE 1
+ *  0b10..CCA MODE 2
+ *  0b11..CCA MODE 3
+ */
+#define ZLL_PHY_CTRL_CCATYPE(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_CCATYPE_SHIFT)) & ZLL_PHY_CTRL_CCATYPE_MASK)
+#define ZLL_PHY_CTRL_PANCORDNTR0_MASK            (0x20000000U)
+#define ZLL_PHY_CTRL_PANCORDNTR0_SHIFT           (29U)
+#define ZLL_PHY_CTRL_PANCORDNTR0(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_PANCORDNTR0_SHIFT)) & ZLL_PHY_CTRL_PANCORDNTR0_MASK)
+#define ZLL_PHY_CTRL_TC3TMOUT_MASK               (0x40000000U)
+#define ZLL_PHY_CTRL_TC3TMOUT_SHIFT              (30U)
+/*! TC3TMOUT - TMR3 Timeout Enable
+ *  0b0..TMR3 is a software timer only
+ *  0b1..Enable TMR3 to abort Rx or CCCA operations.
+ */
+#define ZLL_PHY_CTRL_TC3TMOUT(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TC3TMOUT_SHIFT)) & ZLL_PHY_CTRL_TC3TMOUT_MASK)
+#define ZLL_PHY_CTRL_TRCV_MSK_MASK               (0x80000000U)
+#define ZLL_PHY_CTRL_TRCV_MSK_SHIFT              (31U)
+/*! TRCV_MSK - Transceiver Global Interrupt Mask
+ *  0b0..Enable any unmasked interrupt source to assert zigbee interrupt
+ *  0b1..Mask all interrupt sources from asserting zigbee interrupt
+ */
+#define ZLL_PHY_CTRL_TRCV_MSK(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_PHY_CTRL_TRCV_MSK_SHIFT)) & ZLL_PHY_CTRL_TRCV_MSK_MASK)
+/*! @} */
+
+/*! @name EVENT_TMR - EVENT TIMER */
+/*! @{ */
+#define ZLL_EVENT_TMR_EVENT_TMR_LD_MASK          (0x1U)
+#define ZLL_EVENT_TMR_EVENT_TMR_LD_SHIFT         (0U)
+#define ZLL_EVENT_TMR_EVENT_TMR_LD(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_EVENT_TMR_EVENT_TMR_LD_SHIFT)) & ZLL_EVENT_TMR_EVENT_TMR_LD_MASK)
+#define ZLL_EVENT_TMR_EVENT_TMR_ADD_MASK         (0x2U)
+#define ZLL_EVENT_TMR_EVENT_TMR_ADD_SHIFT        (1U)
+#define ZLL_EVENT_TMR_EVENT_TMR_ADD(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_EVENT_TMR_EVENT_TMR_ADD_SHIFT)) & ZLL_EVENT_TMR_EVENT_TMR_ADD_MASK)
+#define ZLL_EVENT_TMR_EVENT_TMR_FRAC_MASK        (0xF0U)
+#define ZLL_EVENT_TMR_EVENT_TMR_FRAC_SHIFT       (4U)
+#define ZLL_EVENT_TMR_EVENT_TMR_FRAC(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_EVENT_TMR_EVENT_TMR_FRAC_SHIFT)) & ZLL_EVENT_TMR_EVENT_TMR_FRAC_MASK)
+#define ZLL_EVENT_TMR_EVENT_TMR_MASK             (0xFFFFFF00U)
+#define ZLL_EVENT_TMR_EVENT_TMR_SHIFT            (8U)
+#define ZLL_EVENT_TMR_EVENT_TMR(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_EVENT_TMR_EVENT_TMR_SHIFT)) & ZLL_EVENT_TMR_EVENT_TMR_MASK)
+/*! @} */
+
+/*! @name TIMESTAMP - TIMESTAMP */
+/*! @{ */
+#define ZLL_TIMESTAMP_TIMESTAMP_FRAC_MASK        (0xF0U)
+#define ZLL_TIMESTAMP_TIMESTAMP_FRAC_SHIFT       (4U)
+#define ZLL_TIMESTAMP_TIMESTAMP_FRAC(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_TIMESTAMP_TIMESTAMP_FRAC_SHIFT)) & ZLL_TIMESTAMP_TIMESTAMP_FRAC_MASK)
+#define ZLL_TIMESTAMP_TIMESTAMP_MASK             (0xFFFFFF00U)
+#define ZLL_TIMESTAMP_TIMESTAMP_SHIFT            (8U)
+#define ZLL_TIMESTAMP_TIMESTAMP(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_TIMESTAMP_TIMESTAMP_SHIFT)) & ZLL_TIMESTAMP_TIMESTAMP_MASK)
+/*! @} */
+
+/*! @name T1CMP - T1 COMPARE */
+/*! @{ */
+#define ZLL_T1CMP_T1CMP_MASK                     (0xFFFFFFU)
+#define ZLL_T1CMP_T1CMP_SHIFT                    (0U)
+#define ZLL_T1CMP_T1CMP(x)                       (((uint32_t)(((uint32_t)(x)) << ZLL_T1CMP_T1CMP_SHIFT)) & ZLL_T1CMP_T1CMP_MASK)
+/*! @} */
+
+/*! @name T2CMP - T2 COMPARE */
+/*! @{ */
+#define ZLL_T2CMP_T2CMP_MASK                     (0xFFFFFFU)
+#define ZLL_T2CMP_T2CMP_SHIFT                    (0U)
+#define ZLL_T2CMP_T2CMP(x)                       (((uint32_t)(((uint32_t)(x)) << ZLL_T2CMP_T2CMP_SHIFT)) & ZLL_T2CMP_T2CMP_MASK)
+/*! @} */
+
+/*! @name T2PRIMECMP - T2 PRIME COMPARE */
+/*! @{ */
+#define ZLL_T2PRIMECMP_T2PRIMECMP_MASK           (0xFFFFU)
+#define ZLL_T2PRIMECMP_T2PRIMECMP_SHIFT          (0U)
+#define ZLL_T2PRIMECMP_T2PRIMECMP(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_T2PRIMECMP_T2PRIMECMP_SHIFT)) & ZLL_T2PRIMECMP_T2PRIMECMP_MASK)
+/*! @} */
+
+/*! @name T3CMP - T3 COMPARE */
+/*! @{ */
+#define ZLL_T3CMP_T3CMP_MASK                     (0xFFFFFFU)
+#define ZLL_T3CMP_T3CMP_SHIFT                    (0U)
+#define ZLL_T3CMP_T3CMP(x)                       (((uint32_t)(((uint32_t)(x)) << ZLL_T3CMP_T3CMP_SHIFT)) & ZLL_T3CMP_T3CMP_MASK)
+/*! @} */
+
+/*! @name T4CMP - T4 COMPARE */
+/*! @{ */
+#define ZLL_T4CMP_T4CMP_MASK                     (0xFFFFFFU)
+#define ZLL_T4CMP_T4CMP_SHIFT                    (0U)
+#define ZLL_T4CMP_T4CMP(x)                       (((uint32_t)(((uint32_t)(x)) << ZLL_T4CMP_T4CMP_SHIFT)) & ZLL_T4CMP_T4CMP_MASK)
+/*! @} */
+
+/*! @name PA_PWR - PA POWER */
+/*! @{ */
+#define ZLL_PA_PWR_PA_PWR_MASK                   (0x3FU)
+#define ZLL_PA_PWR_PA_PWR_SHIFT                  (0U)
+#define ZLL_PA_PWR_PA_PWR(x)                     (((uint32_t)(((uint32_t)(x)) << ZLL_PA_PWR_PA_PWR_SHIFT)) & ZLL_PA_PWR_PA_PWR_MASK)
+/*! @} */
+
+/*! @name CHANNEL_NUM0 - CHANNEL NUMBER 0 */
+/*! @{ */
+#define ZLL_CHANNEL_NUM0_CHANNEL_NUM0_MASK       (0x7FU)
+#define ZLL_CHANNEL_NUM0_CHANNEL_NUM0_SHIFT      (0U)
+#define ZLL_CHANNEL_NUM0_CHANNEL_NUM0(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_CHANNEL_NUM0_CHANNEL_NUM0_SHIFT)) & ZLL_CHANNEL_NUM0_CHANNEL_NUM0_MASK)
+/*! @} */
+
+/*! @name LQI_AND_RSSI - LQI AND RSSI */
+/*! @{ */
+#define ZLL_LQI_AND_RSSI_LQI_VALUE_MASK          (0xFFU)
+#define ZLL_LQI_AND_RSSI_LQI_VALUE_SHIFT         (0U)
+#define ZLL_LQI_AND_RSSI_LQI_VALUE(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_LQI_AND_RSSI_LQI_VALUE_SHIFT)) & ZLL_LQI_AND_RSSI_LQI_VALUE_MASK)
+#define ZLL_LQI_AND_RSSI_RSSI_MASK               (0xFF00U)
+#define ZLL_LQI_AND_RSSI_RSSI_SHIFT              (8U)
+#define ZLL_LQI_AND_RSSI_RSSI(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_LQI_AND_RSSI_RSSI_SHIFT)) & ZLL_LQI_AND_RSSI_RSSI_MASK)
+#define ZLL_LQI_AND_RSSI_CCA1_ED_FNL_MASK        (0xFF0000U)
+#define ZLL_LQI_AND_RSSI_CCA1_ED_FNL_SHIFT       (16U)
+#define ZLL_LQI_AND_RSSI_CCA1_ED_FNL(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_LQI_AND_RSSI_CCA1_ED_FNL_SHIFT)) & ZLL_LQI_AND_RSSI_CCA1_ED_FNL_MASK)
+/*! @} */
+
+/*! @name MACSHORTADDRS0 - MAC SHORT ADDRESS 0 */
+/*! @{ */
+#define ZLL_MACSHORTADDRS0_MACPANID0_MASK        (0xFFFFU)
+#define ZLL_MACSHORTADDRS0_MACPANID0_SHIFT       (0U)
+#define ZLL_MACSHORTADDRS0_MACPANID0(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_MACSHORTADDRS0_MACPANID0_SHIFT)) & ZLL_MACSHORTADDRS0_MACPANID0_MASK)
+#define ZLL_MACSHORTADDRS0_MACSHORTADDRS0_MASK   (0xFFFF0000U)
+#define ZLL_MACSHORTADDRS0_MACSHORTADDRS0_SHIFT  (16U)
+#define ZLL_MACSHORTADDRS0_MACSHORTADDRS0(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_MACSHORTADDRS0_MACSHORTADDRS0_SHIFT)) & ZLL_MACSHORTADDRS0_MACSHORTADDRS0_MASK)
+/*! @} */
+
+/*! @name MACLONGADDRS0_LSB - MAC LONG ADDRESS 0 LSB */
+/*! @{ */
+#define ZLL_MACLONGADDRS0_LSB_MACLONGADDRS0_LSB_MASK (0xFFFFFFFFU)
+#define ZLL_MACLONGADDRS0_LSB_MACLONGADDRS0_LSB_SHIFT (0U)
+#define ZLL_MACLONGADDRS0_LSB_MACLONGADDRS0_LSB(x) (((uint32_t)(((uint32_t)(x)) << ZLL_MACLONGADDRS0_LSB_MACLONGADDRS0_LSB_SHIFT)) & ZLL_MACLONGADDRS0_LSB_MACLONGADDRS0_LSB_MASK)
+/*! @} */
+
+/*! @name MACLONGADDRS0_MSB - MAC LONG ADDRESS 0 MSB */
+/*! @{ */
+#define ZLL_MACLONGADDRS0_MSB_MACLONGADDRS0_MSB_MASK (0xFFFFFFFFU)
+#define ZLL_MACLONGADDRS0_MSB_MACLONGADDRS0_MSB_SHIFT (0U)
+#define ZLL_MACLONGADDRS0_MSB_MACLONGADDRS0_MSB(x) (((uint32_t)(((uint32_t)(x)) << ZLL_MACLONGADDRS0_MSB_MACLONGADDRS0_MSB_SHIFT)) & ZLL_MACLONGADDRS0_MSB_MACLONGADDRS0_MSB_MASK)
+/*! @} */
+
+/*! @name RX_FRAME_FILTER - RECEIVE FRAME FILTER */
+/*! @{ */
+#define ZLL_RX_FRAME_FILTER_BEACON_FT_MASK       (0x1U)
+#define ZLL_RX_FRAME_FILTER_BEACON_FT_SHIFT      (0U)
+/*! BEACON_FT - Beacon Frame Type Enable
+ *  0b0..reject all Beacon frames
+ *  0b1..Beacon frame type enabled.
+ */
+#define ZLL_RX_FRAME_FILTER_BEACON_FT(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_BEACON_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_BEACON_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_DATA_FT_MASK         (0x2U)
+#define ZLL_RX_FRAME_FILTER_DATA_FT_SHIFT        (1U)
+/*! DATA_FT - Data Frame Type Enable
+ *  0b0..reject all Beacon frames
+ *  0b1..Data frame type enabled.
+ */
+#define ZLL_RX_FRAME_FILTER_DATA_FT(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_DATA_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_DATA_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_ACK_FT_MASK          (0x4U)
+#define ZLL_RX_FRAME_FILTER_ACK_FT_SHIFT         (2U)
+/*! ACK_FT - Ack Frame Type Enable
+ *  0b0..reject all Acknowledge frames
+ *  0b1..Acknowledge frame type enabled.
+ */
+#define ZLL_RX_FRAME_FILTER_ACK_FT(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_ACK_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_ACK_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_CMD_FT_MASK          (0x8U)
+#define ZLL_RX_FRAME_FILTER_CMD_FT_SHIFT         (3U)
+/*! CMD_FT - MAC Command Frame Type Enable
+ *  0b0..reject all MAC Command frames
+ *  0b1..MAC Command frame type enabled.
+ */
+#define ZLL_RX_FRAME_FILTER_CMD_FT(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_CMD_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_CMD_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_LLDN_FT_MASK         (0x10U)
+#define ZLL_RX_FRAME_FILTER_LLDN_FT_SHIFT        (4U)
+/*! LLDN_FT - LLDN Frame Type Enable
+ *  0b0..reject all LLDN frames
+ *  0b1..LLDN frame type enabled (Frame Type 4).
+ */
+#define ZLL_RX_FRAME_FILTER_LLDN_FT(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_LLDN_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_LLDN_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_FT_MASK (0x20U)
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_FT_SHIFT (5U)
+/*! MULTIPURPOSE_FT - Multipurpose Frame Type Enable
+ *  0b0..reject all Multipurpose frames
+ *  0b1..Multipurpose frame type enabled (Frame Type 5).
+ */
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_FT(x)   (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_MULTIPURPOSE_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_MULTIPURPOSE_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_NS_FT_MASK           (0x40U)
+#define ZLL_RX_FRAME_FILTER_NS_FT_SHIFT          (6U)
+/*! NS_FT - "Not Specified" Frame Type Enable
+ *  0b0..reject all "Not Specified" frames
+ *  0b1..Not-specified (reserved) frame type enabled. Applies to Frame Type 6. No packet filtering is performed, except for frame length checking (FrameLength>=5 and FrameLength<=127). No AUTOACK is transmitted for this Frame Type
+ */
+#define ZLL_RX_FRAME_FILTER_NS_FT(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_NS_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_NS_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FT_MASK     (0x80U)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FT_SHIFT    (7U)
+/*! EXTENDED_FT - Extended Frame Type Enable
+ *  0b0..reject all Extended frames
+ *  0b1..Extended frame type enabled (Frame Type 7).
+ */
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FT(x)       (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_EXTENDED_FT_SHIFT)) & ZLL_RX_FRAME_FILTER_EXTENDED_FT_MASK)
+#define ZLL_RX_FRAME_FILTER_FRM_VER_FILTER_MASK  (0xF00U)
+#define ZLL_RX_FRAME_FILTER_FRM_VER_FILTER_SHIFT (8U)
+#define ZLL_RX_FRAME_FILTER_FRM_VER_FILTER(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_FRM_VER_FILTER_SHIFT)) & ZLL_RX_FRAME_FILTER_FRM_VER_FILTER_MASK)
+#define ZLL_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS_MASK (0x4000U)
+#define ZLL_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS_SHIFT (14U)
+/*! ACTIVE_PROMISCUOUS - Active Promiscuous
+ *  0b0..normal operation
+ *  0b1..Provide Data Indication on all received packets under the same rules which apply in PROMISCUOUS mode, however acknowledge those packets under rules which apply in non-PROMISCUOUS mode
+ */
+#define ZLL_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS(x) (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS_SHIFT)) & ZLL_RX_FRAME_FILTER_ACTIVE_PROMISCUOUS_MASK)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FCS_CHK_MASK (0x8000U)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FCS_CHK_SHIFT (15U)
+/*! EXTENDED_FCS_CHK - Verify FCS on Frame Type Extended
+ *  0b0..Packet Processor will not check FCS for Frame Type EXTENDED (default)
+ *  0b1..Packet Processor will check FCS at end-of-packet based on packet length derived from PHR, for Frame Type EXTENDED
+ */
+#define ZLL_RX_FRAME_FILTER_EXTENDED_FCS_CHK(x)  (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_EXTENDED_FCS_CHK_SHIFT)) & ZLL_RX_FRAME_FILTER_EXTENDED_FCS_CHK_MASK)
+#define ZLL_RX_FRAME_FILTER_FV2_BEACON_RECD_MASK (0x10000U)
+#define ZLL_RX_FRAME_FILTER_FV2_BEACON_RECD_SHIFT (16U)
+/*! FV2_BEACON_RECD - Frame Version 2 Beacon Packet Received
+ *  0b0..The last packet received was not Frame Type Beacon with Frame Version 2
+ *  0b1..The last packet received was Frame Type Beacon with Frame Version 2, and FRM_VER_FILTER[2]=1 to allow such packets
+ */
+#define ZLL_RX_FRAME_FILTER_FV2_BEACON_RECD(x)   (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_FV2_BEACON_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_FV2_BEACON_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_FV2_DATA_RECD_MASK   (0x20000U)
+#define ZLL_RX_FRAME_FILTER_FV2_DATA_RECD_SHIFT  (17U)
+/*! FV2_DATA_RECD - Frame Version 2 Data Packet Received
+ *  0b0..The last packet received was not Frame Type Data with Frame Version 2
+ *  0b1..The last packet received was Frame Type Data with Frame Version 2, and FRM_VER_FILTER[2]=1 to allow such packets
+ */
+#define ZLL_RX_FRAME_FILTER_FV2_DATA_RECD(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_FV2_DATA_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_FV2_DATA_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_FV2_ACK_RECD_MASK    (0x40000U)
+#define ZLL_RX_FRAME_FILTER_FV2_ACK_RECD_SHIFT   (18U)
+/*! FV2_ACK_RECD - Frame Version 2 Acknowledge Packet Received
+ *  0b0..The last packet received was not Frame Type Ack with Frame Version 2
+ *  0b1..The last packet received was Frame Type Ack with Frame Version 2, and FRM_VER_FILTER[2]=1 to allow such packets
+ */
+#define ZLL_RX_FRAME_FILTER_FV2_ACK_RECD(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_FV2_ACK_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_FV2_ACK_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_FV2_CMD_RECD_MASK    (0x80000U)
+#define ZLL_RX_FRAME_FILTER_FV2_CMD_RECD_SHIFT   (19U)
+/*! FV2_CMD_RECD - Frame Version 2 MAC Command Packet Received
+ *  0b0..The last packet received was not Frame Type MAC Command with Frame Version 2
+ *  0b1..The last packet received was Frame Type MAC Command with Frame Version 2, and FRM_VER_FILTER[2]=1 to allow such packets
+ */
+#define ZLL_RX_FRAME_FILTER_FV2_CMD_RECD(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_FV2_CMD_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_FV2_CMD_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_LLDN_RECD_MASK       (0x100000U)
+#define ZLL_RX_FRAME_FILTER_LLDN_RECD_SHIFT      (20U)
+/*! LLDN_RECD - LLDN Packet Received
+ *  0b0..The last packet received was not Frame Type LLDN
+ *  0b1..The last packet received was Frame Type LLDN, and LLDN_FT=1 to allow such packets.
+ */
+#define ZLL_RX_FRAME_FILTER_LLDN_RECD(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_LLDN_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_LLDN_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_RECD_MASK (0x200000U)
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_RECD_SHIFT (21U)
+/*! MULTIPURPOSE_RECD - Multipurpose Packet Received
+ *  0b0..last packet received was not Frame Type MULTIPURPOSE
+ *  0b1..The last packet received was Frame Type MULTIPURPOSE, and MULTIPURPOSE_FT=1 to allow such packets.
+ */
+#define ZLL_RX_FRAME_FILTER_MULTIPURPOSE_RECD(x) (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_MULTIPURPOSE_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_MULTIPURPOSE_RECD_MASK)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_RECD_MASK   (0x800000U)
+#define ZLL_RX_FRAME_FILTER_EXTENDED_RECD_SHIFT  (23U)
+/*! EXTENDED_RECD - Extended Packet Received
+ *  0b0..The last packet received was not Frame Type EXTENDED
+ *  0b1..The last packet received was Frame Type EXTENDED, and EXTENDED_FT=1 to allow such packets.
+ */
+#define ZLL_RX_FRAME_FILTER_EXTENDED_RECD(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_RX_FRAME_FILTER_EXTENDED_RECD_SHIFT)) & ZLL_RX_FRAME_FILTER_EXTENDED_RECD_MASK)
+/*! @} */
+
+/*! @name CCA_LQI_CTRL - CCA AND LQI CONTROL */
+/*! @{ */
+#define ZLL_CCA_LQI_CTRL_CCA1_THRESH_MASK        (0xFFU)
+#define ZLL_CCA_LQI_CTRL_CCA1_THRESH_SHIFT       (0U)
+#define ZLL_CCA_LQI_CTRL_CCA1_THRESH(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_CCA_LQI_CTRL_CCA1_THRESH_SHIFT)) & ZLL_CCA_LQI_CTRL_CCA1_THRESH_MASK)
+#define ZLL_CCA_LQI_CTRL_LQI_OFFSET_COMP_MASK    (0xFF0000U)
+#define ZLL_CCA_LQI_CTRL_LQI_OFFSET_COMP_SHIFT   (16U)
+#define ZLL_CCA_LQI_CTRL_LQI_OFFSET_COMP(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_CCA_LQI_CTRL_LQI_OFFSET_COMP_SHIFT)) & ZLL_CCA_LQI_CTRL_LQI_OFFSET_COMP_MASK)
+#define ZLL_CCA_LQI_CTRL_SIMUL_CCA_RX_MASK       (0x1000000U)
+#define ZLL_CCA_LQI_CTRL_SIMUL_CCA_RX_SHIFT      (24U)
+/*! SIMUL_CCA_RX - Simultaneous CCA and Receive Enable
+ *  0b0..Packets can't be received during CCA measurement
+ *  0b1..Packet reception is enabled during CCA measurement if preamble and SFD are detected
+ */
+#define ZLL_CCA_LQI_CTRL_SIMUL_CCA_RX(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_CCA_LQI_CTRL_SIMUL_CCA_RX_SHIFT)) & ZLL_CCA_LQI_CTRL_SIMUL_CCA_RX_MASK)
+#define ZLL_CCA_LQI_CTRL_CCA3_AND_NOT_OR_MASK    (0x8000000U)
+#define ZLL_CCA_LQI_CTRL_CCA3_AND_NOT_OR_SHIFT   (27U)
+/*! CCA3_AND_NOT_OR - CCA Mode 3 AND not OR
+ *  0b0..CCA1 or CCA2
+ *  0b1..CCA1 and CCA2
+ */
+#define ZLL_CCA_LQI_CTRL_CCA3_AND_NOT_OR(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_CCA_LQI_CTRL_CCA3_AND_NOT_OR_SHIFT)) & ZLL_CCA_LQI_CTRL_CCA3_AND_NOT_OR_MASK)
+/*! @} */
+
+/*! @name CCA2_CTRL - CCA2 CONTROL */
+/*! @{ */
+#define ZLL_CCA2_CTRL_CCA2_NUM_CORR_PEAKS_MASK   (0xFU)
+#define ZLL_CCA2_CTRL_CCA2_NUM_CORR_PEAKS_SHIFT  (0U)
+#define ZLL_CCA2_CTRL_CCA2_NUM_CORR_PEAKS(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_CCA2_CTRL_CCA2_NUM_CORR_PEAKS_SHIFT)) & ZLL_CCA2_CTRL_CCA2_NUM_CORR_PEAKS_MASK)
+#define ZLL_CCA2_CTRL_CCA2_MIN_NUM_CORR_TH_MASK  (0x70U)
+#define ZLL_CCA2_CTRL_CCA2_MIN_NUM_CORR_TH_SHIFT (4U)
+#define ZLL_CCA2_CTRL_CCA2_MIN_NUM_CORR_TH(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_CCA2_CTRL_CCA2_MIN_NUM_CORR_TH_SHIFT)) & ZLL_CCA2_CTRL_CCA2_MIN_NUM_CORR_TH_MASK)
+#define ZLL_CCA2_CTRL_CCA2_CORR_THRESH_MASK      (0xFF00U)
+#define ZLL_CCA2_CTRL_CCA2_CORR_THRESH_SHIFT     (8U)
+#define ZLL_CCA2_CTRL_CCA2_CORR_THRESH(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_CCA2_CTRL_CCA2_CORR_THRESH_SHIFT)) & ZLL_CCA2_CTRL_CCA2_CORR_THRESH_MASK)
+/*! @} */
+
+/*! @name DSM_CTRL - DSM CONTROL */
+/*! @{ */
+#define ZLL_DSM_CTRL_ZIGBEE_SLEEP_REQUEST_MASK   (0x1U)
+#define ZLL_DSM_CTRL_ZIGBEE_SLEEP_REQUEST_SHIFT  (0U)
+#define ZLL_DSM_CTRL_ZIGBEE_SLEEP_REQUEST(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_DSM_CTRL_ZIGBEE_SLEEP_REQUEST_SHIFT)) & ZLL_DSM_CTRL_ZIGBEE_SLEEP_REQUEST_MASK)
+/*! @} */
+
+/*! @name BSM_CTRL - BSM CONTROL */
+/*! @{ */
+#define ZLL_BSM_CTRL_BSM_EN_MASK                 (0x1U)
+#define ZLL_BSM_CTRL_BSM_EN_SHIFT                (0U)
+/*! BSM_EN - BSM Enable
+ *  0b0..802.15.4 Bit Streaming Mode Disabled
+ *  0b1..802.15.4 Bit Streaming Mode Enabled
+ */
+#define ZLL_BSM_CTRL_BSM_EN(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_BSM_CTRL_BSM_EN_SHIFT)) & ZLL_BSM_CTRL_BSM_EN_MASK)
+/*! @} */
+
+/*! @name MACSHORTADDRS1 - MAC SHORT ADDRESS FOR PAN1 */
+/*! @{ */
+#define ZLL_MACSHORTADDRS1_MACPANID1_MASK        (0xFFFFU)
+#define ZLL_MACSHORTADDRS1_MACPANID1_SHIFT       (0U)
+#define ZLL_MACSHORTADDRS1_MACPANID1(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_MACSHORTADDRS1_MACPANID1_SHIFT)) & ZLL_MACSHORTADDRS1_MACPANID1_MASK)
+#define ZLL_MACSHORTADDRS1_MACSHORTADDRS1_MASK   (0xFFFF0000U)
+#define ZLL_MACSHORTADDRS1_MACSHORTADDRS1_SHIFT  (16U)
+#define ZLL_MACSHORTADDRS1_MACSHORTADDRS1(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_MACSHORTADDRS1_MACSHORTADDRS1_SHIFT)) & ZLL_MACSHORTADDRS1_MACSHORTADDRS1_MASK)
+/*! @} */
+
+/*! @name MACLONGADDRS1_LSB - MAC LONG ADDRESS 1 LSB */
+/*! @{ */
+#define ZLL_MACLONGADDRS1_LSB_MACLONGADDRS1_LSB_MASK (0xFFFFFFFFU)
+#define ZLL_MACLONGADDRS1_LSB_MACLONGADDRS1_LSB_SHIFT (0U)
+#define ZLL_MACLONGADDRS1_LSB_MACLONGADDRS1_LSB(x) (((uint32_t)(((uint32_t)(x)) << ZLL_MACLONGADDRS1_LSB_MACLONGADDRS1_LSB_SHIFT)) & ZLL_MACLONGADDRS1_LSB_MACLONGADDRS1_LSB_MASK)
+/*! @} */
+
+/*! @name MACLONGADDRS1_MSB - MAC LONG ADDRESS 1 MSB */
+/*! @{ */
+#define ZLL_MACLONGADDRS1_MSB_MACLONGADDRS1_MSB_MASK (0xFFFFFFFFU)
+#define ZLL_MACLONGADDRS1_MSB_MACLONGADDRS1_MSB_SHIFT (0U)
+#define ZLL_MACLONGADDRS1_MSB_MACLONGADDRS1_MSB(x) (((uint32_t)(((uint32_t)(x)) << ZLL_MACLONGADDRS1_MSB_MACLONGADDRS1_MSB_SHIFT)) & ZLL_MACLONGADDRS1_MSB_MACLONGADDRS1_MSB_MASK)
+/*! @} */
+
+/*! @name DUAL_PAN_CTRL - DUAL PAN CONTROL */
+/*! @{ */
+#define ZLL_DUAL_PAN_CTRL_ACTIVE_NETWORK_MASK    (0x1U)
+#define ZLL_DUAL_PAN_CTRL_ACTIVE_NETWORK_SHIFT   (0U)
+/*! ACTIVE_NETWORK - Active Network Selector
+ *  0b0..Select PAN0
+ *  0b1..Select PAN1
+ */
+#define ZLL_DUAL_PAN_CTRL_ACTIVE_NETWORK(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_ACTIVE_NETWORK_SHIFT)) & ZLL_DUAL_PAN_CTRL_ACTIVE_NETWORK_MASK)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_AUTO_MASK     (0x2U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_AUTO_SHIFT    (1U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_AUTO(x)       (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_DUAL_PAN_AUTO_SHIFT)) & ZLL_DUAL_PAN_CTRL_DUAL_PAN_AUTO_MASK)
+#define ZLL_DUAL_PAN_CTRL_PANCORDNTR1_MASK       (0x4U)
+#define ZLL_DUAL_PAN_CTRL_PANCORDNTR1_SHIFT      (2U)
+#define ZLL_DUAL_PAN_CTRL_PANCORDNTR1(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_PANCORDNTR1_SHIFT)) & ZLL_DUAL_PAN_CTRL_PANCORDNTR1_MASK)
+#define ZLL_DUAL_PAN_CTRL_CURRENT_NETWORK_MASK   (0x8U)
+#define ZLL_DUAL_PAN_CTRL_CURRENT_NETWORK_SHIFT  (3U)
+/*! CURRENT_NETWORK - Indicates which PAN is currently selected by hardware
+ *  0b0..PAN0 is selected
+ *  0b1..PAN1 is selected
+ */
+#define ZLL_DUAL_PAN_CTRL_CURRENT_NETWORK(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_CURRENT_NETWORK_SHIFT)) & ZLL_DUAL_PAN_CTRL_CURRENT_NETWORK_MASK)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_EN_MASK (0x10U)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_EN_SHIFT (4U)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_EN(x)  (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_EN_SHIFT)) & ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_EN_MASK)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_SEL_MASK (0x20U)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_SEL_SHIFT (5U)
+#define ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_SEL(x) (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_SEL_SHIFT)) & ZLL_DUAL_PAN_CTRL_ZB_DP_CHAN_OVRD_SEL_MASK)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_DWELL_MASK    (0xFF00U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_DWELL_SHIFT   (8U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_DWELL(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_DUAL_PAN_DWELL_SHIFT)) & ZLL_DUAL_PAN_CTRL_DUAL_PAN_DWELL_MASK)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_REMAIN_MASK   (0x3F0000U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_REMAIN_SHIFT  (16U)
+#define ZLL_DUAL_PAN_CTRL_DUAL_PAN_REMAIN(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_DUAL_PAN_REMAIN_SHIFT)) & ZLL_DUAL_PAN_CTRL_DUAL_PAN_REMAIN_MASK)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN0_MASK      (0x400000U)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN0_SHIFT     (22U)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN0(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_RECD_ON_PAN0_SHIFT)) & ZLL_DUAL_PAN_CTRL_RECD_ON_PAN0_MASK)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN1_MASK      (0x800000U)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN1_SHIFT     (23U)
+#define ZLL_DUAL_PAN_CTRL_RECD_ON_PAN1(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_DUAL_PAN_CTRL_RECD_ON_PAN1_SHIFT)) & ZLL_DUAL_PAN_CTRL_RECD_ON_PAN1_MASK)
+/*! @} */
+
+/*! @name CHANNEL_NUM1 - CHANNEL NUMBER 1 */
+/*! @{ */
+#define ZLL_CHANNEL_NUM1_CHANNEL_NUM1_MASK       (0x7FU)
+#define ZLL_CHANNEL_NUM1_CHANNEL_NUM1_SHIFT      (0U)
+#define ZLL_CHANNEL_NUM1_CHANNEL_NUM1(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_CHANNEL_NUM1_CHANNEL_NUM1_SHIFT)) & ZLL_CHANNEL_NUM1_CHANNEL_NUM1_MASK)
+/*! @} */
+
+/*! @name SAM_CTRL - SAM CONTROL */
+/*! @{ */
+#define ZLL_SAM_CTRL_SAP0_EN_MASK                (0x1U)
+#define ZLL_SAM_CTRL_SAP0_EN_SHIFT               (0U)
+/*! SAP0_EN - Enables SAP0 Partition of the SAM Table
+ *  0b0..Disables SAP0 Partition
+ *  0b1..Enables SAP0 Partition
+ */
+#define ZLL_SAM_CTRL_SAP0_EN(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAP0_EN_SHIFT)) & ZLL_SAM_CTRL_SAP0_EN_MASK)
+#define ZLL_SAM_CTRL_SAA0_EN_MASK                (0x2U)
+#define ZLL_SAM_CTRL_SAA0_EN_SHIFT               (1U)
+/*! SAA0_EN - Enables SAA0 Partition of the SAM Table
+ *  0b0..Disables SAA0 Partition
+ *  0b1..Enables SAA0 Partition
+ */
+#define ZLL_SAM_CTRL_SAA0_EN(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAA0_EN_SHIFT)) & ZLL_SAM_CTRL_SAA0_EN_MASK)
+#define ZLL_SAM_CTRL_SAP1_EN_MASK                (0x4U)
+#define ZLL_SAM_CTRL_SAP1_EN_SHIFT               (2U)
+/*! SAP1_EN - Enables SAP1 Partition of the SAM Table
+ *  0b0..Disables SAP1 Partition
+ *  0b1..Enables SAP1 Partition
+ */
+#define ZLL_SAM_CTRL_SAP1_EN(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAP1_EN_SHIFT)) & ZLL_SAM_CTRL_SAP1_EN_MASK)
+#define ZLL_SAM_CTRL_SAA1_EN_MASK                (0x8U)
+#define ZLL_SAM_CTRL_SAA1_EN_SHIFT               (3U)
+/*! SAA1_EN - Enables SAA1 Partition of the SAM Table
+ *  0b0..Disables SAA1 Partition
+ *  0b1..Enables SAA1 Partition
+ */
+#define ZLL_SAM_CTRL_SAA1_EN(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAA1_EN_SHIFT)) & ZLL_SAM_CTRL_SAA1_EN_MASK)
+#define ZLL_SAM_CTRL_SAA0_START_MASK             (0xFF00U)
+#define ZLL_SAM_CTRL_SAA0_START_SHIFT            (8U)
+#define ZLL_SAM_CTRL_SAA0_START(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAA0_START_SHIFT)) & ZLL_SAM_CTRL_SAA0_START_MASK)
+#define ZLL_SAM_CTRL_SAP1_START_MASK             (0xFF0000U)
+#define ZLL_SAM_CTRL_SAP1_START_SHIFT            (16U)
+#define ZLL_SAM_CTRL_SAP1_START(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAP1_START_SHIFT)) & ZLL_SAM_CTRL_SAP1_START_MASK)
+#define ZLL_SAM_CTRL_SAA1_START_MASK             (0xFF000000U)
+#define ZLL_SAM_CTRL_SAA1_START_SHIFT            (24U)
+#define ZLL_SAM_CTRL_SAA1_START(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_CTRL_SAA1_START_SHIFT)) & ZLL_SAM_CTRL_SAA1_START_MASK)
+/*! @} */
+
+/*! @name SAM_TABLE - SOURCE ADDRESS MANAGEMENT TABLE */
+/*! @{ */
+#define ZLL_SAM_TABLE_SAM_INDEX_MASK             (0x7FU)
+#define ZLL_SAM_TABLE_SAM_INDEX_SHIFT            (0U)
+#define ZLL_SAM_TABLE_SAM_INDEX(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_INDEX_SHIFT)) & ZLL_SAM_TABLE_SAM_INDEX_MASK)
+#define ZLL_SAM_TABLE_SAM_INDEX_WR_MASK          (0x80U)
+#define ZLL_SAM_TABLE_SAM_INDEX_WR_SHIFT         (7U)
+#define ZLL_SAM_TABLE_SAM_INDEX_WR(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_INDEX_WR_SHIFT)) & ZLL_SAM_TABLE_SAM_INDEX_WR_MASK)
+#define ZLL_SAM_TABLE_SAM_CHECKSUM_MASK          (0xFFFF00U)
+#define ZLL_SAM_TABLE_SAM_CHECKSUM_SHIFT         (8U)
+#define ZLL_SAM_TABLE_SAM_CHECKSUM(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_CHECKSUM_SHIFT)) & ZLL_SAM_TABLE_SAM_CHECKSUM_MASK)
+#define ZLL_SAM_TABLE_SAM_INDEX_INV_MASK         (0x1000000U)
+#define ZLL_SAM_TABLE_SAM_INDEX_INV_SHIFT        (24U)
+#define ZLL_SAM_TABLE_SAM_INDEX_INV(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_INDEX_INV_SHIFT)) & ZLL_SAM_TABLE_SAM_INDEX_INV_MASK)
+#define ZLL_SAM_TABLE_SAM_INDEX_EN_MASK          (0x2000000U)
+#define ZLL_SAM_TABLE_SAM_INDEX_EN_SHIFT         (25U)
+#define ZLL_SAM_TABLE_SAM_INDEX_EN(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_INDEX_EN_SHIFT)) & ZLL_SAM_TABLE_SAM_INDEX_EN_MASK)
+#define ZLL_SAM_TABLE_ACK_FRM_PND_MASK           (0x4000000U)
+#define ZLL_SAM_TABLE_ACK_FRM_PND_SHIFT          (26U)
+#define ZLL_SAM_TABLE_ACK_FRM_PND(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_ACK_FRM_PND_SHIFT)) & ZLL_SAM_TABLE_ACK_FRM_PND_MASK)
+#define ZLL_SAM_TABLE_ACK_FRM_PND_CTRL_MASK      (0x8000000U)
+#define ZLL_SAM_TABLE_ACK_FRM_PND_CTRL_SHIFT     (27U)
+/*! ACK_FRM_PND_CTRL - Manual Control for AutoTxAck FramePending field
+ *  0b0..the FramePending field of the Frame Control Field of the next automatic TX acknowledge packet is determined by hardware
+ *  0b1..the FramePending field of the Frame Control Field of the next automatic TX acknowledge packet tracks ACK_FRM_PEND
+ */
+#define ZLL_SAM_TABLE_ACK_FRM_PND_CTRL(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_ACK_FRM_PND_CTRL_SHIFT)) & ZLL_SAM_TABLE_ACK_FRM_PND_CTRL_MASK)
+#define ZLL_SAM_TABLE_FIND_FREE_IDX_MASK         (0x10000000U)
+#define ZLL_SAM_TABLE_FIND_FREE_IDX_SHIFT        (28U)
+#define ZLL_SAM_TABLE_FIND_FREE_IDX(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_FIND_FREE_IDX_SHIFT)) & ZLL_SAM_TABLE_FIND_FREE_IDX_MASK)
+#define ZLL_SAM_TABLE_INVALIDATE_ALL_MASK        (0x20000000U)
+#define ZLL_SAM_TABLE_INVALIDATE_ALL_SHIFT       (29U)
+#define ZLL_SAM_TABLE_INVALIDATE_ALL(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_INVALIDATE_ALL_SHIFT)) & ZLL_SAM_TABLE_INVALIDATE_ALL_MASK)
+#define ZLL_SAM_TABLE_SAM_BUSY_MASK              (0x80000000U)
+#define ZLL_SAM_TABLE_SAM_BUSY_SHIFT             (31U)
+#define ZLL_SAM_TABLE_SAM_BUSY(x)                (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_TABLE_SAM_BUSY_SHIFT)) & ZLL_SAM_TABLE_SAM_BUSY_MASK)
+/*! @} */
+
+/*! @name SAM_MATCH - SOURCE ADDRESS MANAGEMENT MATCH */
+/*! @{ */
+#define ZLL_SAM_MATCH_SAP0_MATCH_MASK            (0x7FU)
+#define ZLL_SAM_MATCH_SAP0_MATCH_SHIFT           (0U)
+#define ZLL_SAM_MATCH_SAP0_MATCH(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAP0_MATCH_SHIFT)) & ZLL_SAM_MATCH_SAP0_MATCH_MASK)
+#define ZLL_SAM_MATCH_SAP0_ADDR_PRESENT_MASK     (0x80U)
+#define ZLL_SAM_MATCH_SAP0_ADDR_PRESENT_SHIFT    (7U)
+#define ZLL_SAM_MATCH_SAP0_ADDR_PRESENT(x)       (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAP0_ADDR_PRESENT_SHIFT)) & ZLL_SAM_MATCH_SAP0_ADDR_PRESENT_MASK)
+#define ZLL_SAM_MATCH_SAA0_MATCH_MASK            (0x7F00U)
+#define ZLL_SAM_MATCH_SAA0_MATCH_SHIFT           (8U)
+#define ZLL_SAM_MATCH_SAA0_MATCH(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAA0_MATCH_SHIFT)) & ZLL_SAM_MATCH_SAA0_MATCH_MASK)
+#define ZLL_SAM_MATCH_SAA0_ADDR_ABSENT_MASK      (0x8000U)
+#define ZLL_SAM_MATCH_SAA0_ADDR_ABSENT_SHIFT     (15U)
+#define ZLL_SAM_MATCH_SAA0_ADDR_ABSENT(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAA0_ADDR_ABSENT_SHIFT)) & ZLL_SAM_MATCH_SAA0_ADDR_ABSENT_MASK)
+#define ZLL_SAM_MATCH_SAP1_MATCH_MASK            (0x7F0000U)
+#define ZLL_SAM_MATCH_SAP1_MATCH_SHIFT           (16U)
+#define ZLL_SAM_MATCH_SAP1_MATCH(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAP1_MATCH_SHIFT)) & ZLL_SAM_MATCH_SAP1_MATCH_MASK)
+#define ZLL_SAM_MATCH_SAP1_ADDR_PRESENT_MASK     (0x800000U)
+#define ZLL_SAM_MATCH_SAP1_ADDR_PRESENT_SHIFT    (23U)
+#define ZLL_SAM_MATCH_SAP1_ADDR_PRESENT(x)       (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAP1_ADDR_PRESENT_SHIFT)) & ZLL_SAM_MATCH_SAP1_ADDR_PRESENT_MASK)
+#define ZLL_SAM_MATCH_SAA1_MATCH_MASK            (0x7F000000U)
+#define ZLL_SAM_MATCH_SAA1_MATCH_SHIFT           (24U)
+#define ZLL_SAM_MATCH_SAA1_MATCH(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAA1_MATCH_SHIFT)) & ZLL_SAM_MATCH_SAA1_MATCH_MASK)
+#define ZLL_SAM_MATCH_SAA1_ADDR_ABSENT_MASK      (0x80000000U)
+#define ZLL_SAM_MATCH_SAA1_ADDR_ABSENT_SHIFT     (31U)
+#define ZLL_SAM_MATCH_SAA1_ADDR_ABSENT(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_MATCH_SAA1_ADDR_ABSENT_SHIFT)) & ZLL_SAM_MATCH_SAA1_ADDR_ABSENT_MASK)
+/*! @} */
+
+/*! @name SAM_FREE_IDX - SAM FREE INDEX */
+/*! @{ */
+#define ZLL_SAM_FREE_IDX_SAP0_1ST_FREE_IDX_MASK  (0xFFU)
+#define ZLL_SAM_FREE_IDX_SAP0_1ST_FREE_IDX_SHIFT (0U)
+#define ZLL_SAM_FREE_IDX_SAP0_1ST_FREE_IDX(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_FREE_IDX_SAP0_1ST_FREE_IDX_SHIFT)) & ZLL_SAM_FREE_IDX_SAP0_1ST_FREE_IDX_MASK)
+#define ZLL_SAM_FREE_IDX_SAA0_1ST_FREE_IDX_MASK  (0xFF00U)
+#define ZLL_SAM_FREE_IDX_SAA0_1ST_FREE_IDX_SHIFT (8U)
+#define ZLL_SAM_FREE_IDX_SAA0_1ST_FREE_IDX(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_FREE_IDX_SAA0_1ST_FREE_IDX_SHIFT)) & ZLL_SAM_FREE_IDX_SAA0_1ST_FREE_IDX_MASK)
+#define ZLL_SAM_FREE_IDX_SAP1_1ST_FREE_IDX_MASK  (0xFF0000U)
+#define ZLL_SAM_FREE_IDX_SAP1_1ST_FREE_IDX_SHIFT (16U)
+#define ZLL_SAM_FREE_IDX_SAP1_1ST_FREE_IDX(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_FREE_IDX_SAP1_1ST_FREE_IDX_SHIFT)) & ZLL_SAM_FREE_IDX_SAP1_1ST_FREE_IDX_MASK)
+#define ZLL_SAM_FREE_IDX_SAA1_1ST_FREE_IDX_MASK  (0xFF000000U)
+#define ZLL_SAM_FREE_IDX_SAA1_1ST_FREE_IDX_SHIFT (24U)
+#define ZLL_SAM_FREE_IDX_SAA1_1ST_FREE_IDX(x)    (((uint32_t)(((uint32_t)(x)) << ZLL_SAM_FREE_IDX_SAA1_1ST_FREE_IDX_SHIFT)) & ZLL_SAM_FREE_IDX_SAA1_1ST_FREE_IDX_MASK)
+/*! @} */
+
+/*! @name SEQ_CTRL_STS - SEQUENCE CONTROL AND STATUS */
+/*! @{ */
+#define ZLL_SEQ_CTRL_STS_FORCE_CLK_ON_MASK       (0x2U)
+#define ZLL_SEQ_CTRL_STS_FORCE_CLK_ON_SHIFT      (1U)
+/*! FORCE_CLK_ON - Force On 802.15.4 phy_gck
+ *  0b0..Allow TSM to control 802.15.4 phy_gck, for minimum power consumption (default)
+ *  0b1..Force on 802.15.4 phy_gclk at all times, for debug purposes only
+ */
+#define ZLL_SEQ_CTRL_STS_FORCE_CLK_ON(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_FORCE_CLK_ON_SHIFT)) & ZLL_SEQ_CTRL_STS_FORCE_CLK_ON_MASK)
+#define ZLL_SEQ_CTRL_STS_CLR_NEW_SEQ_INHIBIT_MASK (0x4U)
+#define ZLL_SEQ_CTRL_STS_CLR_NEW_SEQ_INHIBIT_SHIFT (2U)
+#define ZLL_SEQ_CTRL_STS_CLR_NEW_SEQ_INHIBIT(x)  (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_CLR_NEW_SEQ_INHIBIT_SHIFT)) & ZLL_SEQ_CTRL_STS_CLR_NEW_SEQ_INHIBIT_MASK)
+#define ZLL_SEQ_CTRL_STS_EVENT_TMR_DO_NOT_LATCH_MASK (0x8U)
+#define ZLL_SEQ_CTRL_STS_EVENT_TMR_DO_NOT_LATCH_SHIFT (3U)
+#define ZLL_SEQ_CTRL_STS_EVENT_TMR_DO_NOT_LATCH(x) (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_EVENT_TMR_DO_NOT_LATCH_SHIFT)) & ZLL_SEQ_CTRL_STS_EVENT_TMR_DO_NOT_LATCH_MASK)
+#define ZLL_SEQ_CTRL_STS_LATCH_PREAMBLE_MASK     (0x10U)
+#define ZLL_SEQ_CTRL_STS_LATCH_PREAMBLE_SHIFT    (4U)
+/*! LATCH_PREAMBLE - Stickiness Control for Preamble Detection
+ *  0b0..Don't make PREAMBLE_DET and SFD_DET bits of PHY_STS (SEQ_STATE) Register "sticky", i.e, these status bits reflect the realtime, dynamic state of preamble_detect and sfd_detect
+ *  0b1..Make PREAMBLE_DET and SFD_DET bits of PHY_STS (SEQ_STATE) Register "sticky", i.e.,occurrences of preamble and SFD detection are latched and held until the start of the next autosequence
+ */
+#define ZLL_SEQ_CTRL_STS_LATCH_PREAMBLE(x)       (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_LATCH_PREAMBLE_SHIFT)) & ZLL_SEQ_CTRL_STS_LATCH_PREAMBLE_MASK)
+#define ZLL_SEQ_CTRL_STS_NO_RX_RECYCLE_MASK      (0x20U)
+#define ZLL_SEQ_CTRL_STS_NO_RX_RECYCLE_SHIFT     (5U)
+#define ZLL_SEQ_CTRL_STS_NO_RX_RECYCLE(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_NO_RX_RECYCLE_SHIFT)) & ZLL_SEQ_CTRL_STS_NO_RX_RECYCLE_MASK)
+#define ZLL_SEQ_CTRL_STS_FORCE_CRC_ERROR_MASK    (0x40U)
+#define ZLL_SEQ_CTRL_STS_FORCE_CRC_ERROR_SHIFT   (6U)
+/*! FORCE_CRC_ERROR - Induce a CRC Error in Transmitted Packets
+ *  0b0..normal operation
+ *  0b1..Force the next transmitted packet to have a CRC error
+ */
+#define ZLL_SEQ_CTRL_STS_FORCE_CRC_ERROR(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_FORCE_CRC_ERROR_SHIFT)) & ZLL_SEQ_CTRL_STS_FORCE_CRC_ERROR_MASK)
+#define ZLL_SEQ_CTRL_STS_CONTINUOUS_EN_MASK      (0x80U)
+#define ZLL_SEQ_CTRL_STS_CONTINUOUS_EN_SHIFT     (7U)
+/*! CONTINUOUS_EN - Enable Continuous TX or RX Mode
+ *  0b0..normal operation
+ *  0b1..Continuous TX or RX mode is enabled (depending on XCVSEQ setting).
+ */
+#define ZLL_SEQ_CTRL_STS_CONTINUOUS_EN(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_CONTINUOUS_EN_SHIFT)) & ZLL_SEQ_CTRL_STS_CONTINUOUS_EN_MASK)
+#define ZLL_SEQ_CTRL_STS_XCVSEQ_ACTUAL_MASK      (0x700U)
+#define ZLL_SEQ_CTRL_STS_XCVSEQ_ACTUAL_SHIFT     (8U)
+#define ZLL_SEQ_CTRL_STS_XCVSEQ_ACTUAL(x)        (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_XCVSEQ_ACTUAL_SHIFT)) & ZLL_SEQ_CTRL_STS_XCVSEQ_ACTUAL_MASK)
+#define ZLL_SEQ_CTRL_STS_SEQ_IDLE_MASK           (0x800U)
+#define ZLL_SEQ_CTRL_STS_SEQ_IDLE_SHIFT          (11U)
+#define ZLL_SEQ_CTRL_STS_SEQ_IDLE(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_SEQ_IDLE_SHIFT)) & ZLL_SEQ_CTRL_STS_SEQ_IDLE_MASK)
+#define ZLL_SEQ_CTRL_STS_NEW_SEQ_INHIBIT_MASK    (0x1000U)
+#define ZLL_SEQ_CTRL_STS_NEW_SEQ_INHIBIT_SHIFT   (12U)
+#define ZLL_SEQ_CTRL_STS_NEW_SEQ_INHIBIT(x)      (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_NEW_SEQ_INHIBIT_SHIFT)) & ZLL_SEQ_CTRL_STS_NEW_SEQ_INHIBIT_MASK)
+#define ZLL_SEQ_CTRL_STS_RX_TIMEOUT_PENDING_MASK (0x2000U)
+#define ZLL_SEQ_CTRL_STS_RX_TIMEOUT_PENDING_SHIFT (13U)
+#define ZLL_SEQ_CTRL_STS_RX_TIMEOUT_PENDING(x)   (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_RX_TIMEOUT_PENDING_SHIFT)) & ZLL_SEQ_CTRL_STS_RX_TIMEOUT_PENDING_MASK)
+#define ZLL_SEQ_CTRL_STS_RX_MODE_MASK            (0x4000U)
+#define ZLL_SEQ_CTRL_STS_RX_MODE_SHIFT           (14U)
+#define ZLL_SEQ_CTRL_STS_RX_MODE(x)              (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_RX_MODE_SHIFT)) & ZLL_SEQ_CTRL_STS_RX_MODE_MASK)
+#define ZLL_SEQ_CTRL_STS_TMR2_SEQ_TRIG_ARMED_MASK (0x8000U)
+#define ZLL_SEQ_CTRL_STS_TMR2_SEQ_TRIG_ARMED_SHIFT (15U)
+#define ZLL_SEQ_CTRL_STS_TMR2_SEQ_TRIG_ARMED(x)  (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_TMR2_SEQ_TRIG_ARMED_SHIFT)) & ZLL_SEQ_CTRL_STS_TMR2_SEQ_TRIG_ARMED_MASK)
+#define ZLL_SEQ_CTRL_STS_SEQ_T_STATUS_MASK       (0x3F0000U)
+#define ZLL_SEQ_CTRL_STS_SEQ_T_STATUS_SHIFT      (16U)
+#define ZLL_SEQ_CTRL_STS_SEQ_T_STATUS(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_SEQ_T_STATUS_SHIFT)) & ZLL_SEQ_CTRL_STS_SEQ_T_STATUS_MASK)
+#define ZLL_SEQ_CTRL_STS_SW_ABORTED_MASK         (0x1000000U)
+#define ZLL_SEQ_CTRL_STS_SW_ABORTED_SHIFT        (24U)
+#define ZLL_SEQ_CTRL_STS_SW_ABORTED(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_SW_ABORTED_SHIFT)) & ZLL_SEQ_CTRL_STS_SW_ABORTED_MASK)
+#define ZLL_SEQ_CTRL_STS_TC3_ABORTED_MASK        (0x2000000U)
+#define ZLL_SEQ_CTRL_STS_TC3_ABORTED_SHIFT       (25U)
+#define ZLL_SEQ_CTRL_STS_TC3_ABORTED(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_TC3_ABORTED_SHIFT)) & ZLL_SEQ_CTRL_STS_TC3_ABORTED_MASK)
+#define ZLL_SEQ_CTRL_STS_PLL_ABORTED_MASK        (0x4000000U)
+#define ZLL_SEQ_CTRL_STS_PLL_ABORTED_SHIFT       (26U)
+#define ZLL_SEQ_CTRL_STS_PLL_ABORTED(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_PLL_ABORTED_SHIFT)) & ZLL_SEQ_CTRL_STS_PLL_ABORTED_MASK)
+#define ZLL_SEQ_CTRL_STS_EXT_ABORTED_MASK        (0x8000000U)
+#define ZLL_SEQ_CTRL_STS_EXT_ABORTED_SHIFT       (27U)
+#define ZLL_SEQ_CTRL_STS_EXT_ABORTED(x)          (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_CTRL_STS_EXT_ABORTED_SHIFT)) & ZLL_SEQ_CTRL_STS_EXT_ABORTED_MASK)
+/*! @} */
+
+/*! @name ACKDELAY - ACK DELAY */
+/*! @{ */
+#define ZLL_ACKDELAY_ACKDELAY_MASK               (0x3FU)
+#define ZLL_ACKDELAY_ACKDELAY_SHIFT              (0U)
+#define ZLL_ACKDELAY_ACKDELAY(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_ACKDELAY_ACKDELAY_SHIFT)) & ZLL_ACKDELAY_ACKDELAY_MASK)
+#define ZLL_ACKDELAY_TXDELAY_MASK                (0x3F00U)
+#define ZLL_ACKDELAY_TXDELAY_SHIFT               (8U)
+#define ZLL_ACKDELAY_TXDELAY(x)                  (((uint32_t)(((uint32_t)(x)) << ZLL_ACKDELAY_TXDELAY_SHIFT)) & ZLL_ACKDELAY_TXDELAY_MASK)
+/*! @} */
+
+/*! @name FILTERFAIL_CODE - FILTER FAIL CODE */
+/*! @{ */
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_CODE_MASK (0x3FFU)
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_CODE_SHIFT (0U)
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_CODE(x)   (((uint32_t)(((uint32_t)(x)) << ZLL_FILTERFAIL_CODE_FILTERFAIL_CODE_SHIFT)) & ZLL_FILTERFAIL_CODE_FILTERFAIL_CODE_MASK)
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_PAN_SEL_MASK (0x8000U)
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_PAN_SEL_SHIFT (15U)
+/*! FILTERFAIL_PAN_SEL - PAN Selector for Filter Fail Code
+ *  0b0..FILTERFAIL_CODE[9:0] will report the FILTERFAIL status of PAN0
+ *  0b1..FILTERFAIL_CODE[9:0] will report the FILTERFAIL status of PAN1
+ */
+#define ZLL_FILTERFAIL_CODE_FILTERFAIL_PAN_SEL(x) (((uint32_t)(((uint32_t)(x)) << ZLL_FILTERFAIL_CODE_FILTERFAIL_PAN_SEL_SHIFT)) & ZLL_FILTERFAIL_CODE_FILTERFAIL_PAN_SEL_MASK)
+/*! @} */
+
+/*! @name RX_WTR_MARK - RECEIVE WATER MARK */
+/*! @{ */
+#define ZLL_RX_WTR_MARK_RX_WTR_MARK_MASK         (0xFFU)
+#define ZLL_RX_WTR_MARK_RX_WTR_MARK_SHIFT        (0U)
+#define ZLL_RX_WTR_MARK_RX_WTR_MARK(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_RX_WTR_MARK_RX_WTR_MARK_SHIFT)) & ZLL_RX_WTR_MARK_RX_WTR_MARK_MASK)
+/*! @} */
+
+/*! @name SLOT_PRELOAD - SLOT PRELOAD */
+/*! @{ */
+#define ZLL_SLOT_PRELOAD_SLOT_PRELOAD_MASK       (0xFFU)
+#define ZLL_SLOT_PRELOAD_SLOT_PRELOAD_SHIFT      (0U)
+#define ZLL_SLOT_PRELOAD_SLOT_PRELOAD(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_SLOT_PRELOAD_SLOT_PRELOAD_SHIFT)) & ZLL_SLOT_PRELOAD_SLOT_PRELOAD_MASK)
+/*! @} */
+
+/*! @name SEQ_STATE - 802.15.4 SEQUENCE STATE */
+/*! @{ */
+#define ZLL_SEQ_STATE_SEQ_STATE_MASK             (0x1FU)
+#define ZLL_SEQ_STATE_SEQ_STATE_SHIFT            (0U)
+#define ZLL_SEQ_STATE_SEQ_STATE(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_SEQ_STATE_SHIFT)) & ZLL_SEQ_STATE_SEQ_STATE_MASK)
+#define ZLL_SEQ_STATE_PREAMBLE_DET_MASK          (0x100U)
+#define ZLL_SEQ_STATE_PREAMBLE_DET_SHIFT         (8U)
+#define ZLL_SEQ_STATE_PREAMBLE_DET(x)            (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_PREAMBLE_DET_SHIFT)) & ZLL_SEQ_STATE_PREAMBLE_DET_MASK)
+#define ZLL_SEQ_STATE_SFD_DET_MASK               (0x200U)
+#define ZLL_SEQ_STATE_SFD_DET_SHIFT              (9U)
+#define ZLL_SEQ_STATE_SFD_DET(x)                 (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_SFD_DET_SHIFT)) & ZLL_SEQ_STATE_SFD_DET_MASK)
+#define ZLL_SEQ_STATE_FILTERFAIL_FLAG_SEL_MASK   (0x400U)
+#define ZLL_SEQ_STATE_FILTERFAIL_FLAG_SEL_SHIFT  (10U)
+#define ZLL_SEQ_STATE_FILTERFAIL_FLAG_SEL(x)     (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_FILTERFAIL_FLAG_SEL_SHIFT)) & ZLL_SEQ_STATE_FILTERFAIL_FLAG_SEL_MASK)
+#define ZLL_SEQ_STATE_CRCVALID_MASK              (0x800U)
+#define ZLL_SEQ_STATE_CRCVALID_SHIFT             (11U)
+/*! CRCVALID - CRC Valid Indicator
+ *  0b0..Rx FCS != calculated CRC (incorrect)
+ *  0b1..Rx FCS = calculated CRC (correct)
+ */
+#define ZLL_SEQ_STATE_CRCVALID(x)                (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_CRCVALID_SHIFT)) & ZLL_SEQ_STATE_CRCVALID_MASK)
+#define ZLL_SEQ_STATE_PLL_ABORT_MASK             (0x1000U)
+#define ZLL_SEQ_STATE_PLL_ABORT_SHIFT            (12U)
+#define ZLL_SEQ_STATE_PLL_ABORT(x)               (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_PLL_ABORT_SHIFT)) & ZLL_SEQ_STATE_PLL_ABORT_MASK)
+#define ZLL_SEQ_STATE_PLL_ABORTED_MASK           (0x2000U)
+#define ZLL_SEQ_STATE_PLL_ABORTED_SHIFT          (13U)
+#define ZLL_SEQ_STATE_PLL_ABORTED(x)             (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_PLL_ABORTED_SHIFT)) & ZLL_SEQ_STATE_PLL_ABORTED_MASK)
+#define ZLL_SEQ_STATE_RX_BYTE_COUNT_MASK         (0xFF0000U)
+#define ZLL_SEQ_STATE_RX_BYTE_COUNT_SHIFT        (16U)
+#define ZLL_SEQ_STATE_RX_BYTE_COUNT(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_RX_BYTE_COUNT_SHIFT)) & ZLL_SEQ_STATE_RX_BYTE_COUNT_MASK)
+#define ZLL_SEQ_STATE_CCCA_BUSY_CNT_MASK         (0x3F000000U)
+#define ZLL_SEQ_STATE_CCCA_BUSY_CNT_SHIFT        (24U)
+#define ZLL_SEQ_STATE_CCCA_BUSY_CNT(x)           (((uint32_t)(((uint32_t)(x)) << ZLL_SEQ_STATE_CCCA_BUSY_CNT_SHIFT)) & ZLL_SEQ_STATE_CCCA_BUSY_CNT_MASK)
+/*! @} */
+
+/*! @name TMR_PRESCALE - TIMER PRESCALER */
+/*! @{ */
+#define ZLL_TMR_PRESCALE_TMR_PRESCALE_MASK       (0x7U)
+#define ZLL_TMR_PRESCALE_TMR_PRESCALE_SHIFT      (0U)
+/*! TMR_PRESCALE - Timer Prescaler
+ *  0b000..Reserved
+ *  0b001..Reserved
+ *  0b010..500kHz (33.55 S)
+ *  0b011..250kHz (67.11 S)
+ *  0b100..125kHz (134.22 S)
+ *  0b101..62.5kHz (268.44 S) -- default
+ *  0b110..31.25kHz (536.87 S)
+ *  0b111..15.625kHz (1073.74 S)
+ */
+#define ZLL_TMR_PRESCALE_TMR_PRESCALE(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_TMR_PRESCALE_TMR_PRESCALE_SHIFT)) & ZLL_TMR_PRESCALE_TMR_PRESCALE_MASK)
+/*! @} */
+
+/*! @name LENIENCY_LSB - LENIENCY LSB */
+/*! @{ */
+#define ZLL_LENIENCY_LSB_LENIENCY_LSB_MASK       (0xFFFFFFFFU)
+#define ZLL_LENIENCY_LSB_LENIENCY_LSB_SHIFT      (0U)
+#define ZLL_LENIENCY_LSB_LENIENCY_LSB(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_LENIENCY_LSB_LENIENCY_LSB_SHIFT)) & ZLL_LENIENCY_LSB_LENIENCY_LSB_MASK)
+/*! @} */
+
+/*! @name LENIENCY_MSB - LENIENCY MSB */
+/*! @{ */
+#define ZLL_LENIENCY_MSB_LENIENCY_MSB_MASK       (0xFFU)
+#define ZLL_LENIENCY_MSB_LENIENCY_MSB_SHIFT      (0U)
+#define ZLL_LENIENCY_MSB_LENIENCY_MSB(x)         (((uint32_t)(((uint32_t)(x)) << ZLL_LENIENCY_MSB_LENIENCY_MSB_SHIFT)) & ZLL_LENIENCY_MSB_LENIENCY_MSB_MASK)
+/*! @} */
+
+/*! @name PART_ID - PART ID */
+/*! @{ */
+#define ZLL_PART_ID_PART_ID_MASK                 (0xFFU)
+#define ZLL_PART_ID_PART_ID_SHIFT                (0U)
+#define ZLL_PART_ID_PART_ID(x)                   (((uint32_t)(((uint32_t)(x)) << ZLL_PART_ID_PART_ID_SHIFT)) & ZLL_PART_ID_PART_ID_MASK)
+/*! @} */
+
+/*! @name PKT_BUFFER_TX - Packet Buffer TX */
+/*! @{ */
+#define ZLL_PKT_BUFFER_TX_PKT_BUFFER_TX_MASK     (0xFFFFU)
+#define ZLL_PKT_BUFFER_TX_PKT_BUFFER_TX_SHIFT    (0U)
+#define ZLL_PKT_BUFFER_TX_PKT_BUFFER_TX(x)       (((uint16_t)(((uint16_t)(x)) << ZLL_PKT_BUFFER_TX_PKT_BUFFER_TX_SHIFT)) & ZLL_PKT_BUFFER_TX_PKT_BUFFER_TX_MASK)
+/*! @} */
+
+/* The count of ZLL_PKT_BUFFER_TX */
+#define ZLL_PKT_BUFFER_TX_COUNT                  (64U)
+
+/*! @name PKT_BUFFER_RX - Packet Buffer RX */
+/*! @{ */
+#define ZLL_PKT_BUFFER_RX_PKT_BUFFER_RX_MASK     (0xFFFFU)
+#define ZLL_PKT_BUFFER_RX_PKT_BUFFER_RX_SHIFT    (0U)
+#define ZLL_PKT_BUFFER_RX_PKT_BUFFER_RX(x)       (((uint16_t)(((uint16_t)(x)) << ZLL_PKT_BUFFER_RX_PKT_BUFFER_RX_SHIFT)) & ZLL_PKT_BUFFER_RX_PKT_BUFFER_RX_MASK)
+/*! @} */
+
+/* The count of ZLL_PKT_BUFFER_RX */
+#define ZLL_PKT_BUFFER_RX_COUNT                  (64U)
+
+
+/*!
+ * @}
+ */ /* end of group ZLL_Register_Masks */
+
+
+/* ZLL - Peripheral instance base addresses */
+/** Peripheral ZLL base address */
+#define ZLL_BASE                                 (0x41034000u)
+/** Peripheral ZLL base pointer */
+#define ZLL                                      ((ZLL_Type *)ZLL_BASE)
+/** Array initializer of ZLL peripheral base addresses */
+#define ZLL_BASE_ADDRS                           { ZLL_BASE }
+/** Array initializer of ZLL peripheral base pointers */
+#define ZLL_BASE_PTRS                            { ZLL }
+
+/*!
+ * @}
+ */ /* end of group ZLL_Peripheral_Access_Layer */
+
+
+/*
+** End of section using anonymous unions
+*/
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang diagnostic pop
+  #else
+    #pragma pop
+  #endif
+#elif defined(__GNUC__)
+  /* leave anonymous unions enabled */
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma language=default
+#else
+  #error Not supported compiler type
+#endif
+
+/*!
+ * @}
+ */ /* end of group Peripheral_access_layer */
+
+
+/* ----------------------------------------------------------------------------
+   -- Macros for use with bit field definitions (xxx_SHIFT, xxx_MASK).
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup Bit_Field_Generic_Macros Macros for use with bit field definitions (xxx_SHIFT, xxx_MASK).
+ * @{
+ */
+
+#if defined(__ARMCC_VERSION)
+  #if (__ARMCC_VERSION >= 6010050)
+    #pragma clang system_header
+  #endif
+#elif defined(__IAR_SYSTEMS_ICC__)
+  #pragma system_include
+#endif
+
+/**
+ * @brief Mask and left-shift a bit field value for use in a register bit range.
+ * @param field Name of the register bit field.
+ * @param value Value of the bit field.
+ * @return Masked and shifted value.
+ */
+#define NXP_VAL2FLD(field, value)    (((value) << (field ## _SHIFT)) & (field ## _MASK))
+/**
+ * @brief Mask and right-shift a register value to extract a bit field value.
+ * @param field Name of the register bit field.
+ * @param value Value of the register.
+ * @return Masked and shifted bit field value.
+ */
+#define NXP_FLD2VAL(field, value)    (((value) & (field ## _MASK)) >> (field ## _SHIFT))
+
+/*!
+ * @}
+ */ /* end of group Bit_Field_Generic_Macros */
+
+
+/* ----------------------------------------------------------------------------
+   -- SDK Compatibility
+   ---------------------------------------------------------------------------- */
+
+/*!
+ * @addtogroup SDK_Compatibility_Symbols SDK Compatibility
+ * @{
+ */
+
+#define EVENT_UNIT EVENT1
+#define INTMUX INTMUX1
+
+/*!
+ * @}
+ */ /* end of group SDK_Compatibility_Symbols */
+
+
+#endif  /* _RV32M1_ZERO_RISCY_H_ */
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy_features.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_zero_riscy_features.h
new file mode 100644 (file)
index 0000000..e66424c
--- /dev/null
@@ -0,0 +1,1582 @@
+/*
+** ###################################################################
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180815
+**
+**     Abstract:
+**         Chip specific module features.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+#ifndef _RV32M1_zero_riscy_FEATURES_H_
+#define _RV32M1_zero_riscy_FEATURES_H_
+
+/* SOC module features */
+
+/* @brief CAU3 availability on the SoC. */
+#define FSL_FEATURE_SOC_CAU3_COUNT (1)
+/* @brief CRC availability on the SoC. */
+#define FSL_FEATURE_SOC_CRC_COUNT (1)
+/* @brief DMAMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_DMAMUX_COUNT (1)
+/* @brief EDMA availability on the SoC. */
+#define FSL_FEATURE_SOC_EDMA_COUNT (1)
+/* @brief EMVSIM availability on the SoC. */
+#define FSL_FEATURE_SOC_EMVSIM_COUNT (1)
+/* @brief EVENT availability on the SoC. */
+#define FSL_FEATURE_SOC_EVENT_COUNT (1)
+/* @brief EWM availability on the SoC. */
+#define FSL_FEATURE_SOC_EWM_COUNT (1)
+/* @brief FB availability on the SoC. */
+#define FSL_FEATURE_SOC_FB_COUNT (1)
+/* @brief FGPIO availability on the SoC. */
+#define FSL_FEATURE_SOC_FGPIO_COUNT (1)
+/* @brief FLASH availability on the SoC. */
+#define FSL_FEATURE_SOC_FLASH_COUNT (1)
+/* @brief FLEXIO availability on the SoC. */
+#define FSL_FEATURE_SOC_FLEXIO_COUNT (1)
+/* @brief GPIO availability on the SoC. */
+#define FSL_FEATURE_SOC_GPIO_COUNT (5)
+/* @brief I2S availability on the SoC. */
+#define FSL_FEATURE_SOC_I2S_COUNT (1)
+/* @brief INTMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_INTMUX_COUNT (1)
+/* @brief LLWU availability on the SoC. */
+#define FSL_FEATURE_SOC_LLWU_COUNT (2)
+/* @brief LPADC availability on the SoC. */
+#define FSL_FEATURE_SOC_LPADC_COUNT (1)
+/* @brief LPCMP availability on the SoC. */
+#define FSL_FEATURE_SOC_LPCMP_COUNT (2)
+/* @brief LPDAC availability on the SoC. */
+#define FSL_FEATURE_SOC_LPDAC_COUNT (1)
+/* @brief LPI2C availability on the SoC. */
+#define FSL_FEATURE_SOC_LPI2C_COUNT (4)
+/* @brief LPIT availability on the SoC. */
+#define FSL_FEATURE_SOC_LPIT_COUNT (2)
+/* @brief LPSPI availability on the SoC. */
+#define FSL_FEATURE_SOC_LPSPI_COUNT (4)
+/* @brief LPTMR availability on the SoC. */
+#define FSL_FEATURE_SOC_LPTMR_COUNT (3)
+/* @brief LPUART availability on the SoC. */
+#define FSL_FEATURE_SOC_LPUART_COUNT (4)
+/* @brief MCM availability on the SoC. */
+#define FSL_FEATURE_SOC_MCM_COUNT (1)
+/* @brief MMDVSQ availability on the SoC. */
+#define FSL_FEATURE_SOC_MMDVSQ_COUNT (1)
+/* @brief MSCM availability on the SoC. */
+#define FSL_FEATURE_SOC_MSCM_COUNT (1)
+/* @brief MTB availability on the SoC. */
+#define FSL_FEATURE_SOC_MTB_COUNT (1)
+/* @brief MTBDWT availability on the SoC. */
+#define FSL_FEATURE_SOC_MTBDWT_COUNT (1)
+/* @brief MU availability on the SoC. */
+#define FSL_FEATURE_SOC_MU_COUNT (1)
+/* @brief PCC availability on the SoC. */
+#define FSL_FEATURE_SOC_PCC_COUNT (2)
+/* @brief PORT availability on the SoC. */
+#define FSL_FEATURE_SOC_PORT_COUNT (5)
+/* @brief ROM availability on the SoC. */
+#define FSL_FEATURE_SOC_ROM_COUNT (1)
+/* @brief RSIM availability on the SoC. */
+#define FSL_FEATURE_SOC_RSIM_COUNT (1)
+/* @brief RTC availability on the SoC. */
+#define FSL_FEATURE_SOC_RTC_COUNT (1)
+/* @brief SCG availability on the SoC. */
+#define FSL_FEATURE_SOC_SCG_COUNT (1)
+/* @brief SEMA42 availability on the SoC. */
+#define FSL_FEATURE_SOC_SEMA42_COUNT (2)
+/* @brief SIM availability on the SoC. */
+#define FSL_FEATURE_SOC_SIM_COUNT (1)
+/* @brief SMC availability on the SoC. */
+#define FSL_FEATURE_SOC_SMC_COUNT (2)
+/* @brief SPM availability on the SoC. */
+#define FSL_FEATURE_SOC_SPM_COUNT (1)
+/* @brief TPM availability on the SoC. */
+#define FSL_FEATURE_SOC_TPM_COUNT (4)
+/* @brief TRGMUX availability on the SoC. */
+#define FSL_FEATURE_SOC_TRGMUX_COUNT (2)
+/* @brief TRNG availability on the SoC. */
+#define FSL_FEATURE_SOC_TRNG_COUNT (1)
+/* @brief TSTMR availability on the SoC. */
+#define FSL_FEATURE_SOC_TSTMR_COUNT (1)
+/* @brief USB availability on the SoC. */
+#define FSL_FEATURE_SOC_USB_COUNT (1)
+/* @brief USBVREG availability on the SoC. */
+#define FSL_FEATURE_SOC_USBVREG_COUNT (1)
+/* @brief USDHC availability on the SoC. */
+#define FSL_FEATURE_SOC_USDHC_COUNT (1)
+/* @brief VREF availability on the SoC. */
+#define FSL_FEATURE_SOC_VREF_COUNT (1)
+/* @brief WDOG availability on the SoC. */
+#define FSL_FEATURE_SOC_WDOG_COUNT (2)
+/* @brief XRDC availability on the SoC. */
+#define FSL_FEATURE_SOC_XRDC_COUNT (1)
+/* @brief ZLL availability on the SoC. */
+#define FSL_FEATURE_SOC_ZLL_COUNT (1)
+
+/* LPADC module features */
+
+/* @brief Has differential mode (bitfield CMDLn[DIFF]). */
+#define FSL_FEATURE_LPADC_HAS_CMDL_DIFF (0)
+/* @brief Has channel scale (bitfield CMDLn[CSCALE]). */
+#define FSL_FEATURE_LPADC_HAS_CMDL_CSCALE (0)
+/* @brief Has internal clock (bitfield CFG[ADCKEN]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_ADCKEN (1)
+/* @brief Enable support for low voltage reference on option 1 reference (bitfield CFG[VREF1RNG]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_VREF1RNG (1)
+/* @brief Has calibration (bitfield CFG[CALOFS]). */
+#define FSL_FEATURE_LPADC_HAS_CFG_CALOFS (1)
+/* @brief Has offset trim (register OFSTRIM). */
+#define FSL_FEATURE_LPADC_HAS_OFSTRIM (1)
+
+/* CRC module features */
+
+/* @brief Has data register with name CRC */
+#define FSL_FEATURE_CRC_HAS_CRC_REG (0)
+
+/* EDMA module features */
+
+/* @brief Number of DMA channels (related to number of registers TCD, DCHPRI, bit fields ERQ[ERQn], EEI[EEIn], INT[INTn], ERR[ERRn], HRS[HRSn] and bit field widths ES[ERRCHN], CEEI[CEEI], SEEI[SEEI], CERQ[CERQ], SERQ[SERQ], CDNE[CDNE], SSRT[SSRT], CERR[CERR], CINT[CINT], TCDn_CITER_ELINKYES[LINKCH], TCDn_CSR[MAJORLINKCH], TCDn_BITER_ELINKYES[LINKCH]). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_MODULE_CHANNEL (8)
+/* @brief Total number of DMA channels on all modules. */
+#define FSL_FEATURE_EDMA_DMAMUX_CHANNELS (8)
+/* @brief Number of DMA channel groups (register bit fields CR[ERGA], CR[GRPnPRI], ES[GPE], DCHPRIn[GRPPRI]). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_CHANNEL_GROUP_COUNT (1)
+/* @brief Has DMA_Error interrupt vector. */
+#define FSL_FEATURE_EDMA_HAS_ERROR_IRQ (0)
+/* @brief Number of DMA channels with asynchronous request capability (register EARS). (Valid only for eDMA modules.) */
+#define FSL_FEATURE_EDMA_ASYNCHRO_REQUEST_CHANNEL_COUNT (8)
+
+/* DMAMUX module features */
+
+/* @brief Number of DMA channels (related to number of register CHCFGn). */
+#define FSL_FEATURE_DMAMUX_MODULE_CHANNEL (8)
+/* @brief Total number of DMA channels on all modules. */
+#define FSL_FEATURE_DMAMUX_DMAMUX_CHANNELS (FSL_FEATURE_SOC_DMAMUX_COUNT * 8)
+/* @brief Has the periodic trigger capability for the triggered DMA channel (register bit CHCFG0[TRIG]). */
+#define FSL_FEATURE_DMAMUX_HAS_TRIG (1)
+/* @brief Has DMA Channel Always ON function (register bit CHCFG0[A_ON]). */
+#define FSL_FEATURE_DMAMUX_HAS_A_ON (1)
+
+/* EWM module features */
+
+/* @brief Has clock select (register CLKCTRL). */
+#define FSL_FEATURE_EWM_HAS_CLOCK_SELECT  (0)
+/* @brief Has clock prescaler (register CLKPRESCALER). */
+#define FSL_FEATURE_EWM_HAS_PRESCALER  (1)
+
+/* FB module features */
+
+/* No feature definitions */
+
+/* FLEXIO module features */
+
+/* @brief Has Shifter Status Register (FLEXIO_SHIFTSTAT) */
+#define FSL_FEATURE_FLEXIO_HAS_SHIFTER_STATUS (1)
+/* @brief Has Pin Data Input Register (FLEXIO_PIN) */
+#define FSL_FEATURE_FLEXIO_HAS_PIN_STATUS (1)
+/* @brief Has Shifter Buffer N Nibble Byte Swapped Register (FLEXIO_SHIFTBUFNBSn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_NIBBLE_BYTE_SWAP (1)
+/* @brief Has Shifter Buffer N Half Word Swapped Register (FLEXIO_SHIFTBUFHWSn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_HALF_WORD_SWAP (1)
+/* @brief Has Shifter Buffer N Nibble Swapped Register (FLEXIO_SHIFTBUFNISn) */
+#define FSL_FEATURE_FLEXIO_HAS_SHFT_BUFFER_NIBBLE_SWAP (1)
+/* @brief Supports Shifter State Mode (FLEXIO_SHIFTCTLn[SMOD]) */
+#define FSL_FEATURE_FLEXIO_HAS_STATE_MODE (1)
+/* @brief Supports Shifter Logic Mode (FLEXIO_SHIFTCTLn[SMOD]) */
+#define FSL_FEATURE_FLEXIO_HAS_LOGIC_MODE (1)
+/* @brief Supports paralle width (FLEXIO_SHIFTCFGn[PWIDTH]) */
+#define FSL_FEATURE_FLEXIO_HAS_PARALLEL_WIDTH (1)
+/* @brief Reset value of the FLEXIO_VERID register */
+#define FSL_FEATURE_FLEXIO_VERID_RESET_VALUE (0x1010001)
+/* @brief Reset value of the FLEXIO_PARAM register */
+#define FSL_FEATURE_FLEXIO_PARAM_RESET_VALUE (0x4200808)
+
+/* FLASH module features */
+
+/* @brief Current core ID. */
+#define FSL_FEATURE_FLASH_CURRENT_CORE_ID (1)
+/* @brief Is of type FTFA. */
+#define FSL_FEATURE_FLASH_IS_FTFA (0)
+/* @brief Is of type FTFE. */
+#define FSL_FEATURE_FLASH_IS_FTFE (1)
+/* @brief Is of type FTFL. */
+#define FSL_FEATURE_FLASH_IS_FTFL (0)
+/* @brief Has flags indicating the status of the FlexRAM (register bits FCNFG[EEERDY], FCNFG[RAMRDY] and FCNFG[PFLSH]). */
+#define FSL_FEATURE_FLASH_HAS_FLEX_RAM_FLAGS (1)
+/* @brief Has program flash swapping status flag (register bit FCNFG[SWAP]). */
+#define FSL_FEATURE_FLASH_HAS_PFLASH_SWAPPING_STATUS_FLAG (1)
+/* @brief Has EEPROM region protection (register FEPROT). */
+#define FSL_FEATURE_FLASH_HAS_EEROM_REGION_PROTECTION (0)
+/* @brief Has data flash region protection (register FDPROT). */
+#define FSL_FEATURE_FLASH_HAS_DATA_FLASH_REGION_PROTECTION (0)
+/* @brief Has flash access control (registers XACCHn, SACCHn, where n is a number, FACSS and FACSN). */
+#define FSL_FEATURE_FLASH_HAS_ACCESS_CONTROL (1)
+/* @brief Has flash cache control in FMC module. */
+#define FSL_FEATURE_FLASH_HAS_FMC_FLASH_CACHE_CONTROLS (0)
+/* @brief Has flash cache control in MCM module. */
+#define FSL_FEATURE_FLASH_HAS_MCM_FLASH_CACHE_CONTROLS (0)
+/* @brief Has flash cache control in MSCM module. */
+#define FSL_FEATURE_FLASH_HAS_MSCM_FLASH_CACHE_CONTROLS (1)
+/* @brief Has prefetch speculation control in flash, such as kv5x. */
+#define FSL_FEATURE_FLASH_PREFETCH_SPECULATION_CONTROL_IN_FLASH (0)
+/* @brief P-Flash flash size coding rule version, value 0 for K1 and K2, value 1 for RV32M1 */
+#define FSL_FEATURE_FLASH_SIZE_ENCODING_RULE_VERSION (1)
+/* @brief P-Flash start address. */
+#define FSL_FEATURE_FLASH_PFLASH_START_ADDRESS (0x01000000)
+/* @brief P-Flash block count. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_COUNT (1)
+/* @brief P-Flash block size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_SIZE (262144)
+/* @brief P-Flash sector size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_SECTOR_SIZE (2048)
+/* @brief P-Flash write unit size. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_WRITE_UNIT_SIZE (8)
+/* @brief P-Flash data path width. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_DATA_PATH_WIDTH (8)
+/* @brief P-Flash block swap feature. */
+#define FSL_FEATURE_FLASH_HAS_PFLASH_BLOCK_SWAP (0)
+/* @brief P-Flash protection region count. */
+#define FSL_FEATURE_FLASH_PFLASH_PROTECTION_REGION_COUNT (16)
+/* @brief Has multiple flash. */
+#define FSL_FEATURE_FLASH_HAS_MULTIPLE_FLASH (1)
+/* @brief Flash memory count. */
+#define FSL_FEATURE_FLASH_MEMORY_COUNT (2)
+/* @brief P-Flash start address. */
+#define FSL_FEATURE_FLASH_PFLASH_1_START_ADDRESS (0x00000000)
+/* @brief P-Flash block count. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_COUNT (2)
+/* @brief P-Flash block size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_SIZE (524288)
+/* @brief P-Flash sector size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_SECTOR_SIZE (4096)
+/* @brief P-Flash write unit size. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_WRITE_UNIT_SIZE (8)
+/* @brief P-Flash data path width. */
+#define FSL_FEATURE_FLASH_PFLASH_1_BLOCK_DATA_PATH_WIDTH (16)
+/* @brief P-Flash protection region count. */
+#define FSL_FEATURE_FLASH_PFLASH_1_PROTECTION_REGION_COUNT (64)
+/* @brief P-Flash block swap feature. */
+#define FSL_FEATURE_FLASH_HAS_1_PFLASH_BLOCK_SWAP (1)
+/* @brief Has FlexNVM memory. */
+#define FSL_FEATURE_FLASH_HAS_FLEX_NVM (0)
+/* @brief FlexNVM start address. (Valid only if FlexNVM is available.) */
+#define FSL_FEATURE_FLASH_FLEX_NVM_START_ADDRESS (0x00000000)
+/* @brief FlexNVM block count. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_COUNT (0)
+/* @brief FlexNVM block size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SIZE (0)
+/* @brief FlexNVM sector size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_SECTOR_SIZE (0)
+/* @brief FlexNVM write unit size. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_WRITE_UNIT_SIZE (0)
+/* @brief FlexNVM data path width. */
+#define FSL_FEATURE_FLASH_FLEX_BLOCK_DATA_PATH_WIDTH (0)
+/* @brief Has FlexRAM memory. */
+#define FSL_FEATURE_FLASH_HAS_FLEX_RAM (1)
+/* @brief FlexRAM start address. (Valid only if FlexRAM is available.) */
+#define FSL_FEATURE_FLASH_FLEX_RAM_START_ADDRESS (0x48000000)
+/* @brief FlexRAM size. */
+#define FSL_FEATURE_FLASH_FLEX_RAM_SIZE (4096)
+/* @brief Has 0x00 Read 1s Block command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_BLOCK_CMD (0)
+/* @brief Flash 1 has 0x00 Read 1s Block command. */
+#define FSL_FEATURE_FLASH_HAS_1_READ_1S_BLOCK_CMD (1)
+/* @brief Has 0x01 Read 1s Section command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_SECTION_CMD (1)
+/* @brief Has 0x02 Program Check command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_CHECK_CMD (1)
+/* @brief Has 0x03 Read Resource command. */
+#define FSL_FEATURE_FLASH_HAS_READ_RESOURCE_CMD (0)
+/* @brief Has 0x06 Program Longword command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_LONGWORD_CMD (0)
+/* @brief Has 0x07 Program Phrase command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_PHRASE_CMD (1)
+/* @brief Has 0x08 Erase Flash Block command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_BLOCK_CMD (0)
+/* @brief Flash 1 has 0x08 Erase Flash Block command. */
+#define FSL_FEATURE_FLASH_HAS_1_ERASE_FLASH_BLOCK_CMD (1)
+/* @brief Has 0x09 Erase Flash Sector command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_FLASH_SECTOR_CMD (1)
+/* @brief Has 0x0B Program Section command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_SECTION_CMD (1)
+/* @brief Has 0x0C Generate CRC signature for selected program flash sectors. */
+#define FSL_FEATURE_FLASH_HAS_GENERATE_CRC_CMD (1)
+/* @brief Has 0x40 Read 1s All Blocks command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_BLOCKS_CMD (1)
+/* @brief Has 0x41 Read Once command. */
+#define FSL_FEATURE_FLASH_HAS_READ_ONCE_CMD (1)
+/* @brief Has 0x43 Program Once command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_ONCE_CMD (1)
+/* @brief Has 0x44 Erase All Blocks command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_CMD (1)
+/* @brief Has 0x45 Verify Backdoor Access Key command. */
+#define FSL_FEATURE_FLASH_HAS_VERIFY_BACKDOOR_ACCESS_KEY_CMD (1)
+/* @brief Has 0x46 Swap Control command. */
+#define FSL_FEATURE_FLASH_HAS_SWAP_CONTROL_CMD (0)
+/* @brief Flash 1 has 0x46 Swap Control command. */
+#define FSL_FEATURE_FLASH_HAS_1_SWAP_CONTROL_CMD (1)
+/* @brief Has 0x49 Erase All Blocks Unsecure command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_BLOCKS_UNSECURE_CMD (1)
+/* @brief Has 0x4A Read 1s All Execute-only Segments command. */
+#define FSL_FEATURE_FLASH_HAS_READ_1S_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0)
+/* @brief Has 0x4B Erase All Execute-only Segments command. */
+#define FSL_FEATURE_FLASH_HAS_ERASE_ALL_EXECUTE_ONLY_SEGMENTS_CMD (0)
+/* @brief Has 0x80 Program Partition command. */
+#define FSL_FEATURE_FLASH_HAS_PROGRAM_PARTITION_CMD (0)
+/* @brief Has 0x81 Set FlexRAM Function command. */
+#define FSL_FEATURE_FLASH_HAS_SET_FLEXRAM_FUNCTION_CMD (0)
+/* @brief P-Flash Erase/Read 1st all block command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_BLOCK_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SECTOR_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SECTOR_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Program/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SECTION_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Program/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SECTION_CMD_ADDRESS_ALIGMENT (16)
+/* @brief P-Flash Read resource command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_RESOURCE_CMD_ADDRESS_ALIGMENT (8)
+/* @brief P-Flash Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_CHECK_CMD_ADDRESS_ALIGMENT (4)
+/* @brief P-Flash Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (0)
+/* @brief P-Flash 1 Program check command address alignment. */
+#define FSL_FEATURE_FLASH_PFLASH_1_SWAP_CONTROL_CMD_ADDRESS_ALIGMENT (16)
+/* @brief FlexNVM Erase/Read 1st all block command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_BLOCK_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Erase sector command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_SECTOR_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Rrogram/Verify section command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_SECTION_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Read resource command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_RESOURCE_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM Program check command address alignment. */
+#define FSL_FEATURE_FLASH_FLEX_NVM_CHECK_CMD_ADDRESS_ALIGMENT (0)
+/* @brief FlexNVM partition code 0000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0000 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0001 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0010 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0011 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0100 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0101 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0110 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 0111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_0111 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1000 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1000 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1001 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1001 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1010 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1010 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1011 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1011 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1100 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1100 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1101 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1101 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1110 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1110 (0xFFFFFFFF)
+/* @brief FlexNVM partition code 1111 mapping to data flash size in bytes (0xFFFFFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_DFLASH_SIZE_FOR_DEPART_1111 (0xFFFFFFFF)
+/* @brief Emulated eeprom size code 0000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0000 (0xFFFF)
+/* @brief Emulated eeprom size code 0001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0001 (0xFFFF)
+/* @brief Emulated eeprom size code 0010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0010 (0x1000)
+/* @brief Emulated eeprom size code 0011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0011 (0x0800)
+/* @brief Emulated eeprom size code 0100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0100 (0x0400)
+/* @brief Emulated eeprom size code 0101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0101 (0x0200)
+/* @brief Emulated eeprom size code 0110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0110 (0x0100)
+/* @brief Emulated eeprom size code 0111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_0111 (0x0080)
+/* @brief Emulated eeprom size code 1000 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1000 (0x0040)
+/* @brief Emulated eeprom size code 1001 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1001 (0x0020)
+/* @brief Emulated eeprom size code 1010 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1010 (0xFFFF)
+/* @brief Emulated eeprom size code 1011 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1011 (0xFFFF)
+/* @brief Emulated eeprom size code 1100 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1100 (0xFFFF)
+/* @brief Emulated eeprom size code 1101 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1101 (0xFFFF)
+/* @brief Emulated eeprom size code 1110 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1110 (0xFFFF)
+/* @brief Emulated eeprom size code 1111 mapping to emulated eeprom size in bytes (0xFFFF = reserved). */
+#define FSL_FEATURE_FLASH_FLEX_NVM_EEPROM_SIZE_FOR_EEESIZE_1111 (0x0000)
+
+/* GPIO module features */
+
+/* @brief Has fast (single cycle) access capability via a dedicated memory region. */
+#define FSL_FEATURE_GPIO_HAS_FAST_GPIO (1)
+/* @brief Has port input disable register (PIDR). */
+#define FSL_FEATURE_GPIO_HAS_INPUT_DISABLE (0)
+/* @brief Has dedicated interrupt vector. */
+#define FSL_FEATURE_GPIO_HAS_PORT_INTERRUPT_VECTOR (1)
+
+/* SAI module features */
+
+/* @brief Receive/transmit FIFO size in item count (register bit fields TCSR[FRDE], TCSR[FRIE], TCSR[FRF], TCR1[TFW], RCSR[FRDE], RCSR[FRIE], RCSR[FRF], RCR1[RFW], registers TFRn, RFRn). */
+#define FSL_FEATURE_SAI_FIFO_COUNT (8)
+/* @brief Receive/transmit channel number (register bit fields TCR3[TCE], RCR3[RCE], registers TDRn and RDRn). */
+#define FSL_FEATURE_SAI_CHANNEL_COUNT (2)
+/* @brief Maximum words per frame (register bit fields TCR3[WDFL], TCR4[FRSZ], TMR[TWM], RCR3[WDFL], RCR4[FRSZ], RMR[RWM]). */
+#define FSL_FEATURE_SAI_MAX_WORDS_PER_FRAME (32)
+/* @brief Has support of combining multiple data channel FIFOs into single channel FIFO (register bit fields TCR3[CFR], TCR4[FCOMB], TFR0[WCP], TFR1[WCP], RCR3[CFR], RCR4[FCOMB], RFR0[RCP], RFR1[RCP]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_COMBINE_MODE (1)
+/* @brief Has packing of 8-bit and 16-bit data into each 32-bit FIFO word (register bit fields TCR4[FPACK], RCR4[FPACK]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_PACKING (1)
+/* @brief Configures when the SAI will continue transmitting after a FIFO error has been detected (register bit fields TCR4[FCONT], RCR4[FCONT]). */
+#define FSL_FEATURE_SAI_HAS_FIFO_FUNCTION_AFTER_ERROR (1)
+/* @brief Configures if the frame sync is generated internally, a frame sync is only generated when the FIFO warning flag is clear or continuously (register bit fields TCR4[ONDEM], RCR4[ONDEM]). */
+#define FSL_FEATURE_SAI_HAS_ON_DEMAND_MODE (1)
+/* @brief Simplified bit clock source and asynchronous/synchronous mode selection (register bit fields TCR2[CLKMODE], RCR2[CLKMODE]), in comparison with the exclusively implemented TCR2[SYNC,BCS,BCI,MSEL], RCR2[SYNC,BCS,BCI,MSEL]. */
+#define FSL_FEATURE_SAI_HAS_CLOCKING_MODE (0)
+/* @brief Has register for configuration of the MCLK divide ratio (register bit fields MDR[FRACT], MDR[DIVIDE]). */
+#define FSL_FEATURE_SAI_HAS_MCLKDIV_REGISTER (0)
+/* @brief Interrupt source number */
+#define FSL_FEATURE_SAI_INT_SOURCE_NUM (1)
+/* @brief Has register of MCR. */
+#define FSL_FEATURE_SAI_HAS_MCR (0)
+/* @brief Has bit field MICS of the MCR register. */
+#define FSL_FEATURE_SAI_HAS_NO_MCR_MICS (1)
+/* @brief Has register of MDR */
+#define FSL_FEATURE_SAI_HAS_MDR (0)
+/* @brief Has support the BCLK bypass mode when BCLK = MCLK. */
+#define FSL_FEATURE_SAI_HAS_BCLK_BYPASS (0)
+
+/* INTMUX module features */
+
+/* @brief Number of INTMUX channels (related to number of register CHn_CSR). */
+#define FSL_FEATURE_INTMUX_CHANNEL_COUNT (8)
+/* @brief Number of INTMUX IRQ source. */
+#define FSL_FEATURE_INTMUX_IRQ_COUNT (32)
+/* @brief The start IRQ index of first INTMUX source IRQ. */
+#define FSL_FEATURE_INTMUX_IRQ_START_INDEX (32)
+/* @brief The direction of INTMUX. OUT, route the CM4 subsystem IRQ to System. */
+#define FSL_FEATURE_INTMUX_DIRECTION_OUT (0)
+/* @brief The total number of level1 interrupt vectors. */
+#define FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS (32)
+
+/* LLWU module features */
+
+/* @brief Maximum number of pins connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN (32)
+/* @brief Maximum number of internal modules connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE (8)
+/* @brief Number of digital filters. */
+#define FSL_FEATURE_LLWU_HAS_PIN_FILTER (2)
+/* @brief Has MF register. */
+#define FSL_FEATURE_LLWU_HAS_MF (0)
+/* @brief Has PF register. */
+#define FSL_FEATURE_LLWU_HAS_PF (1)
+/* @brief Has possibility to enable reset in low leakage power mode and enable digital filter for RESET pin (register LLWU_RST). */
+#define FSL_FEATURE_LLWU_HAS_RESET_ENABLE (0)
+/* @brief Has no internal module wakeup flag register. */
+#define FSL_FEATURE_LLWU_HAS_NO_INTERNAL_MODULE_WAKEUP_FLAG_REG (1)
+/* @brief Has external pin 0 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN0 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN0_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN0_GPIO_PIN (1)
+/* @brief Has external pin 1 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN1 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN1_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN1_GPIO_PIN (2)
+/* @brief Has external pin 2 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN2 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN2_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN2_GPIO_PIN (22)
+/* @brief Has external pin 3 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN3 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN3_GPIO_IDX (GPIOA_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN3_GPIO_PIN (30)
+/* @brief Has external pin 4 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN4 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN4_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN4_GPIO_PIN (1)
+/* @brief Has external pin 5 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN5 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN5_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN5_GPIO_PIN (2)
+/* @brief Has external pin 6 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN6 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN6_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN6_GPIO_PIN (4)
+/* @brief Has external pin 7 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN7 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN7_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN7_GPIO_PIN (6)
+/* @brief Has external pin 8 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN8 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN8_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN8_GPIO_PIN (7)
+/* @brief Has external pin 9 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN9 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN9_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN9_GPIO_PIN (8)
+/* @brief Has external pin 10 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN10 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN10_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN10_GPIO_PIN (16)
+/* @brief Has external pin 11 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN11 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN11_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN11_GPIO_PIN (20)
+/* @brief Has external pin 12 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN12 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN12_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN12_GPIO_PIN (22)
+/* @brief Has external pin 13 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN13 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN13_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN13_GPIO_PIN (25)
+/* @brief Has external pin 14 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN14 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN14_GPIO_IDX (GPIOB_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN14_GPIO_PIN (28)
+/* @brief Has external pin 15 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN15 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN15_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN15_GPIO_PIN (7)
+/* @brief Has external pin 16 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN16 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN16_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN16_GPIO_PIN (9)
+/* @brief Has external pin 17 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN17 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN17_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN17_GPIO_PIN (11)
+/* @brief Has external pin 18 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN18 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN18_GPIO_IDX (GPIOC_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN18_GPIO_PIN (12)
+/* @brief Has external pin 19 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN19 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN19_GPIO_IDX (GPIOD_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN19_GPIO_PIN (8)
+/* @brief Has external pin 20 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN20 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN20_GPIO_IDX (GPIOD_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN20_GPIO_PIN (10)
+/* @brief Has external pin 21 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN21 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN21_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN21_GPIO_PIN (1)
+/* @brief Has external pin 22 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN22 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN22_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN22_GPIO_PIN (3)
+/* @brief Has external pin 23 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN23 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN23_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN23_GPIO_PIN (8)
+/* @brief Has external pin 24 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN24 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN24_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN24_GPIO_PIN (9)
+/* @brief Has external pin 25 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN25 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN25_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN25_GPIO_PIN (10)
+/* @brief Has external pin 26 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN26 (1)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN26_GPIO_IDX (GPIOE_IDX)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN26_GPIO_PIN (12)
+/* @brief Has external pin 27 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN27 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN27_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN27_GPIO_PIN (0)
+/* @brief Has external pin 28 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN28 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN28_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN28_GPIO_PIN (0)
+/* @brief Has external pin 29 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN29 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN29_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN29_GPIO_PIN (0)
+/* @brief Has external pin 30 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN30 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN30_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN30_GPIO_PIN (0)
+/* @brief Has external pin 31 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_EXTERNAL_PIN31 (0)
+/* @brief Index of port of external pin. */
+#define FSL_FEATURE_LLWU_PIN31_GPIO_IDX (0)
+/* @brief Number of external pin port on specified port. */
+#define FSL_FEATURE_LLWU_PIN31_GPIO_PIN (0)
+/* @brief Has internal module 0 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE0 (1)
+/* @brief Has internal module 1 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE1 (1)
+/* @brief Has internal module 2 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE2 (1)
+/* @brief Has internal module 3 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE3 (1)
+/* @brief Has internal module 4 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE4 (1)
+/* @brief Has internal module 5 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE5 (1)
+/* @brief Has internal module 6 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE6 (1)
+/* @brief Has internal module 7 connected to LLWU device. */
+#define FSL_FEATURE_LLWU_HAS_INTERNAL_MODULE7 (1)
+/* @brief Has LLWU_VERID. */
+#define FSL_FEATURE_LLWU_HAS_VERID (1)
+/* @brief Has LLWU_PARAM. */
+#define FSL_FEATURE_LLWU_HAS_PARAM (1)
+/* @brief LLWU register bit width. */
+#define FSL_FEATURE_LLWU_REG_BITWIDTH (32)
+/* @brief Has DMA Enable register LLWU_DE. */
+#define FSL_FEATURE_LLWU_HAS_DMA_ENABLE_REG (1)
+
+/* LPDAC module features */
+
+/* @brief FIFO size. */
+#define FSL_FEATURE_LPDAC_FIFO_SIZE (16)
+
+/* LPI2C module features */
+
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPI2C_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPI2C_FIFO_SIZEn(x) (4)
+
+/* LPIT module features */
+
+/* @brief Number of channels (related to number of registers LDVALn, CVALn, TCTRLn, TFLGn). */
+#define FSL_FEATURE_LPIT_TIMER_COUNT (4)
+/* @brief Has lifetime timer (related to existence of registers LTMR64L and LTMR64H). */
+#define FSL_FEATURE_LPIT_HAS_LIFETIME_TIMER (0)
+/* @brief Has chain mode (related to existence of register bit field TCTRLn[CHN]). */
+#define FSL_FEATURE_LPIT_HAS_CHAIN_MODE (0)
+/* @brief Has shared interrupt handler (has not individual interrupt handler for each channel). */
+#define FSL_FEATURE_LPIT_HAS_SHARED_IRQ_HANDLER (0)
+
+/* LPSPI module features */
+
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPSPI_FIFO_SIZEn(x) (4)
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPSPI_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+
+/* LPTMR module features */
+
+/* @brief Has shared interrupt handler with another LPTMR module. */
+#define FSL_FEATURE_LPTMR_HAS_SHARED_IRQ_HANDLER (0)
+/* @brief Whether LPTMR counter is 32 bits width. */
+#define FSL_FEATURE_LPTMR_CNR_WIDTH_IS_32B (1)
+/* @brief Has timer DMA request enable (register bit CSR[TDRE]). */
+#define FSL_FEATURE_LPTMR_HAS_CSR_TDRE (1)
+
+/* LPUART module features */
+
+/* @brief Has receive FIFO overflow detection (bit field CFIFO[RXOFE]). */
+#define FSL_FEATURE_LPUART_HAS_IRQ_EXTENDED_FUNCTIONS (0)
+/* @brief Has low power features (can be enabled in wait mode via register bit C1[DOZEEN] or CTRL[DOZEEN] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_LOW_POWER_UART_SUPPORT (1)
+/* @brief Has extended data register ED (or extra flags in the DATA register if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPUART_HAS_FIFO (1)
+/* @brief Has 32-bit register MODIR */
+#define FSL_FEATURE_LPUART_HAS_MODIR (1)
+/* @brief Hardware flow control (RTS, CTS) is supported. */
+#define FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT (1)
+/* @brief Infrared (modulation) is supported. */
+#define FSL_FEATURE_LPUART_HAS_IR_SUPPORT (1)
+/* @brief 2 bits long stop bit is available. */
+#define FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT (1)
+/* @brief If 10-bit mode is supported. */
+#define FSL_FEATURE_LPUART_HAS_10BIT_DATA_SUPPORT (1)
+/* @brief If 7-bit mode is supported. */
+#define FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT (1)
+/* @brief Baud rate fine adjustment is available. */
+#define FSL_FEATURE_LPUART_HAS_BAUD_RATE_FINE_ADJUST_SUPPORT (0)
+/* @brief Baud rate oversampling is available (has bit fields C4[OSR], C5[BOTHEDGE], C5[RESYNCDIS] or BAUD[OSR], BAUD[BOTHEDGE], BAUD[RESYNCDIS] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_BAUD_RATE_OVER_SAMPLING_SUPPORT (1)
+/* @brief Baud rate oversampling is available. */
+#define FSL_FEATURE_LPUART_HAS_RX_RESYNC_SUPPORT (1)
+/* @brief Baud rate oversampling is available. */
+#define FSL_FEATURE_LPUART_HAS_BOTH_EDGE_SAMPLING_SUPPORT (1)
+/* @brief Peripheral type. */
+#define FSL_FEATURE_LPUART_IS_SCI (1)
+/* @brief Capacity (number of entries) of the transmit/receive FIFO (or zero if no FIFO is available). */
+#define FSL_FEATURE_LPUART_FIFO_SIZEn(x) (8)
+/* @brief Maximal data width without parity bit. */
+#define FSL_FEATURE_LPUART_MAX_DATA_WIDTH_WITH_NO_PARITY (10)
+/* @brief Maximal data width with parity bit. */
+#define FSL_FEATURE_LPUART_MAX_DATA_WIDTH_WITH_PARITY (9)
+/* @brief Supports two match addresses to filter incoming frames. */
+#define FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING (1)
+/* @brief Has transmitter/receiver DMA enable bits C5[TDMAE]/C5[RDMAE] (or BAUD[TDMAE]/BAUD[RDMAE] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_DMA_ENABLE (1)
+/* @brief Has transmitter/receiver DMA select bits C4[TDMAS]/C4[RDMAS], resp. C5[TDMAS]/C5[RDMAS] if IS_SCI = 0. */
+#define FSL_FEATURE_LPUART_HAS_DMA_SELECT (0)
+/* @brief Data character bit order selection is supported (bit field S2[MSBF] or STAT[MSBF] if the registers are 32-bit wide). */
+#define FSL_FEATURE_LPUART_HAS_BIT_ORDER_SELECT (1)
+/* @brief Has smart card (ISO7816 protocol) support and no improved smart card support. */
+#define FSL_FEATURE_LPUART_HAS_SMART_CARD_SUPPORT (0)
+/* @brief Has improved smart card (ISO7816 protocol) support. */
+#define FSL_FEATURE_LPUART_HAS_IMPROVED_SMART_CARD_SUPPORT (0)
+/* @brief Has local operation network (CEA709.1-B protocol) support. */
+#define FSL_FEATURE_LPUART_HAS_LOCAL_OPERATION_NETWORK_SUPPORT (0)
+/* @brief Has 32-bit registers (BAUD, STAT, CTRL, DATA, MATCH, MODIR) instead of 8-bit (BDH, BDL, C1, S1, D, etc.). */
+#define FSL_FEATURE_LPUART_HAS_32BIT_REGISTERS (1)
+/* @brief Lin break detect available (has bit BAUD[LBKDIE]). */
+#define FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT (1)
+/* @brief UART stops in Wait mode available (has bit C1[UARTSWAI]). */
+#define FSL_FEATURE_LPUART_HAS_WAIT_MODE_OPERATION (0)
+/* @brief Has separate DMA RX and TX requests. */
+#define FSL_FEATURE_LPUART_HAS_SEPARATE_DMA_RX_TX_REQn(x) (1)
+/* @brief Has separate RX and TX interrupts. */
+#define FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ (0)
+/* @brief Has LPAURT_PARAM. */
+#define FSL_FEATURE_LPUART_HAS_PARAM (1)
+/* @brief Has LPUART_VERID. */
+#define FSL_FEATURE_LPUART_HAS_VERID (1)
+/* @brief Has LPUART_GLOBAL. */
+#define FSL_FEATURE_LPUART_HAS_GLOBAL (1)
+/* @brief Has LPUART_PINCFG. */
+#define FSL_FEATURE_LPUART_HAS_PINCFG (1)
+
+/* MCM module features */
+
+/* @brief Has L1 cache. */
+#define FSL_FEATURE_HAS_L1CACHE (1)
+
+/* MSCM module features */
+
+/* @brief Number of configuration information for processors. */
+#define FSL_FEATURE_MSCM_HAS_CP_COUNT (2)
+/* @brief Has data cache. */
+#define FSL_FEATURE_MSCM_HAS_DATACACHE (0)
+
+/* MU module features */
+
+/* @brief MU side for current core */
+#define FSL_FEATURE_MU_SIDE_B (1)
+/* @brief MU Has register CCR */
+#define FSL_FEATURE_MU_HAS_CCR (1)
+/* @brief MU Has register SR[RS], BSR[ARS] */
+#define FSL_FEATURE_MU_HAS_SR_RS (0)
+/* @brief MU Has register CR[RDIE], CR[RAIE], SR[RDIP], SR[RAIP] */
+#define FSL_FEATURE_MU_HAS_RESET_INT (1)
+/* @brief MU Has register SR[MURIP] */
+#define FSL_FEATURE_MU_HAS_SR_MURIP (1)
+/* @brief brief MU Has register SR[HRIP] */
+#define FSL_FEATURE_MU_HAS_SR_HRIP (1)
+/* @brief brief MU does not support enable clock of the other core, CR[CLKE] or CCR[CLKE]. */
+#define FSL_FEATURE_MU_NO_CLKE (0)
+/* @brief brief MU does not support NMI, CR[NMI]. */
+#define FSL_FEATURE_MU_NO_NMI (0)
+/* @brief brief MU does not support hold the other core reset. CR[RSTH] or CCR[RSTH]. */
+#define FSL_FEATURE_MU_NO_RSTH (0)
+/* @brief brief MU does not supports MU reset, CR[MUR]. */
+#define FSL_FEATURE_MU_NO_MUR (0)
+/* @brief brief MU does not supports hardware reset, CR[HR] or CCR[HR]. */
+#define FSL_FEATURE_MU_NO_HR (0)
+/* @brief brief MU supports mask the hardware reset. CR[HRM] or CCR[HRM]. */
+#define FSL_FEATURE_MU_HAS_HRM (1)
+
+/* interrupt module features */
+
+/* @brief Lowest interrupt request number. */
+#define FSL_FEATURE_INTERRUPT_IRQ_MIN (-14)
+/* @brief Highest interrupt request number. */
+#define FSL_FEATURE_INTERRUPT_IRQ_MAX (31)
+
+/* PCC module features */
+
+/* @brief Has CLOCK GATE CONTROL bit (e.g PCC_CGC) */
+#define FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL (1)
+
+/* PORT module features */
+
+/* @brief Has control lock (register bit PCR[LK]). */
+#define FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK (1)
+/* @brief Has open drain control (register bit PCR[ODE]). */
+#define FSL_FEATURE_PORT_HAS_OPEN_DRAIN (1)
+/* @brief Has digital filter (registers DFER, DFCR and DFWR). */
+#define FSL_FEATURE_PORT_HAS_DIGITAL_FILTER (1)
+/* @brief Has DMA request (register bit field PCR[IRQC] or ICR[IRQC] values). */
+#define FSL_FEATURE_PORT_HAS_DMA_REQUEST (1)
+/* @brief Has pull resistor selection available. */
+#define FSL_FEATURE_PORT_HAS_PULL_SELECTION (1)
+/* @brief Has pull resistor enable (register bit PCR[PE]). */
+#define FSL_FEATURE_PORT_HAS_PULL_ENABLE (1)
+/* @brief Has slew rate control (register bit PCR[SRE]). */
+#define FSL_FEATURE_PORT_HAS_SLEW_RATE (1)
+/* @brief Has passive filter (register bit field PCR[PFE]). */
+#define FSL_FEATURE_PORT_HAS_PASSIVE_FILTER (1)
+/* @brief Has drive strength control (register bit PCR[DSE]). */
+#define FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH (1)
+/* @brief Defines width of PCR[MUX] field. */
+#define FSL_FEATURE_PORT_PCR_MUX_WIDTH (3)
+/* @brief Has dedicated interrupt vector. */
+#define FSL_FEATURE_PORT_HAS_INTERRUPT_VECTOR (1)
+/* @brief Has independent interrupt control(register ICR). */
+#define FSL_FEATURE_PORT_HAS_INDEPENDENT_INTERRUPT_CONTROL (0)
+/* @brief Has multiple pin IRQ configuration (register GICLR and GICHR). */
+#define FSL_FEATURE_PORT_HAS_MULTIPLE_IRQ_CONFIG (1)
+/* @brief Defines whether PCR[IRQC] bit-field has flag states. */
+#define FSL_FEATURE_PORT_HAS_IRQC_FLAG (1)
+/* @brief Defines whether PCR[IRQC] bit-field has trigger states. */
+#define FSL_FEATURE_PORT_HAS_IRQC_TRIGGER (1)
+
+/* RADIO module features */
+
+/* @brief Zigbee availability. */
+#define FSL_FEATURE_RADIO_HAS_ZIGBEE (1)
+/* @brief Bluetooth availability. */
+#define FSL_FEATURE_RADIO_HAS_BLE (1)
+/* @brief ANT availability */
+#define FSL_FEATURE_RADIO_HAS_ANT (0)
+/* @brief Generic FSK module availability */
+#define FSL_FEATURE_RADIO_HAS_GENFSK (1)
+/* @brief Major version of the radio submodule */
+#define FSL_FEATURE_RADIO_VERSION_MAJOR (3)
+/* @brief Minor version of the radio submodule */
+#define FSL_FEATURE_RADIO_VERSION_MINOR (0)
+
+/* RTC module features */
+
+/* @brief Has wakeup pin. */
+#define FSL_FEATURE_RTC_HAS_WAKEUP_PIN (1)
+/* @brief Has wakeup pin selection (bit field CR[WPS]). */
+#define FSL_FEATURE_RTC_HAS_WAKEUP_PIN_SELECTION (1)
+/* @brief Has low power features (registers MER, MCLR and MCHR). */
+#define FSL_FEATURE_RTC_HAS_MONOTONIC (1)
+/* @brief Has read/write access control (registers WAR and RAR). */
+#define FSL_FEATURE_RTC_HAS_ACCESS_CONTROL (1)
+/* @brief Has security features (registers TTSR, MER, MCLR and MCHR). */
+#define FSL_FEATURE_RTC_HAS_SECURITY (1)
+/* @brief Has RTC_CLKIN available. */
+#define FSL_FEATURE_RTC_HAS_RTC_CLKIN (0)
+/* @brief Has prescaler adjust for LPO. */
+#define FSL_FEATURE_RTC_HAS_LPO_ADJUST (1)
+/* @brief Has Clock Pin Enable field. */
+#define FSL_FEATURE_RTC_HAS_CPE (1)
+/* @brief Has Timer Seconds Interrupt Configuration field. */
+#define FSL_FEATURE_RTC_HAS_TSIC (1)
+/* @brief Has OSC capacitor setting RTC_CR[SC2P ~ SC16P] */
+#define FSL_FEATURE_RTC_HAS_OSC_SCXP (1)
+/* @brief Has Tamper Interrupt Register (register TIR). */
+#define FSL_FEATURE_RTC_HAS_TIR (1)
+/* @brief Has Tamper Pin Interrupt Enable (bitfield TIR[TPIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_TPIE (1)
+/* @brief Has Security Interrupt Enable (bitfield TIR[SIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_SIE (1)
+/* @brief Has Loss of Clock Interrupt Enable (bitfield TIR[LCIE]). */
+#define FSL_FEATURE_RTC_HAS_TIR_LCIE (1)
+/* @brief Has Tamper Interrupt Detect Flag (bitfield SR[TIDF]). */
+#define FSL_FEATURE_RTC_HAS_SR_TIDF (1)
+/* @brief Has Tamper Detect Register (register TDR). */
+#define FSL_FEATURE_RTC_HAS_TDR (1)
+/* @brief Has Tamper Pin Flag (bitfield TDR[TPF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_TPF (1)
+/* @brief Has Security Tamper Flag (bitfield TDR[STF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_STF (1)
+/* @brief Has Loss of Clock Tamper Flag (bitfield TDR[LCTF]). */
+#define FSL_FEATURE_RTC_HAS_TDR_LCTF (1)
+/* @brief Has Tamper Time Seconds Register (register TTSR). */
+#define FSL_FEATURE_RTC_HAS_TTSR (1)
+/* @brief Has Pin Configuration Register (register PCR). */
+#define FSL_FEATURE_RTC_HAS_PCR (1)
+/* @brief Has Oscillator Enable(bitfield CR[OSCE]). */
+#define FSL_FEATURE_RTC_HAS_NO_CR_OSCE (0)
+
+/* SCG module features */
+
+/* @brief Has platform clock divider SCG_CSR[DIVPLAT]. */
+#define FSL_FEATURE_SCG_HAS_DIVPLAT (0)
+/* @brief Has bus clock divider SCG_CSR[DIVBUS]. */
+#define FSL_FEATURE_SCG_HAS_DIVBUS (1)
+/* @brief Has external clock divide ratio SCG_CSR[DIVEXT]. */
+#define FSL_FEATURE_SCG_HAS_DIVEXT (1)
+/* @brief Has OSC capacitor setting SOSCCFG[SC2P ~ SC16P]. */
+#define FSL_FEATURE_SCG_HAS_OSC_SCXP (0)
+/* @brief Has SOSCCSR[SOSCERCLKEN]. */
+#define FSL_FEATURE_SCG_HAS_OSC_ERCLK (0)
+/* @brief Has OSC freq range SOSCCFG[RANGE]. */
+#define FSL_FEATURE_SCG_HAS_SOSC_RANGE (0)
+/* @brief Has CLKOUT configure register SCG_CLKOUTCNFG. */
+#define FSL_FEATURE_SCG_HAS_CLKOUTCNFG (1)
+/* @brief Has SCG_SOSCDIV[SOSCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SOSCDIV3 (1)
+/* @brief Has SCG_SIRCDIV[SIRCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SIRCDIV3 (1)
+/* @brief Has SCG_SIRCCSR[LPOPO]. */
+#define FSL_FEATURE_SCG_HAS_SIRC_LPOPO (0)
+/* @brief Has SCG_FIRCDIV[FIRCDIV3]. */
+#define FSL_FEATURE_SCG_HAS_FIRCDIV3 (1)
+/* @brief Has SCG_FIRCCSR[FIRCLPEN]. */
+#define FSL_FEATURE_SCG_HAS_FIRCLPEN (1)
+/* @brief Has SCG_FIRCCSR[FIRCREGOFF]. */
+#define FSL_FEATURE_SCG_HAS_FIRCREGOFF (1)
+/* @brief Has SCG_SPLLDIV[SPLLDIV3]. */
+#define FSL_FEATURE_SCG_HAS_SPLLDIV3 (0)
+/* @brief Has SCG_SPLLCFG[PLLPOSTDIV1]. */
+#define FSL_FEATURE_SCG_HAS_SPLLPOSTDIV1 (0)
+/* @brief Has SCG_SPLLCFG[PLLPOSTDIV2]. */
+#define FSL_FEATURE_SCG_HAS_SPLLPOSTDIV2 (0)
+/* @brief Has SCG_SPLLCFG[PLLS]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_PLLS (0)
+/* @brief Has SCG_SPLLCFG[BYPASS]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_BYPASS (0)
+/* @brief Has SCG_SPLLCFG[PFDSEL]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_PFDSEL (0)
+/* @brief Has SCG_SPLLCSR[SPLLCM]. */
+#define FSL_FEATURE_SCG_HAS_SPLL_MONITOR (0)
+/* @brief Has SCG_LPFLLDIV[FLLDIV3]. */
+#define FSL_FEATURE_SCG_HAS_FLLDIV3 (1)
+/* @brief Has low power FLL, SCG_LPFLLCSR. */
+#define FSL_FEATURE_SCG_HAS_LPFLL (1)
+/* @brief Has system PLL, SCG_SPLLCSR. */
+#define FSL_FEATURE_SCG_HAS_SPLL (0)
+/* @brief Has system PLL PFD, SCG_SPLLPFD. */
+#define FSL_FEATURE_SCG_HAS_SPLLPFD (0)
+/* @brief Has auxiliary PLL, SCG_APLLCSR. */
+#define FSL_FEATURE_SCG_HAS_APLL (0)
+/* @brief Has RTC OSC control, SCG_ROSCCSR. */
+#define FSL_FEATURE_SCG_HAS_ROSC (1)
+/* @brief Has RTC OSC clock source. */
+#define FSL_FEATURE_SCG_HAS_ROSC_SYS_CLK_SRC (1)
+/* @brief Has RTC OSC clock out select. */
+#define FSL_FEATURE_SCG_HAS_ROSC_CLKOUT (1)
+/* @brief Has EXTERNAL clock out select. */
+#define FSL_FEATURE_SCG_HAS_EXT_CLKOUT (1)
+/* @brief Has no System OSC configuration register, SCG_SOSCCFG. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCFG (1)
+/* @brief Has no SCG_SOSCCSR[SOSCEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCEN (0)
+/* @brief Has no SCG_SOSCCSR[SOSCSTEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCSTEN (0)
+/* @brief Has no SCG_SOSCCSR[SOSCLPEN]. */
+#define FSL_FEATURE_SCG_HAS_NO_SOSCCSR_SOSCLPEN (0)
+/* @brief Has no FIRC trim configuration register, SCG_FIRCTCFG. */
+#define FSL_FEATURE_SCG_HAS_NO_FIRCTCFG (0)
+/* @brief Has FIRC trim source USB0 Start of Frame. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_USB0 (0)
+/* @brief Has FIRC trim source USB1 Start of Frame. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_USB1 (0)
+/* @brief Has FIRC trim source system OSC. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_SOSC (1)
+/* @brief Has FIRC trim source RTC OSC. */
+#define FSL_FEATURE_SCG_HAS_FIRC_TRIMSRC_RTCOSC (1)
+
+/* SEMA42 module features */
+
+/* @brief Gate counts */
+#define FSL_FEATURE_SEMA42_GATE_COUNT (16)
+
+/* SIM module features */
+
+/* @brief Has USB FS divider. */
+#define FSL_FEATURE_SIM_USBFS_USE_SPECIAL_DIVIDER (0)
+/* @brief Is PLL clock divided by 2 before MCG PLL/FLL clock selection. */
+#define FSL_FEATURE_SIM_PLLCLK_USE_SPECIAL_DIVIDER (0)
+/* @brief Has RAM size specification (register bit field SOPT1[RAMSIZE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RAMSIZE (0)
+/* @brief Has 32k oscillator clock output (register bit SOPT1[OSC32KOUT]). */
+#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_OUT (0)
+/* @brief Has 32k oscillator clock selection (register bit field SOPT1[OSC32KSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_OSC32K_SELECTION (0)
+/* @brief 32k oscillator clock selection width (width of register bit field SOPT1[OSC32KSEL]). */
+#define FSL_FEATURE_SIM_OPT_OSC32K_SELECTION_WIDTH (0)
+/* @brief Has RTC clock output selection (register bit SOPT2[RTCCLKOUTSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RTC_CLOCK_OUT_SELECTION (0)
+/* @brief Has USB voltage regulator (register bits SOPT1[USBVSTBY], SOPT1[USBSSTBY], SOPT1[USBREGEN], SOPT1CFG[URWE], SOPT1CFG[UVSWE], SOPT1CFG[USSWE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USB_VOLTAGE_REGULATOR (0)
+/* @brief USB has integrated PHY (register bits USBPHYCTL[USBVREGSEL], USBPHYCTL[USBVREGPD], USBPHYCTL[USB3VOUTTRG], USBPHYCTL[USBDISILIM], SOPT2[USBSLSRC], SOPT2[USBREGEN]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USB_PHY (0)
+/* @brief Has PTD7 pad drive strength control (register bit SOPT2[PTD7PAD]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PTD7PAD (0)
+/* @brief Has FlexBus security level selection (register bit SOPT2[FBSL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FBSL (0)
+/* @brief Has number of FlexBus hold cycle before FlexBus can release bus (register bit SOPT6[PCR]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PCR (0)
+/* @brief Has number of NFC hold cycle in case of FlexBus request (register bit SOPT6[MCC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_MCC (0)
+/* @brief Has UART open drain enable (register bits UARTnODE, where n is a number, in register SOPT5). */
+#define FSL_FEATURE_SIM_OPT_HAS_ODE (0)
+/* @brief Number of LPUART modules (number of register bits LPUARTn, where n is a number, in register SCGC5). */
+#define FSL_FEATURE_SIM_OPT_LPUART_COUNT (0)
+/* @brief Number of UART modules (number of register bits UARTn, where n is a number, in register SCGC4). */
+#define FSL_FEATURE_SIM_OPT_UART_COUNT (0)
+/* @brief Has UART0 open drain enable (register bit SOPT5[UART0ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_ODE (0)
+/* @brief Has UART1 open drain enable (register bit SOPT5[UART1ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_ODE (0)
+/* @brief Has UART2 open drain enable (register bit SOPT5[UART2ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART2_ODE (0)
+/* @brief Has LPUART0 open drain enable (register bit SOPT5[LPUART0ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_ODE (0)
+/* @brief Has LPUART1 open drain enable (register bit SOPT5[LPUART1ODE]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_ODE (0)
+/* @brief Has CMT/UART pad drive strength control (register bit SOPT2[CMTUARTPAD]). */
+#define FSL_FEATURE_SIM_OPT_HAS_CMTUARTPAD (0)
+/* @brief Has LPUART0 transmit data source selection (register bit SOPT5[LPUART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_TX_SRC (0)
+/* @brief Has LPUART0 receive data source selection (register bit SOPT5[LPUART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0_RX_SRC (0)
+/* @brief Has LPUART1 transmit data source selection (register bit SOPT5[LPUART1TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_TX_SRC (0)
+/* @brief Has LPUART1 receive data source selection (register bit SOPT5[LPUART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1_RX_SRC (0)
+/* @brief Has UART0 transmit data source selection (register bit SOPT5[UART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_TX_SRC (0)
+/* @brief UART0 transmit data source selection width (width of register bit SOPT5[UART0TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART0_TX_SRC_WIDTH (0)
+/* @brief Has UART0 receive data source selection (register bit SOPT5[UART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0_RX_SRC (0)
+/* @brief UART0 receive data source selection width (width of register bit SOPT5[UART0RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART0_RX_SRC_WIDTH (0)
+/* @brief Has UART1 transmit data source selection (register bit SOPT5[UART1TXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_TX_SRC (0)
+/* @brief Has UART1 receive data source selection (register bit SOPT5[UART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART1_RX_SRC (0)
+/* @brief UART1 receive data source selection width (width of register bit SOPT5[UART1RXSRC]). */
+#define FSL_FEATURE_SIM_OPT_UART1_RX_SRC_WIDTH (0)
+/* @brief Has FTM module(s) configuration. */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM (0)
+/* @brief Number of FTM modules. */
+#define FSL_FEATURE_SIM_OPT_FTM_COUNT (0)
+/* @brief Number of FTM triggers with selectable source. */
+#define FSL_FEATURE_SIM_OPT_FTM_TRIGGER_COUNT (0)
+/* @brief Has FTM0 triggers source selection (register bits SOPT4[FTM0TRGnSRC], where n is a number). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM0_TRIGGER (0)
+/* @brief Has FTM3 triggers source selection (register bits SOPT4[FTM3TRGnSRC], where n is a number). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM3_TRIGGER (0)
+/* @brief Has FTM1 channel 0 input capture source selection (register bit SOPT4[FTM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM1_CHANNELS (0)
+/* @brief Has FTM2 channel 0 input capture source selection (register bit SOPT4[FTM2CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNELS (0)
+/* @brief Has FTM3 channel 0 input capture source selection (register bit SOPT4[FTM3CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM3_CHANNELS (0)
+/* @brief Has FTM2 channel 1 input capture source selection (register bit SOPT4[FTM2CH1SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM2_CHANNEL1 (0)
+/* @brief Number of configurable FTM0 fault detection input (number of register bits SOPT4[FTM0FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM0_FAULT_COUNT (0)
+/* @brief Number of configurable FTM1 fault detection input (number of register bits SOPT4[FTM1FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM1_FAULT_COUNT (0)
+/* @brief Number of configurable FTM2 fault detection input (number of register bits SOPT4[FTM2FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM2_FAULT_COUNT (0)
+/* @brief Number of configurable FTM3 fault detection input (number of register bits SOPT4[FTM3FLTn], where n is a number starting from zero). */
+#define FSL_FEATURE_SIM_OPT_FTM3_FAULT_COUNT (0)
+/* @brief Has FTM hardware trigger 0 software synchronization (register bit SOPT8[FTMnSYNCBIT], where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM_TRIGGER_SYNC (0)
+/* @brief Has FTM channels output source selection (register bit SOPT8[FTMxOCHnSRC], where x is a module instance index and n is a channel index). */
+#define FSL_FEATURE_SIM_OPT_HAS_FTM_CHANNELS_OUTPUT_SRC (0)
+/* @brief Has TPM module(s) configuration. */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM (0)
+/* @brief The highest TPM module index. */
+#define FSL_FEATURE_SIM_OPT_MAX_TPM_INDEX (0)
+/* @brief Has TPM module with index 0. */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM0 (0)
+/* @brief Has TPM0 clock selection (register bit field SOPT4[TPM0CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM0_CLK_SEL (0)
+/* @brief Is TPM channels configuration in the SOPT4 (not SOPT9) register (register bits TPMnCH0SRC, TPMnCLKSEL, where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM_CHANNELS_CONFIG_IN_SOPT4_REG (0)
+/* @brief Has TPM1 channel 0 input capture source selection (register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CH0_SRC_SELECTION (0)
+/* @brief Has TPM1 clock selection (register bit field SOPT4[TPM1CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM1_CLK_SEL (0)
+/* @brief TPM1 channel 0 input capture source selection width (width of register bit field SOPT4[TPM1CH0SRC] or SOPT9[TPM1CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_TPM1_CH0_SRC_SELECTION_WIDTH (0)
+/* @brief Has TPM2 channel 0 input capture source selection (register bit field SOPT4[TPM2CH0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CH0_SRC_SELECTION (0)
+/* @brief Has TPM2 clock selection (register bit field SOPT4[TPM2CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPM2_CLK_SEL (0)
+/* @brief Has PLL/FLL clock selection (register bit field SOPT2[PLLFLLSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_PLL_FLL_SELECTION (0)
+/* @brief PLL/FLL clock selection width (width of register bit field SOPT2[PLLFLLSEL]). */
+#define FSL_FEATURE_SIM_OPT_PLL_FLL_SELECTION_WIDTH (0)
+/* @brief Has NFC clock source selection (register bit SOPT2[NFCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_NFCSRC (0)
+/* @brief Has eSDHC clock source selection (register bit SOPT2[ESDHCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_ESDHCSRC (0)
+/* @brief Has SDHC clock source selection (register bit SOPT2[SDHCSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_SDHCSRC (0)
+/* @brief Has LCDC clock source selection (register bits SOPT2[LCDCSRC], SOPT2[LCDC_CLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LCDCSRC (0)
+/* @brief Has ENET timestamp clock source selection (register bit SOPT2[TIMESRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TIMESRC (0)
+/* @brief Has ENET RMII clock source selection (register bit SOPT2[RMIISRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_RMIISRC (0)
+/* @brief Has USB clock source selection (register bit SOPT2[USBSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBSRC (0)
+/* @brief Has USB FS clock source selection (register bit SOPT2[USBFSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBFSRC (0)
+/* @brief Has USB HS clock source selection (register bit SOPT2[USBHSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_USBHSRC (0)
+/* @brief Has LPUART clock source selection (register bit SOPT2[LPUARTSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUARTSRC (0)
+/* @brief Has LPUART0 clock source selection (register bit SOPT2[LPUART0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART0SRC (0)
+/* @brief Has LPUART1 clock source selection (register bit SOPT2[LPUART1SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_LPUART1SRC (0)
+/* @brief Has FLEXIOSRC clock source selection (register bit SOPT2[FLEXIOSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_FLEXIOSRC (0)
+/* @brief Has UART0 clock source selection (register bit SOPT2[UART0SRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_UART0SRC (0)
+/* @brief Has TPM clock source selection (register bit SOPT2[TPMSRC]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TPMSRC (0)
+/* @brief Has debug trace clock selection (register bit SOPT2[TRACECLKSEL]). */
+#define FSL_FEATURE_SIM_OPT_HAS_TRACE_CLKSEL (0)
+/* @brief Number of ADC modules (register bits SOPT7[ADCnTRGSEL], SOPT7[ADCnPRETRGSEL], SOPT7[ADCnALTTRGSEL], where n is a module instance index). */
+#define FSL_FEATURE_SIM_OPT_ADC_COUNT (0)
+/* @brief ADC module has alternate trigger (register bit SOPT7[ADC0ALTTRGEN]). */
+#define FSL_FEATURE_SIM_OPT_ADC_HAS_ALTERNATE_TRIGGER (0)
+/* @brief ADC0 alternate trigger enable width (width of bit field ADC0ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC0ALTTRGEN_WIDTH (0)
+/* @brief ADC1 alternate trigger enable width (width of bit field ADC1ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC1ALTTRGEN_WIDTH (0)
+/* @brief ADC2 alternate trigger enable width (width of bit field ADC2ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC2ALTTRGEN_WIDTH (0)
+/* @brief ADC3 alternate trigger enable width (width of bit field ADC3ALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADC3ALTTRGEN_WIDTH (0)
+/* @brief HSADC0 converter A alternate trigger enable width (width of bit field HSADC0AALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC0AALTTRGEN_WIDTH (0)
+/* @brief HSADC1 converter A alternate trigger enable width (width of bit field HSADC1AALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC1AALTTRGEN_WIDTH (0)
+/* @brief ADC converter A alternate trigger enable width (width of bit field ADCAALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADCAALTTRGEN_WIDTH (0)
+/* @brief HSADC0 converter B alternate trigger enable width (width of bit field HSADC0BALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC0BALTTRGEN_WIDTH (0)
+/* @brief HSADC1 converter B alternate trigger enable width (width of bit field HSADC1BALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_HSADC1BALTTRGEN_WIDTH (0)
+/* @brief ADC converter B alternate trigger enable width (width of bit field ADCBALTTRGEN of register SOPT7). */
+#define FSL_FEATURE_SIM_OPT_ADCBALTTRGEN_WIDTH (0)
+/* @brief Has clock 2 output divider (register bit field CLKDIV1[OUTDIV2]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV2 (0)
+/* @brief Has clock 3 output divider (register bit field CLKDIV1[OUTDIV3]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV3 (0)
+/* @brief Has clock 4 output divider (register bit field CLKDIV1[OUTDIV4]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV4 (0)
+/* @brief Clock 4 output divider width (width of register bit field CLKDIV1[OUTDIV4]). */
+#define FSL_FEATURE_SIM_DIVIDER_OUTDIV4_WIDTH (0)
+/* @brief Has clock 5 output divider (register bit field CLKDIV1[OUTDIV5]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_OUTDIV5 (0)
+/* @brief Has USB clock divider (register bit field CLKDIV2[USBDIV] and CLKDIV2[USBFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBDIV (0)
+/* @brief Has USB FS clock divider (register bit field CLKDIV2[USBFSDIV] and CLKDIV2[USBFSFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBFSDIV (0)
+/* @brief Has USB HS clock divider (register bit field CLKDIV2[USBHSDIV] and CLKDIV2[USBHSFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_USBHSDIV (0)
+/* @brief Has PLL/FLL clock divider (register bit field CLKDIV3[PLLFLLDIV] and CLKDIV3[PLLFLLFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_PLLFLLDIV (0)
+/* @brief Has LCDC clock divider (register bit field CLKDIV3[LCDCDIV] and CLKDIV3[LCDCFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_LCDCDIV (0)
+/* @brief Has trace clock divider (register bit field CLKDIV4[TRACEDIV] and CLKDIV4[TRACEFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_TRACEDIV (0)
+/* @brief Has NFC clock divider (register bit field CLKDIV4[NFCDIV] and CLKDIV4[NFCFRAC]). */
+#define FSL_FEATURE_SIM_DIVIDER_HAS_NFCDIV (0)
+/* @brief Has Kinetis family ID (register bit field SDID[FAMILYID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_FAMILYID (0)
+/* @brief Has Kinetis family ID (register bit field SDID[FAMID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_FAMID (1)
+/* @brief Has Kinetis sub-family ID (register bit field SDID[SUBFAMID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SUBFAMID (1)
+/* @brief Has Kinetis series ID (register bit field SDID[SERIESID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SERIESID (1)
+/* @brief Has device die ID (register bit field SDID[DIEID]). */
+#define FSL_FEATURE_SIM_SDID_HAS_DIEID (1)
+/* @brief Has system SRAM size specifier (register bit field SDID[SRAMSIZE]). */
+#define FSL_FEATURE_SIM_SDID_HAS_SRAMSIZE (0)
+/* @brief Has flash mode (register bit FCFG1[FLASHDOZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDOZE (1)
+/* @brief Has flash disable (register bit FCFG1[FLASHDIS]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FLASHDIS (1)
+/* @brief Has FTFE disable (register bit FCFG1[FTFDIS]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_FTFDIS (0)
+/* @brief Has FlexNVM size specifier (register bit field FCFG1[NVMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_NVMSIZE (0)
+/* @brief Has EEPROM size specifier (register bit field FCFG1[EESIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_EESIZE (0)
+/* @brief Has FlexNVM partition (register bit field FCFG1[DEPART]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_DEPART (0)
+/* @brief Has flash for core0(CM4) (register bit field FCFG1[CORE0_PFSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE0_PFSIZE (1)
+/* @brief Has flash for core1(CM0) (register bit field FCFG1[CORE1_PFSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE1_PFSIZE (1)
+/* @brief Has sram for core0(CM4) (register bit field FCFG1[CORE0_SRAMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE0_SRAMSIZE (1)
+/* @brief Has sram for core1(CM0) (register bit field FCFG1[CORE1_SRAMSIZE]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_CORE1_SRAMSIZE (1)
+/* @brief Maximum flash address block 0 address specifier (register bit field FCFG2[MAXADDR0]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR0 (0)
+/* @brief Maximum flash address block 1 address specifier (register bit field FCFG2[MAXADDR1]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR1 (0)
+/* @brief Maximum flash address block 0 or 1 address specifier (register bit field FCFG2[MAXADDR01]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR01 (1)
+/* @brief Maximum flash address block 2 or 3 address specifier (register bit field FCFG2[MAXADDR23]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_MAXADDR23 (0)
+/* @brief Has program flash availability specifier (register bit FCFG2[PFLSH]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH (0)
+/* @brief Has program flash swapping (register bit FCFG2[SWAPPFLSH]). */
+#define FSL_FEATURE_SIM_FCFG_HAS_PFLSH_SWAP (0)
+/* @brief Has miscellanious control register (register MCR). */
+#define FSL_FEATURE_SIM_HAS_MISC_CONTROLS (0)
+/* @brief Has COP watchdog (registers COPC and SRVCOP). */
+#define FSL_FEATURE_SIM_HAS_COP_WATCHDOG (0)
+/* @brief Has COP watchdog stop (register bits COPC[COPSTPEN], COPC[COPDBGEN] and COPC[COPCLKSEL]). */
+#define FSL_FEATURE_SIM_HAS_COP_STOP (0)
+/* @brief Has LLWU clock gate bit (e.g SIM_SCGC4). */
+#define FSL_FEATURE_SIM_HAS_SCGC_LLWU (0)
+/* @brief Has MISCCTRL reg. */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL (0)
+/* @brief Has LTCEN bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_LTCEN (0)
+/* @brief Has DMAINTSEL0 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL0 (0)
+/* @brief Has DMAINTSEL1 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL1 (0)
+/* @brief Has DMAINTSEL2 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL2 (0)
+/* @brief Has DMAINTSEL3 bit (e.g SIM_MISCCTRL). */
+#define FSL_FEATURE_SIM_HAS_MISCCTRL_DMAINTSEL3 (0)
+/* @brief Has SECKEY0 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY0 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY0). */
+#define FSL_FEATURE_SIM_HAS_SECKEY0_SECKEY (0)
+/* @brief Has SECKEY1 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY1 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY1). */
+#define FSL_FEATURE_SIM_HAS_SECKEY1_SECKEY (0)
+/* @brief Has SECKEY2 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY2 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY2). */
+#define FSL_FEATURE_SIM_HAS_SECKEY2_SECKEY (0)
+/* @brief Has SECKEY3 reg. */
+#define FSL_FEATURE_SIM_HAS_SECKEY3 (0)
+/* @brief Has SECKEY bit (e.g SIM_SECKEY3). */
+#define FSL_FEATURE_SIM_HAS_SECKEY3_SECKEY (0)
+/* @brief Has no SDID reg. */
+#define FSL_FEATURE_SIM_HAS_NO_SDID (0)
+/* @brief Has no UID reg. */
+#define FSL_FEATURE_SIM_HAS_NO_UID (0)
+/* @brief Has RFADDRL and RFADDRH registers. */
+#define FSL_FEATURE_SIM_HAS_RF_MAC_ADDR (1)
+/* @brief Has SYSTICK_CLK_EN bit in SIM_MISC2 register. */
+#define FSL_FEATURE_SIM_MISC2_HAS_SYSTICK_CLK_EN (1)
+/* @brief Has UIDM registers. */
+#define FSL_FEATURE_SIM_HAS_UIDM (1)
+
+/* SMC module features */
+
+/* @brief Has partial stop option (register bit STOPCTRL[PSTOPO]). */
+#define FSL_FEATURE_SMC_HAS_PSTOPO (0)
+/* @brief Has LPO power option (register bit STOPCTRL[LPOPO]). */
+#define FSL_FEATURE_SMC_HAS_LPOPO (0)
+/* @brief Has POR power option (register bit STOPCTRL[PORPO] or VLLSCTRL[PORPO]). */
+#define FSL_FEATURE_SMC_HAS_PORPO (0)
+/* @brief Has low power wakeup on interrupt (register bit PMCTRL[LPWUI]). */
+#define FSL_FEATURE_SMC_HAS_LPWUI (0)
+/* @brief Has LLS or VLLS mode control (register bit STOPCTRL[LLSM]). */
+#define FSL_FEATURE_SMC_HAS_LLS_SUBMODE (0)
+/* @brief Has RAM partition 2 power option (register bit STOPCTRL[RAM2PO]). */
+#define FSL_FEATURE_SMC_HAS_RAM2_POWER_OPTION (0)
+/* @brief Has VLLS mode control (register bit VLLSCTRL[VLLSM]). */
+#define FSL_FEATURE_SMC_USE_VLLSCTRL_REG (0)
+/* @brief Has VLLS mode control (register bit STOPCTRL[VLLSM]). */
+#define FSL_FEATURE_SMC_USE_STOPCTRL_VLLSM (0)
+/* @brief Has high speed run mode (register bit PMPROT[AHSRUN]). */
+#define FSL_FEATURE_SMC_HAS_HIGH_SPEED_RUN_MODE (1)
+/* @brief Has low leakage stop mode (register bit PMPROT[ALLS]). */
+#define FSL_FEATURE_SMC_HAS_LOW_LEAKAGE_STOP_MODE (1)
+/* @brief Has very low leakage stop mode (register bit PMPROT[AVLLS]). */
+#define FSL_FEATURE_SMC_HAS_VERY_LOW_LEAKAGE_STOP_MODE (1)
+/* @brief Has stop submode. */
+#define FSL_FEATURE_SMC_HAS_SUB_STOP_MODE (1)
+/* @brief Has stop submode 0(VLLS0). */
+#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 (1)
+/* @brief Has stop submode 2(VLLS2). */
+#define FSL_FEATURE_SMC_HAS_STOP_SUBMODE2 (1)
+/* @brief Has SMC_PARAM. */
+#define FSL_FEATURE_SMC_HAS_PARAM (1)
+/* @brief Has SMC_VERID. */
+#define FSL_FEATURE_SMC_HAS_VERID (1)
+/* @brief Has SMC_CSRE. */
+#define FSL_FEATURE_SMC_HAS_CSRE (0)
+/* @brief Has stop abort flag (register bit PMCTRL[STOPA]). */
+#define FSL_FEATURE_SMC_HAS_PMCTRL_STOPA (0)
+/* @brief Has tamper reset (register bit SRS[TAMPER]). */
+#define FSL_FEATURE_SMC_HAS_SRS_TAMPER (0)
+/* @brief Has security violation reset (register bit SRS[SECVIO]). */
+#define FSL_FEATURE_SMC_HAS_SRS_SECVIO (0)
+/* @brief Has security violation reset (register bit SRS[VBAT]). */
+#define FSL_FEATURE_SMC_HAS_SRS_VBAT (0)
+/* @brief Has security violation reset (register bit SRS[CORE0]). */
+#define FSL_FEATURE_SMC_HAS_SRS_CORE0 (1)
+/* @brief Has security violation reset (register bit SRS[CORE1]). */
+#define FSL_FEATURE_SMC_HAS_SRS_CORE1 (1)
+/* @brief Has security violation reset (register bit SRIE[VBAT]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_VBAT (0)
+/* @brief Has security violation reset (register bit SRIE[CORE0]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_CORE0 (1)
+/* @brief Has security violation reset (register bit SRIE[CORE1]). */
+#define FSL_FEATURE_SMC_HAS_SRIE_CORE1 (1)
+
+/* SysTick module features */
+
+/* @brief Systick has external reference clock. */
+#define FSL_FEATURE_SYSTICK_HAS_EXT_REF (1)
+/* @brief Systick external reference clock is core clock divided by this value. */
+#define FSL_FEATURE_SYSTICK_EXT_REF_CORE_DIV (16)
+
+/* TPM module features */
+
+/* @brief Number of channels. */
+#define FSL_FEATURE_TPM_CHANNEL_COUNTn(x) \
+    ((x) == TPM0 ? (6) : \
+    ((x) == TPM1 ? (2) : \
+    ((x) == TPM2 ? (6) : \
+    ((x) == TPM3 ? (2) : (-1)))))
+/* @brief Has counter reset by the selected input capture event (register bits C0SC[ICRST], C1SC[ICRST], ...). */
+#define FSL_FEATURE_TPM_HAS_COUNTER_RESET_BY_CAPTURE_EVENT (0)
+/* @brief Has TPM_PARAM. */
+#define FSL_FEATURE_TPM_HAS_PARAM (1)
+/* @brief Has TPM_VERID. */
+#define FSL_FEATURE_TPM_HAS_VERID (1)
+/* @brief Has TPM_GLOBAL. */
+#define FSL_FEATURE_TPM_HAS_GLOBAL (1)
+/* @brief Has TPM_TRIG. */
+#define FSL_FEATURE_TPM_HAS_TRIG (1)
+/* @brief Has counter pause on trigger. */
+#define FSL_FEATURE_TPM_HAS_PAUSE_COUNTER_ON_TRIGGER (1)
+/* @brief Has external trigger selection. */
+#define FSL_FEATURE_TPM_HAS_EXTERNAL_TRIGGER_SELECTION (1)
+/* @brief Has TPM_COMBINE register. */
+#define FSL_FEATURE_TPM_HAS_COMBINE (1)
+/* @brief Whether COMBINE register has effect. */
+#define FSL_FEATURE_TPM_COMBINE_HAS_EFFECTn(x) (1)
+/* @brief Has TPM_POL. */
+#define FSL_FEATURE_TPM_HAS_POL (1)
+/* @brief Has TPM_FILTER register. */
+#define FSL_FEATURE_TPM_HAS_FILTER (1)
+/* @brief Whether FILTER register has effect. */
+#define FSL_FEATURE_TPM_FILTER_HAS_EFFECTn(x) (1)
+/* @brief Has TPM_QDCTRL register. */
+#define FSL_FEATURE_TPM_HAS_QDCTRL (1)
+/* @brief Whether QDCTRL register has effect. */
+#define FSL_FEATURE_TPM_QDCTRL_HAS_EFFECTn(x) (1)
+
+/* TRGMUX module features */
+
+/* No feature definitions */
+
+/* TRNG module features */
+
+/* No feature definitions */
+
+/* TSTMR module features */
+
+/* @brief TSTMR clock frequency is 1MHZ. */
+#define FSL_FEATURE_TSTMR_CLOCK_FREQUENCY_1MHZ (1)
+
+/* USB module features */
+
+/* @brief KHCI module instance count */
+#define FSL_FEATURE_USB_KHCI_COUNT (1)
+/* @brief HOST mode enabled */
+#define FSL_FEATURE_USB_KHCI_HOST_ENABLED (0)
+/* @brief OTG mode enabled */
+#define FSL_FEATURE_USB_KHCI_OTG_ENABLED (0)
+/* @brief Size of the USB dedicated RAM */
+#define FSL_FEATURE_USB_KHCI_USB_RAM (2048)
+/* @brief Base address of the USB dedicated RAM */
+#define FSL_FEATURE_USB_KHCI_USB_RAM_BASE_ADDRESS (1208025088)
+/* @brief Has KEEP_ALIVE_CTRL register */
+#define FSL_FEATURE_USB_KHCI_KEEP_ALIVE_ENABLED (1)
+/* @brief Mode control of the USB Keep Alive */
+#define FSL_FEATURE_USB_KHCI_KEEP_ALIVE_MODE_CONTROL (USB_KEEP_ALIVE_CTRL_WAKE_REQ_EN_MASK)
+/* @brief Has the Dynamic SOF threshold compare support */
+#define FSL_FEATURE_USB_KHCI_DYNAMIC_SOF_THRESHOLD_COMPARE_ENABLED (1)
+/* @brief Has the VBUS detect support */
+#define FSL_FEATURE_USB_KHCI_VBUS_DETECT_ENABLED (1)
+/* @brief Has the IRC48M module clock support */
+#define FSL_FEATURE_USB_KHCI_IRC48M_MODULE_CLOCK_ENABLED (1)
+/* @brief Number of endpoints supported */
+#define FSL_FEATURE_USB_ENDPT_COUNT (16)
+/* @brief Has STALL_IL/OL_DIS registers */
+#define FSL_FEATURE_USB_KHCI_HAS_STALL_LOW (1)
+/* @brief Has STALL_IH/OH_DIS registers */
+#define FSL_FEATURE_USB_KHCI_HAS_STALL_HIGH (1)
+
+/* USDHC module features */
+
+/* @brief Has external DMA support (VEND_SPEC[EXT_DMA_EN]) */
+#define FSL_FEATURE_USDHC_HAS_EXT_DMA (0)
+/* @brief Has HS400 mode (MIX_CTRL[HS400_MODE]) */
+#define FSL_FEATURE_USDHC_HAS_HS400_MODE (0)
+/* @brief Has SDR50 support (HOST_CTRL_CAP[SDR50_SUPPORT]) */
+#define FSL_FEATURE_USDHC_HAS_SDR50_MODE (0)
+/* @brief Has SDR104 support (HOST_CTRL_CAP[SDR104_SUPPORT]) */
+#define FSL_FEATURE_USDHC_HAS_SDR104_MODE (0)
+
+/* VREF module features */
+
+/* @brief Has chop oscillator (bit TRM[CHOPEN]) */
+#define FSL_FEATURE_VREF_HAS_CHOP_OSC (1)
+/* @brief Has second order curvature compensation (bit SC[ICOMPEN]) */
+#define FSL_FEATURE_VREF_HAS_COMPENSATION (1)
+/* @brief If high/low buffer mode supported */
+#define FSL_FEATURE_VREF_MODE_LV_TYPE (1)
+/* @brief Module has also low reference (registers VREFL/VREFH) */
+#define FSL_FEATURE_VREF_HAS_LOW_REFERENCE (0)
+/* @brief Has VREF_TRM4. */
+#define FSL_FEATURE_VREF_HAS_TRM4 (1)
+
+/* WDOG module features */
+
+/* @brief Watchdog is available. */
+#define FSL_FEATURE_WDOG_HAS_WATCHDOG (1)
+/* @brief WDOG_CNT can be 32-bit written. */
+#define FSL_FEATURE_WDOG_HAS_32BIT_ACCESS (1)
+
+/* XRDC module features */
+
+/* @brief Does not have global valid (register bit CR[GVLD]). */
+#define FSL_FEATURE_XRDC_HAS_NO_CR_GVLD (1)
+/* @brief Has domain ID of faulted access (register bit FDID[FDID]). */
+#define FSL_FEATURE_XRDC_HAS_FDID (1)
+/* @brief Has special 4-state model option (register bit PID[SP4SM]). */
+#define FSL_FEATURE_XRDC_PID_SP4SM (1)
+/* @brief Does not have logical partition identifier (register bit MDA_W[LPID]). */
+#define FSL_FEATURE_XRDC_NO_MDA_LPID (1)
+/* @brief Does not have logical partition enable option (register bit MDA_W[LPE]). */
+#define FSL_FEATURE_XRDC_NO_MDA_LPE (1)
+/* @brief Does not have peripheral semaphore enable option (register bit PDAC_W0[SE]). */
+#define FSL_FEATURE_XRDC_NO_PDAC_SE (1)
+/* @brief Does not have peripheral semaphore number (register bit PDAC_W0[SNUM]). */
+#define FSL_FEATURE_XRDC_NO_PDAC_SNUM (1)
+/* @brief Has peripheral excessive access lock owner (register bit PDAC_W0[EALO]). */
+#define FSL_FEATURE_XRDC_HAS_PDAC_EALO (1)
+/* @brief Has peripheral excessive access lock option (register bit PDAC_W1[EAL]). */
+#define FSL_FEATURE_XRDC_HAS_PDAC_EAL (1)
+/* @brief Has memory region end address (register bit MRGD_W1[ENDADDR]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_ENDADDR (1)
+/* @brief Does not have memory region semaphore enable option (register bit MRGD_W2[SE]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SE (1)
+/* @brief Does not have memory region semaphore number (register bit MRGD_W2[SNUM]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SNUM (1)
+/* @brief Does not domain x access control policy option (register bit MRGD_W2[DxACP]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_DXACP (1)
+/* @brief Does not have region size configuration (register bit MRGD_W2[SZ]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SZ (1)
+/* @brief Does not have subregion disable option (register bit MRGD_W2[SRD]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_SRD (1)
+/* @brief Has memory region excessive access lock owner (register bit MRGD_W2[EALO]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_EALO (1)
+/* @brief Has domain x access policy select option (register bit MRGD_W2[DxSEL]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_DXSEL (1)
+/* @brief Has memory region excessive access lock option (register bit MRGD_W3[EAL]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_EAL (1)
+/* @brief Does not have lock option in MRGD_W3 register (register bit MRGD_W3[LK2]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_W3_LK2 (1)
+/* @brief Does not have valid option in MRGD_W3 register (register bit MRGD_W3[VLD]). */
+#define FSL_FEATURE_XRDC_NO_MRGD_W3_VLD (1)
+/* @brief Has code region indicator select option (register bit MRGD_W3[CR]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_CR (1)
+/* @brief Has ASSSET lock option (register bit MRGD_W4[LKAS1]/[LKAS2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_LKAS (1)
+/* @brief Has programmable access flags (register bit MRGD_W4[ACCSET1]/[ACCSET2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_ACCSET (1)
+/* @brief Has lock option in MRGD_W4 register (register bit MRGD_W4[LK2]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_W4_LK2 (1)
+/* @brief Has valid option in MRGD_W4 register (register bit MRGD_W4[VLD]). */
+#define FSL_FEATURE_XRDC_HAS_MRGD_W4_VLD (1)
+/* @brief XRDC domain number (reset value of HWCFG0[NDID] plus 1). */
+#define FSL_FEATURE_XRDC_DOMAIN_COUNT (3)
+
+#endif /* _RV32M1_zero_riscy_FEATURES_H_ */
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.c
new file mode 100644 (file)
index 0000000..8cd4fcf
--- /dev/null
@@ -0,0 +1,794 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright (c) 2016 - 2017 , NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "fsl_clock.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+#define SCG_SIRC_LOW_RANGE_FREQ 2000000U  /* Slow IRC low range clock frequency. */
+#define SCG_SIRC_HIGH_RANGE_FREQ 8000000U /* Slow IRC high range clock frequency.   */
+
+#define SCG_FIRC_FREQ0 48000000U /* Fast IRC trimed clock frequency(48MHz). */
+#define SCG_FIRC_FREQ1 52000000U /* Fast IRC trimed clock frequency(52MHz). */
+#define SCG_FIRC_FREQ2 56000000U /* Fast IRC trimed clock frequency(56MHz). */
+#define SCG_FIRC_FREQ3 60000000U /* Fast IRC trimed clock frequency(60MHz). */
+
+#define SCG_LPFLL_FREQ0 48000000U  /* LPFLL trimed clock frequency(48MHz). */
+#define SCG_LPFLL_FREQ1 72000000U  /* LPFLL trimed clock frequency(72MHz). */
+#define SCG_LPFLL_FREQ2 96000000U  /* LPFLL trimed clock frequency(96MHz). */
+#define SCG_LPFLL_FREQ3 120000000U /* LPFLL trimed clock frequency(120MHz). */
+
+#define SCG_CSR_SCS_VAL ((SCG->CSR & SCG_CSR_SCS_MASK) >> SCG_CSR_SCS_SHIFT)
+#define SCG_SOSCDIV_SOSCDIV1_VAL ((SCG->SOSCDIV & SCG_SOSCDIV_SOSCDIV1_MASK) >> SCG_SOSCDIV_SOSCDIV1_SHIFT)
+#define SCG_SOSCDIV_SOSCDIV2_VAL ((SCG->SOSCDIV & SCG_SOSCDIV_SOSCDIV2_MASK) >> SCG_SOSCDIV_SOSCDIV2_SHIFT)
+#define SCG_SOSCDIV_SOSCDIV3_VAL ((SCG->SOSCDIV & SCG_SOSCDIV_SOSCDIV3_MASK) >> SCG_SOSCDIV_SOSCDIV3_SHIFT)
+#define SCG_SIRCDIV_SIRCDIV1_VAL ((SCG->SIRCDIV & SCG_SIRCDIV_SIRCDIV1_MASK) >> SCG_SIRCDIV_SIRCDIV1_SHIFT)
+#define SCG_SIRCDIV_SIRCDIV2_VAL ((SCG->SIRCDIV & SCG_SIRCDIV_SIRCDIV2_MASK) >> SCG_SIRCDIV_SIRCDIV2_SHIFT)
+#define SCG_SIRCDIV_SIRCDIV3_VAL ((SCG->SIRCDIV & SCG_SIRCDIV_SIRCDIV3_MASK) >> SCG_SIRCDIV_SIRCDIV3_SHIFT)
+#define SCG_FIRCDIV_FIRCDIV1_VAL ((SCG->FIRCDIV & SCG_FIRCDIV_FIRCDIV1_MASK) >> SCG_FIRCDIV_FIRCDIV1_SHIFT)
+#define SCG_FIRCDIV_FIRCDIV2_VAL ((SCG->FIRCDIV & SCG_FIRCDIV_FIRCDIV2_MASK) >> SCG_FIRCDIV_FIRCDIV2_SHIFT)
+#define SCG_FIRCDIV_FIRCDIV3_VAL ((SCG->FIRCDIV & SCG_FIRCDIV_FIRCDIV3_MASK) >> SCG_FIRCDIV_FIRCDIV3_SHIFT)
+
+#define SCG_LPFLLDIV_LPFLLDIV1_VAL ((SCG->LPFLLDIV & SCG_LPFLLDIV_LPFLLDIV1_MASK) >> SCG_LPFLLDIV_LPFLLDIV1_SHIFT)
+#define SCG_LPFLLDIV_LPFLLDIV2_VAL ((SCG->LPFLLDIV & SCG_LPFLLDIV_LPFLLDIV2_MASK) >> SCG_LPFLLDIV_LPFLLDIV2_SHIFT)
+#define SCG_LPFLLDIV_LPFLLDIV3_VAL ((SCG->LPFLLDIV & SCG_LPFLLDIV_LPFLLDIV3_MASK) >> SCG_LPFLLDIV_LPFLLDIV3_SHIFT)
+
+#define SCG_SIRCCFG_RANGE_VAL ((SCG->SIRCCFG & SCG_SIRCCFG_RANGE_MASK) >> SCG_SIRCCFG_RANGE_SHIFT)
+#define SCG_FIRCCFG_RANGE_VAL ((SCG->FIRCCFG & SCG_FIRCCFG_RANGE_MASK) >> SCG_FIRCCFG_RANGE_SHIFT)
+
+#define SCG_LPFLLCFG_FSEL_VAL ((SCG->LPFLLCFG & SCG_LPFLLCFG_FSEL_MASK) >> SCG_LPFLLCFG_FSEL_SHIFT)
+
+/* Get the value of each field in PCC register. */
+#define PCC_PCS_VAL(reg) ((reg & PCC_CLKCFG_PCS_MASK) >> PCC_CLKCFG_PCS_SHIFT)
+#define PCC_FRAC_VAL(reg) ((reg & PCC_CLKCFG_FRAC_MASK) >> PCC_CLKCFG_FRAC_SHIFT)
+#define PCC_PCD_VAL(reg) ((reg & PCC_CLKCFG_PCD_MASK) >> PCC_CLKCFG_PCD_SHIFT)
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+
+/* External XTAL0 (OSC0) clock frequency. */
+uint32_t g_xtal0Freq;
+/* External XTAL32K clock frequency. */
+uint32_t g_xtal32Freq;
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+
+uint32_t CLOCK_GetOsc32kClkFreq(void)
+{
+    assert(g_xtal32Freq);
+    return g_xtal32Freq;
+}
+
+uint32_t CLOCK_GetFlashClkFreq(void)
+{
+    return CLOCK_GetSysClkFreq(kSCG_SysClkSlow);
+}
+
+uint32_t CLOCK_GetBusClkFreq(void)
+{
+    return CLOCK_GetSysClkFreq(kSCG_SysClkSlow);
+}
+
+uint32_t CLOCK_GetPlatClkFreq(void)
+{
+    return CLOCK_GetSysClkFreq(kSCG_SysClkCore);
+}
+
+uint32_t CLOCK_GetCoreSysClkFreq(void)
+{
+    return CLOCK_GetSysClkFreq(kSCG_SysClkCore);
+}
+
+uint32_t CLOCK_GetExtClkFreq(void)
+{
+    return CLOCK_GetSysClkFreq(kSCG_SysClkExt);
+}
+
+uint32_t CLOCK_GetFreq(clock_name_t clockName)
+{
+    uint32_t freq;
+
+    switch (clockName)
+    {
+        /* System layer clock. */
+        case kCLOCK_CoreSysClk:
+        case kCLOCK_PlatClk:
+            freq = CLOCK_GetSysClkFreq(kSCG_SysClkCore);
+            break;
+        case kCLOCK_BusClk:
+            freq = CLOCK_GetSysClkFreq(kSCG_SysClkBus);
+            break;
+        case kCLOCK_FlashClk:
+            freq = CLOCK_GetSysClkFreq(kSCG_SysClkSlow);
+            break;
+        case kCLOCK_ExtClk:
+            freq = CLOCK_GetSysClkFreq(kSCG_SysClkExt);
+            break;
+        /* Original clock source. */
+        case kCLOCK_ScgSysOscClk:
+            freq = CLOCK_GetSysOscFreq();
+            break;
+        case kCLOCK_ScgSircClk:
+            freq = CLOCK_GetSircFreq();
+            break;
+        case kCLOCK_ScgFircClk:
+            freq = CLOCK_GetFircFreq();
+            break;
+        case kCLOCK_ScgLpFllClk:
+            freq = CLOCK_GetLpFllFreq();
+            break;
+
+        /* SOSC div clock. */
+        case kCLOCK_ScgSysOscAsyncDiv1Clk:
+            freq = CLOCK_GetSysOscAsyncFreq(kSCG_AsyncDiv1Clk);
+            break;
+        case kCLOCK_ScgSysOscAsyncDiv2Clk:
+            freq = CLOCK_GetSysOscAsyncFreq(kSCG_AsyncDiv2Clk);
+            break;
+        case kCLOCK_ScgSysOscAsyncDiv3Clk:
+            freq = CLOCK_GetSysOscAsyncFreq(kSCG_AsyncDiv3Clk);
+            break;
+
+        /* SIRC div clock. */
+        case kCLOCK_ScgSircAsyncDiv1Clk:
+            freq = CLOCK_GetSircAsyncFreq(kSCG_AsyncDiv1Clk);
+            break;
+        case kCLOCK_ScgSircAsyncDiv2Clk:
+            freq = CLOCK_GetSircAsyncFreq(kSCG_AsyncDiv2Clk);
+            break;
+        case kCLOCK_ScgSircAsyncDiv3Clk:
+            freq = CLOCK_GetSircAsyncFreq(kSCG_AsyncDiv3Clk);
+            break;
+
+        /* FIRC div clock. */
+        case kCLOCK_ScgFircAsyncDiv1Clk:
+            freq = CLOCK_GetFircAsyncFreq(kSCG_AsyncDiv1Clk);
+            break;
+        case kCLOCK_ScgFircAsyncDiv2Clk:
+            freq = CLOCK_GetFircAsyncFreq(kSCG_AsyncDiv2Clk);
+            break;
+        case kCLOCK_ScgFircAsyncDiv3Clk:
+            freq = CLOCK_GetFircAsyncFreq(kSCG_AsyncDiv3Clk);
+            break;
+
+        /* LPFLL div clock. */
+        case kCLOCK_ScgSysLpFllAsyncDiv1Clk:
+            freq = CLOCK_GetLpFllAsyncFreq(kSCG_AsyncDiv1Clk);
+            break;
+        case kCLOCK_ScgSysLpFllAsyncDiv2Clk:
+            freq = CLOCK_GetLpFllAsyncFreq(kSCG_AsyncDiv2Clk);
+            break;
+        case kCLOCK_ScgSysLpFllAsyncDiv3Clk:
+            freq = CLOCK_GetLpFllAsyncFreq(kSCG_AsyncDiv3Clk);
+            break;
+
+        /* Other clocks. */
+        case kCLOCK_LpoClk:
+            freq = CLOCK_GetLpoClkFreq();
+            break;
+        case kCLOCK_Osc32kClk:
+            freq = CLOCK_GetOsc32kClkFreq();
+            break;
+        default:
+            freq = 0U;
+            break;
+    }
+    return freq;
+}
+
+uint32_t CLOCK_GetIpFreq(clock_ip_name_t name)
+{
+    uint32_t reg = (*(volatile uint32_t *)name);
+
+    scg_async_clk_t asycClk;
+    uint32_t freq;
+
+    assert(reg & PCC_CLKCFG_PR_MASK);
+
+    switch (name)
+    {
+        case kCLOCK_Lpit0:
+        case kCLOCK_Lpit1:
+            asycClk = kSCG_AsyncDiv3Clk;
+            break;
+        case kCLOCK_Sdhc0:
+        case kCLOCK_Usb0:
+            asycClk = kSCG_AsyncDiv1Clk;
+            break;
+        default:
+            asycClk = kSCG_AsyncDiv2Clk;
+            break;
+    }
+
+    switch (PCC_PCS_VAL(reg))
+    {
+        case kCLOCK_IpSrcSysOscAsync:
+            freq = CLOCK_GetSysOscAsyncFreq(asycClk);
+            break;
+        case kCLOCK_IpSrcSircAsync:
+            freq = CLOCK_GetSircAsyncFreq(asycClk);
+            break;
+        case kCLOCK_IpSrcFircAsync:
+            freq = CLOCK_GetFircAsyncFreq(asycClk);
+            break;
+        case kCLOCK_IpSrcLpFllAsync:
+            freq = CLOCK_GetLpFllAsyncFreq(asycClk);
+            break;
+        default: /* kCLOCK_IpSrcNoneOrExt. */
+            freq = 0U;
+            break;
+    }
+
+    if (0U != (reg & (PCC_CLKCFG_PCD_MASK | PCC_CLKCFG_FRAC_MASK)))
+    {
+        return freq * (PCC_FRAC_VAL(reg) + 1U) / (PCC_PCD_VAL(reg) + 1U);
+    }
+    else
+    {
+        return freq;
+    }
+}
+
+bool CLOCK_EnableUsbfs0Clock(clock_usb_src_t src, uint32_t freq)
+{
+    bool ret = true;
+
+    CLOCK_SetIpSrc(kCLOCK_Usb0, kCLOCK_IpSrcFircAsync);
+
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+    /* Enable clock gate. */
+    CLOCK_EnableClock(kCLOCK_Usb0);
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+
+    USBVREG->CTRL |= USBVREG_CTRL_EN_MASK;
+    USB0->CONTROL &= ~USB_CONTROL_DPPULLUPNONOTG_MASK;
+
+    if (kCLOCK_UsbSrcIrc48M == src)
+    {
+        USB0->CLK_RECOVER_IRC_EN = 0x03U;
+        USB0->CLK_RECOVER_CTRL |= USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK;
+        USB0->CLK_RECOVER_INT_EN = 0x00U;
+    }
+    return ret;
+}
+
+uint32_t CLOCK_GetSysClkFreq(scg_sys_clk_t type)
+{
+    uint32_t freq;
+
+    scg_sys_clk_config_t sysClkConfig;
+
+    CLOCK_GetCurSysClkConfig(&sysClkConfig); /* Get the main clock for SoC platform. */
+
+    switch (sysClkConfig.src)
+    {
+        case kSCG_SysClkSrcSysOsc:
+            freq = CLOCK_GetSysOscFreq();
+            break;
+        case kSCG_SysClkSrcSirc:
+            freq = CLOCK_GetSircFreq();
+            break;
+        case kSCG_SysClkSrcFirc:
+            freq = CLOCK_GetFircFreq();
+            break;
+        case kSCG_SysClkSrcRosc:
+            freq = CLOCK_GetRtcOscFreq();
+            break;
+        case kSCG_SysClkSrcLpFll:
+            freq = CLOCK_GetLpFllFreq();
+            break;
+        default:
+            freq = 0U;
+            break;
+    }
+
+    freq /= (sysClkConfig.divCore + 1U); /* divided by the DIVCORE firstly. */
+
+    if (kSCG_SysClkSlow == type)
+    {
+        freq /= (sysClkConfig.divSlow + 1U);
+    }
+    else if (kSCG_SysClkBus == type)
+    {
+        freq /= (sysClkConfig.divBus + 1U);
+    }
+    else if (kSCG_SysClkExt == type)
+    {
+        freq /= (sysClkConfig.divExt + 1U);
+    }
+    else
+    {
+    }
+
+    return freq;
+}
+
+status_t CLOCK_InitSysOsc(const scg_sosc_config_t *config)
+{
+    assert(config);
+    status_t status;
+    uint8_t tmp8;
+
+    /* De-init the SOSC first. */
+    status = CLOCK_DeinitSysOsc();
+
+    if (kStatus_Success != status)
+    {
+        return status;
+    }
+
+    /* Now start to set up OSC clock. */
+    /* Step 1. Setup dividers. */
+    SCG->SOSCDIV =
+        SCG_SOSCDIV_SOSCDIV1(config->div1) | SCG_SOSCDIV_SOSCDIV2(config->div2) | SCG_SOSCDIV_SOSCDIV3(config->div3);
+
+    /* Step 2. Set OSC configuration. */
+
+    /* Step 3. Enable clock. */
+    /* SCG->SOSCCSR = SCG_SOSCCSR_SOSCEN_MASK | (config->enableMode); */
+    tmp8 = config->enableMode;
+    tmp8 |= SCG_SOSCCSR_SOSCEN_MASK;
+    SCG->SOSCCSR = tmp8;
+
+    /* Step 4. Wait for OSC clock to be valid. */
+    while (!(SCG->SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK))
+    {
+    }
+
+    /* Step 5. Enabe monitor. */
+    SCG->SOSCCSR |= (uint32_t)config->monitorMode;
+
+    return kStatus_Success;
+}
+
+status_t CLOCK_DeinitSysOsc(void)
+{
+    uint32_t reg = SCG->SOSCCSR;
+
+    /* If clock is used by system, return error. */
+    if (reg & SCG_SOSCCSR_SOSCSEL_MASK)
+    {
+        return kStatus_SCG_Busy;
+    }
+
+    /* If configure register is locked, return error. */
+    if (reg & SCG_SOSCCSR_LK_MASK)
+    {
+        return kStatus_ReadOnly;
+    }
+
+    SCG->SOSCCSR = SCG_SOSCCSR_SOSCERR_MASK;
+
+    return kStatus_Success;
+}
+
+uint32_t CLOCK_GetSysOscFreq(void)
+{
+    if (SCG->SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK) /* System OSC clock is valid. */
+    {
+        /* Please call CLOCK_SetXtal0Freq base on board setting before using OSC0 clock. */
+        assert(g_xtal0Freq);
+        return g_xtal0Freq;
+    }
+    else
+    {
+        return 0U;
+    }
+}
+
+uint32_t CLOCK_GetSysOscAsyncFreq(scg_async_clk_t type)
+{
+    uint32_t oscFreq = CLOCK_GetSysOscFreq();
+    uint32_t divider = 0U;
+
+    /* Get divider. */
+    if (oscFreq)
+    {
+        switch (type)
+        {
+            case kSCG_AsyncDiv3Clk: /* SOSCDIV3_CLK. */
+                divider = SCG_SOSCDIV_SOSCDIV3_VAL;
+                break;
+            case kSCG_AsyncDiv2Clk: /* SOSCDIV2_CLK. */
+                divider = SCG_SOSCDIV_SOSCDIV2_VAL;
+                break;
+            case kSCG_AsyncDiv1Clk: /* SOSCDIV1_CLK. */
+                divider = SCG_SOSCDIV_SOSCDIV1_VAL;
+                break;
+            default:
+                break;
+        }
+    }
+    if (divider)
+    {
+        return oscFreq >> (divider - 1U);
+    }
+    else /* Output disabled. */
+    {
+        return 0U;
+    }
+}
+
+status_t CLOCK_InitSirc(const scg_sirc_config_t *config)
+{
+    assert(config);
+
+    status_t status;
+
+    /* De-init the SIRC first. */
+    status = CLOCK_DeinitSirc();
+
+    if (kStatus_Success != status)
+    {
+        return status;
+    }
+
+    /* Now start to set up SIRC clock. */
+    /* Step 1. Setup dividers. */
+    SCG->SIRCDIV =
+        SCG_SIRCDIV_SIRCDIV1(config->div1) | SCG_SIRCDIV_SIRCDIV2(config->div2) | SCG_SIRCDIV_SIRCDIV3(config->div3);
+
+    /* Step 2. Set SIRC configuration. */
+    SCG->SIRCCFG = SCG_SIRCCFG_RANGE(config->range);
+
+    /* Step 3. Enable clock. */
+    SCG->SIRCCSR = SCG_SIRCCSR_SIRCEN_MASK | config->enableMode;
+
+    /* Step 4. Wait for SIRC clock to be valid. */
+    while (!(SCG->SIRCCSR & SCG_SIRCCSR_SIRCVLD_MASK))
+    {
+    }
+
+    return kStatus_Success;
+}
+
+status_t CLOCK_DeinitSirc(void)
+{
+    uint32_t reg = SCG->SIRCCSR;
+
+    /* If clock is used by system, return error. */
+    if (reg & SCG_SIRCCSR_SIRCSEL_MASK)
+    {
+        return kStatus_SCG_Busy;
+    }
+
+    /* If configure register is locked, return error. */
+    if (reg & SCG_SIRCCSR_LK_MASK)
+    {
+        return kStatus_ReadOnly;
+    }
+
+    SCG->SIRCCSR = 0U;
+
+    return kStatus_Success;
+}
+
+uint32_t CLOCK_GetSircFreq(void)
+{
+    static const uint32_t sircFreq[] = {SCG_SIRC_LOW_RANGE_FREQ, SCG_SIRC_HIGH_RANGE_FREQ};
+
+    if (SCG->SIRCCSR & SCG_SIRCCSR_SIRCVLD_MASK) /* SIRC is valid. */
+    {
+        return sircFreq[SCG_SIRCCFG_RANGE_VAL];
+    }
+    else
+    {
+        return 0U;
+    }
+}
+
+uint32_t CLOCK_GetSircAsyncFreq(scg_async_clk_t type)
+{
+    uint32_t sircFreq = CLOCK_GetSircFreq();
+    uint32_t divider = 0U;
+
+    /* Get divider. */
+    if (sircFreq)
+    {
+        switch (type)
+        {
+            case kSCG_AsyncDiv3Clk: /* SIRCDIV3_CLK. */
+                divider = SCG_SIRCDIV_SIRCDIV3_VAL;
+                break;
+            case kSCG_AsyncDiv2Clk: /* SIRCDIV2_CLK. */
+                divider = SCG_SIRCDIV_SIRCDIV2_VAL;
+                break;
+            case kSCG_AsyncDiv1Clk: /* SIRCDIV2_CLK. */
+                divider = SCG_SIRCDIV_SIRCDIV1_VAL;
+                break;
+            default:
+                break;
+        }
+    }
+    if (divider)
+    {
+        return sircFreq >> (divider - 1U);
+    }
+    else /* Output disabled. */
+    {
+        return 0U;
+    }
+}
+
+status_t CLOCK_InitFirc(const scg_firc_config_t *config)
+{
+    assert(config);
+
+    status_t status;
+
+    /* De-init the FIRC first. */
+    status = CLOCK_DeinitFirc();
+
+    if (kStatus_Success != status)
+    {
+        return status;
+    }
+
+    /* Now start to set up FIRC clock. */
+    /* Step 1. Setup dividers. */
+    SCG->FIRCDIV =
+        SCG_FIRCDIV_FIRCDIV1(config->div1) | SCG_FIRCDIV_FIRCDIV2(config->div2) | SCG_FIRCDIV_FIRCDIV3(config->div3);
+
+    /* Step 2. Set FIRC configuration. */
+    SCG->FIRCCFG = SCG_FIRCCFG_RANGE(config->range);
+
+    /* Step 3. Set trimming configuration. */
+    if (config->trimConfig)
+    {
+        SCG->FIRCTCFG =
+            SCG_FIRCTCFG_TRIMDIV(config->trimConfig->trimDiv) | SCG_FIRCTCFG_TRIMSRC(config->trimConfig->trimSrc);
+
+        /* TODO: Write FIRCSTAT cause bus error: TKT266932. */
+        if (kSCG_FircTrimNonUpdate == config->trimConfig->trimMode)
+        {
+            SCG->FIRCSTAT = SCG_FIRCSTAT_TRIMCOAR(config->trimConfig->trimCoar) |
+                            SCG_FIRCSTAT_TRIMFINE(config->trimConfig->trimFine);
+        }
+
+        /* trim mode. */
+        SCG->FIRCCSR = config->trimConfig->trimMode;
+
+        if (SCG->FIRCCSR & SCG_FIRCCSR_FIRCERR_MASK)
+        {
+            return kStatus_Fail;
+        }
+    }
+
+    /* Step 4. Enable clock. */
+    SCG->FIRCCSR |= (SCG_FIRCCSR_FIRCEN_MASK | SCG_FIRCCSR_FIRCTREN_MASK | config->enableMode);
+
+    /* Step 5. Wait for FIRC clock to be valid. */
+    while (!(SCG->FIRCCSR & SCG_FIRCCSR_FIRCVLD_MASK))
+    {
+    }
+
+    return kStatus_Success;
+}
+
+status_t CLOCK_DeinitFirc(void)
+{
+    uint32_t reg = SCG->FIRCCSR;
+
+    /* If clock is used by system, return error. */
+    if (reg & SCG_FIRCCSR_FIRCSEL_MASK)
+    {
+        return kStatus_SCG_Busy;
+    }
+
+    /* If configure register is locked, return error. */
+    if (reg & SCG_FIRCCSR_LK_MASK)
+    {
+        return kStatus_ReadOnly;
+    }
+
+    SCG->FIRCCSR = SCG_FIRCCSR_FIRCERR_MASK;
+
+    return kStatus_Success;
+}
+
+uint32_t CLOCK_GetFircFreq(void)
+{
+    static const uint32_t fircFreq[] = {
+        SCG_FIRC_FREQ0, SCG_FIRC_FREQ1, SCG_FIRC_FREQ2, SCG_FIRC_FREQ3,
+    };
+
+    if (SCG->FIRCCSR & SCG_FIRCCSR_FIRCVLD_MASK) /* FIRC is valid. */
+    {
+        return fircFreq[SCG_FIRCCFG_RANGE_VAL];
+    }
+    else
+    {
+        return 0U;
+    }
+}
+
+uint32_t CLOCK_GetFircAsyncFreq(scg_async_clk_t type)
+{
+    uint32_t fircFreq = CLOCK_GetFircFreq();
+    uint32_t divider = 0U;
+
+    /* Get divider. */
+    if (fircFreq)
+    {
+        switch (type)
+        {
+            case kSCG_AsyncDiv3Clk: /* FIRCDIV3_CLK. */
+                divider = SCG_FIRCDIV_FIRCDIV3_VAL;
+                break;
+            case kSCG_AsyncDiv2Clk: /* FIRCDIV2_CLK. */
+                divider = SCG_FIRCDIV_FIRCDIV2_VAL;
+                break;
+            case kSCG_AsyncDiv1Clk: /* FIRCDIV1_CLK. */
+                divider = SCG_FIRCDIV_FIRCDIV1_VAL;
+                break;
+            default:
+                break;
+        }
+    }
+    if (divider)
+    {
+        return fircFreq >> (divider - 1U);
+    }
+    else /* Output disabled. */
+    {
+        return 0U;
+    }
+}
+
+uint32_t CLOCK_GetRtcOscFreq(void)
+{
+    if (SCG->ROSCCSR & SCG_ROSCCSR_ROSCVLD_MASK) /* RTC OSC clock is valid. */
+    {
+        /* Please call CLOCK_SetXtal32Freq base on board setting before using RTC OSC clock. */
+        assert(g_xtal32Freq);
+        return g_xtal32Freq;
+    }
+    else
+    {
+        return 0U;
+    }
+}
+
+status_t CLOCK_InitLpFll(const scg_lpfll_config_t *config)
+{
+    assert(config);
+
+    status_t status;
+
+    /* De-init the LPFLL first. */
+    status = CLOCK_DeinitLpFll();
+
+    if (kStatus_Success != status)
+    {
+        return status;
+    }
+
+    /* Now start to set up LPFLL clock. */
+    /* Step 1. Setup dividers. */
+    SCG->LPFLLDIV = SCG_LPFLLDIV_LPFLLDIV1(config->div1) | SCG_LPFLLDIV_LPFLLDIV2(config->div2) |
+                    SCG_LPFLLDIV_LPFLLDIV3(config->div3);
+
+    /* Step 2. Set LPFLL configuration. */
+    SCG->LPFLLCFG = SCG_LPFLLCFG_FSEL(config->range);
+
+    /* Step 3. Set trimming configuration. */
+    if (config->trimConfig)
+    {
+        SCG->LPFLLTCFG = SCG_LPFLLTCFG_TRIMDIV(config->trimConfig->trimDiv) |
+                         SCG_LPFLLTCFG_TRIMSRC(config->trimConfig->trimSrc) |
+                         SCG_LPFLLTCFG_LOCKW2LSB(config->trimConfig->lockMode);
+
+        if (kSCG_LpFllTrimNonUpdate == config->trimConfig->trimMode)
+        {
+            SCG->LPFLLSTAT = config->trimConfig->trimValue;
+        }
+
+        /* Trim mode. */
+        SCG->LPFLLCSR = config->trimConfig->trimMode;
+
+        if (SCG->LPFLLCSR & SCG_LPFLLCSR_LPFLLERR_MASK)
+        {
+            return kStatus_Fail;
+        }
+    }
+
+    /* Step 4. Enable clock. */
+    SCG->LPFLLCSR |= (SCG_LPFLLCSR_LPFLLEN_MASK | config->enableMode);
+
+    /* Step 5. Wait for LPFLL clock to be valid. */
+    while (!(SCG->LPFLLCSR & SCG_LPFLLCSR_LPFLLVLD_MASK))
+    {
+    }
+
+    /* Step 6. Wait for LPFLL trim lock. */
+    if ((config->trimConfig) && (kSCG_LpFllTrimUpdate == config->trimConfig->trimMode))
+    {
+        while (!(SCG->LPFLLCSR & SCG_LPFLLCSR_LPFLLTRMLOCK_MASK))
+        {
+        }
+    }
+
+    return kStatus_Success;
+}
+
+status_t CLOCK_DeinitLpFll(void)
+{
+    uint32_t reg = SCG->LPFLLCSR;
+
+    /* If clock is used by system, return error. */
+    if (reg & SCG_LPFLLCSR_LPFLLSEL_MASK)
+    {
+        return kStatus_SCG_Busy;
+    }
+
+    /* If configure register is locked, return error. */
+    if (reg & SCG_LPFLLCSR_LK_MASK)
+    {
+        return kStatus_ReadOnly;
+    }
+
+    SCG->LPFLLCSR = SCG_LPFLLCSR_LPFLLERR_MASK;
+
+    return kStatus_Success;
+}
+
+uint32_t CLOCK_GetLpFllFreq(void)
+{
+    static const uint32_t lpfllFreq[] = {
+        SCG_LPFLL_FREQ0, SCG_LPFLL_FREQ1, SCG_LPFLL_FREQ2, SCG_LPFLL_FREQ3,
+    };
+
+    if (SCG->LPFLLCSR & SCG_LPFLLCSR_LPFLLVLD_MASK) /* LPFLL is valid. */
+    {
+        return lpfllFreq[SCG_LPFLLCFG_FSEL_VAL];
+    }
+    else
+    {
+        return 0U;
+    }
+}
+
+uint32_t CLOCK_GetLpFllAsyncFreq(scg_async_clk_t type)
+{
+    uint32_t lpfllFreq = CLOCK_GetLpFllFreq();
+    uint32_t divider = 0U;
+
+    /* Get divider. */
+    if (lpfllFreq)
+    {
+        switch (type)
+        {
+            case kSCG_AsyncDiv2Clk: /* LPFLLDIV2_CLK. */
+                divider = SCG_LPFLLDIV_LPFLLDIV2_VAL;
+                break;
+            case kSCG_AsyncDiv1Clk: /* LPFLLDIV1_CLK. */
+                divider = SCG_LPFLLDIV_LPFLLDIV1_VAL;
+                break;
+            default:
+                break;
+        }
+    }
+    if (divider)
+    {
+        return lpfllFreq >> (divider - 1U);
+    }
+    else /* Output disabled. */
+    {
+        return 0U;
+    }
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.h
new file mode 100644 (file)
index 0000000..8fa75c3
--- /dev/null
@@ -0,0 +1,1582 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright (c) 2016 - 2017 , NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_CLOCK_H_
+#define _FSL_CLOCK_H_
+
+#include "fsl_common.h"
+
+/*! @addtogroup clock */
+/*! @{ */
+
+/*! @file */
+
+/*******************************************************************************
+ * Configurations
+ ******************************************************************************/
+
+/*! @brief Configure whether driver controls clock
+ *
+ * When set to 0, peripheral drivers will enable clock in initialize function
+ * and disable clock in de-initialize function. When set to 1, peripheral
+ * driver will not control the clock, application could contol the clock out of
+ * the driver.
+ *
+ * @note All drivers share this feature switcher. If it is set to 1, application
+ * should handle clock enable and disable for all drivers.
+ */
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL))
+#define FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL 0
+#endif
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @name Driver version */
+/*@{*/
+/*! @brief CLOCK driver version 2.1.0. */
+#define FSL_CLOCK_DRIVER_VERSION (MAKE_VERSION(2, 1, 0))
+/*@}*/
+
+/*! @brief External XTAL0 (OSC0/SYSOSC) clock frequency.
+ *
+ * The XTAL0/EXTAL0 (OSC0/SYSOSC) clock frequency in Hz. When the clock is set up, use the
+ * function CLOCK_SetXtal0Freq to set the value in the clock driver. For example,
+ * if XTAL0 is 8 MHz:
+ * @code
+ * CLOCK_InitSysOsc(...); // Set up the OSC0/SYSOSC
+ * CLOCK_SetXtal0Freq(80000000); // Set the XTAL0 value in the clock driver.
+ * @endcode
+ *
+ * This is important for the multicore platforms where only one core needs to set up the
+ * OSC0/SYSOSC using CLOCK_InitSysOsc. All other cores need to call the CLOCK_SetXtal0Freq
+ * to get a valid clock frequency.
+ */
+extern uint32_t g_xtal0Freq;
+
+/*! @brief External XTAL32/EXTAL32 clock frequency.
+ *
+ * The XTAL32/EXTAL32 clock frequency in Hz. When the clock is set up, use the
+ * function CLOCK_SetXtal32Freq to set the value in the clock driver.
+ *
+ * This is important for the multicore platforms where only one core needs to set up
+ * the clock. All other cores need to call the CLOCK_SetXtal32Freq
+ * to get a valid clock frequency.
+ */
+extern uint32_t g_xtal32Freq;
+
+/*! @brief Clock ip name array for MAX. */
+#define MAX_CLOCKS  \
+    {               \
+        kCLOCK_Max0 \
+    }
+
+/*! @brief Clock ip name array for EDMA. */
+#define EDMA_CLOCKS                \
+    {                              \
+        kCLOCK_Edma0, kCLOCK_Edma1 \
+    }
+
+/*! @brief Clock ip name array for FLEXBUS. */
+#define FLEXBUS_CLOCKS \
+    {                  \
+        kCLOCK_Flexbus \
+    }
+
+/*! @brief XRDC clock gate number. */
+#define FSL_CLOCK_XRDC_GATE_COUNT (5U)
+
+/*! @brief Clock ip name array for XRDC. */
+#define XRDC_CLOCKS                                                                           \
+    {                                                                                         \
+        kCLOCK_Xrdc0Mgr, kCLOCK_Xrdc0Pac, kCLOCK_Xrdc0Mrc, kCLOCK_Xrdc0PacB, kCLOCK_Xrdc0MrcB \
+    }
+
+/*! @brief Clock ip name array for SEMA42. */
+#define SEMA42_CLOCKS                  \
+    {                                  \
+        kCLOCK_Sema420, kCLOCK_Sema421 \
+    }
+
+/*! @brief Clock ip name array for DMAMUX. */
+#define DMAMUX_CLOCKS                  \
+    {                                  \
+        kCLOCK_Dmamux0, kCLOCK_Dmamux1 \
+    }
+
+/*! @brief Clock ip name array for MU. */
+#if (defined(RV32M1_cm0plus_SERIES) || defined(RV32M1_zero_riscy_SERIES))
+#define MU_CLOCKS  \
+    {              \
+        kCLOCK_MuB \
+    }
+#else
+#define MU_CLOCKS  \
+    {              \
+        kCLOCK_MuA \
+    }
+#endif
+
+/*! @brief Clock ip name array for CRC. */
+#define CRC_CLOCKS  \
+    {               \
+        kCLOCK_Crc0 \
+    }
+
+/*! @brief Clock ip name array for LPIT. */
+#define LPIT_CLOCKS                \
+    {                              \
+        kCLOCK_Lpit0, kCLOCK_Lpit1 \
+    }
+
+/*! @brief Clock ip name array for TPM. */
+#define TPM_CLOCKS                                         \
+    {                                                      \
+        kCLOCK_Tpm0, kCLOCK_Tpm1, kCLOCK_Tpm2, kCLOCK_Tpm3 \
+    }
+
+/*! @brief Clock ip name array for TRNG. */
+#define TRNG_CLOCKS \
+    {               \
+        kCLOCK_Trng \
+    }
+
+/*! @brief Clock ip name array for SMVSIM. */
+#define EMVSIM_CLOCKS  \
+    {                  \
+        kCLOCK_Emvsim0 \
+    }
+
+/*! @brief Clock ip name array for EWM. */
+#define EWM_CLOCKS  \
+    {               \
+        kCLOCK_Ewm0 \
+    }
+
+/*! @brief Clock ip name array for FLEXIO. */
+#define FLEXIO_CLOCKS  \
+    {                  \
+        kCLOCK_Flexio0 \
+    }
+
+/*! @brief Clock ip name array for LPI2C0. */
+#define LPI2C_CLOCKS                                               \
+    {                                                              \
+        kCLOCK_Lpi2c0, kCLOCK_Lpi2c1, kCLOCK_Lpi2c2, kCLOCK_Lpi2c3 \
+    }
+
+/*! @brief Clock ip name array for SAI. */
+#define SAI_CLOCKS  \
+    {               \
+        kCLOCK_Sai0 \
+    }
+
+/*! @brief Clock ip name array for SDHC. */
+#define USDHC_CLOCKS \
+    {                \
+        kCLOCK_Sdhc0 \
+    }
+
+/*! @brief Clock ip name array for LPSPI. */
+#define LPSPI_CLOCKS                                               \
+    {                                                              \
+        kCLOCK_Lpspi0, kCLOCK_Lpspi1, kCLOCK_Lpspi2, kCLOCK_Lpspi3 \
+    }
+
+/*! @brief Clock ip name array for LPUART. */
+#define LPUART_CLOCKS                                                  \
+    {                                                                  \
+        kCLOCK_Lpuart0, kCLOCK_Lpuart1, kCLOCK_Lpuart2, kCLOCK_Lpuart3 \
+    }
+
+/*! @brief Clock ip name array for USB. */
+#define USB_CLOCKS  \
+    {               \
+        kCLOCK_Usb0 \
+    }
+
+/*! @brief Clock ip name array for PORT. */
+#define PORT_CLOCKS                                                          \
+    {                                                                        \
+        kCLOCK_PortA, kCLOCK_PortB, kCLOCK_PortC, kCLOCK_PortD, kCLOCK_PortE \
+    }
+
+/*! @brief Clock ip name array for LPADC. */
+#define LPADC_CLOCKS  \
+    {                 \
+        kCLOCK_Lpadc0 \
+    }
+
+/*! @brief Clock ip name array for DAC. */
+#define LPDAC_CLOCKS \
+    {                \
+        kCLOCK_Dac0  \
+    }
+
+/*! @brief Clock ip name array for INTMUX. */
+#if (defined(RV32M1_ri5cy_SERIES) || defined(RV32M1_zero_riscy_SERIES))
+#define INTMUX_CLOCKS                  \
+    {                                  \
+        kCLOCK_Intmux0, kCLOCK_Intmux1 \
+    }
+#else
+#define INTMUX_CLOCKS                    \
+    {                                    \
+        kCLOCK_IpInvalid, kCLOCK_Intmux0 \
+    }
+#endif
+
+/*! @brief Clock ip name array for EXT. */
+#define EXT_CLOCKS               \
+    {                            \
+        kCLOCK_Ext0, kCLOCK_Ext1 \
+    }
+
+/*! @brief Clock ip name array for VREF. */
+#define VREF_CLOCKS \
+    {               \
+        kCLOCK_Vref \
+    }
+
+/*! @brief Clock ip name array for FGPIO. */
+#define FGPIO_CLOCKS                                                                          \
+    {                                                                                         \
+        kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_IpInvalid, kCLOCK_Rgpio1 \
+    }
+
+/*! @brief Clock name used to get clock frequency.
+ *
+ * These clocks source would be generated from SCG module.
+ */
+typedef enum _clock_name
+{
+    /* ----------------------------- System layer clock -------------------------------*/
+    kCLOCK_CoreSysClk, /*!< Core 0/1 clock. */
+    kCLOCK_SlowClk,    /*!< SLOW_CLK with DIVSLOW. */
+    kCLOCK_PlatClk,    /*!< PLAT_CLK. */
+    kCLOCK_SysClk,     /*!< SYS_CLK. */
+    kCLOCK_BusClk,     /*!< BUS_CLK with DIVBUS. */
+    kCLOCK_ExtClk,     /*!< One clock selection of CLKOUT from main clock after DIVCORE and DIVEXT divider.*/
+
+    /* ------------------------------------ SCG clock ---------------------------------*/
+    kCLOCK_ScgSysLpFllAsyncDiv1Clk, /*!< LPFLL_DIV1_CLK. */
+    kCLOCK_ScgSysLpFllAsyncDiv2Clk, /*!< LPFLL_DIV1_CLK. */
+    kCLOCK_ScgSysLpFllAsyncDiv3Clk, /*!< LPFLL_DIV1_CLK. */
+
+    kCLOCK_ScgSircAsyncDiv1Clk, /*!< SIRCDIV1_CLK.                                   */
+    kCLOCK_ScgSircAsyncDiv2Clk, /*!< SIRCDIV2_CLK.                                   */
+    kCLOCK_ScgSircAsyncDiv3Clk, /*!< SIRCDIV3_CLK.                                   */
+
+    kCLOCK_ScgFircAsyncDiv1Clk, /*!< FIRCDIV1_CLK.                                   */
+    kCLOCK_ScgFircAsyncDiv2Clk, /*!< FIRCDIV2_CLK.                                   */
+    kCLOCK_ScgFircAsyncDiv3Clk, /*!< FIRCDIV3_CLK.                                   */
+
+    kCLOCK_ScgSysOscAsyncDiv1Clk, /*!< SOSCDIV1_CLK.                                   */
+    kCLOCK_ScgSysOscAsyncDiv2Clk, /*!< SOSCDIV2_CLK.                                   */
+    kCLOCK_ScgSysOscAsyncDiv3Clk, /*!< SOSCDIV3_CLK.                                   */
+
+    /* For SCG_CLKOUT output */
+    /* kCLOCK_ExtClk, */
+    kCLOCK_ScgSysOscClk, /*!< SCG system OSC clock. (SYSOSC)                      */
+    kCLOCK_ScgSircClk,   /*!< SCG SIRC clock.                                     */
+    kCLOCK_ScgFircClk,   /*!< SCG FIRC clock.                                     */
+    kCLOCK_RtcOscClk,    /*!< RTC OSC clock. */
+    kCLOCK_ScgLpFllClk,  /*!< SCG Low-power FLL clock. (LPFLL)                     */
+
+    /* --------------------------------- Other clock ----------------------------------*/
+    kCLOCK_LpoClk,    /*!< LPO clock                                           */
+    kCLOCK_Osc32kClk, /*!< External OSC 32K clock (OSC32KCLK)                  */
+} clock_name_t;
+
+#define kCLOCK_FlashClk kCLOCK_SlowClk
+#define kCLOCK_RfClk kCLOCK_ScgSysOscClk
+#define LPO_CLK_FREQ 1000U
+
+/*!
+ * @brief Clock source for peripherals that support various clock selections.
+ *
+ * These options are for PCC->CLKCFG[PCS].
+ */
+typedef enum _clock_ip_src
+{
+    kCLOCK_IpSrcNoneOrExt = 0U,   /*!< Clock is off or external clock is used. */
+    kCLOCK_IpSrcSysOscAsync = 1U, /*!< System Oscillator async clock.          */
+    kCLOCK_IpSrcSircAsync = 2U,   /*!< Slow IRC async clock.                   */
+    kCLOCK_IpSrcFircAsync = 3U,   /*!< Fast IRC async clock.                   */
+    kCLOCK_IpSrcLpFllAsync = 6U   /*!< System LPFLL async clock.               */
+} clock_ip_src_t;
+
+/*!
+ * @brief Peripheral clock name difinition used for clock gate, clock source
+ * and clock divider setting. It is defined as the corresponding register address.
+ */
+#define MAKE_PCC_REGADDR(base, offset) ((base) + (offset))
+typedef enum _clock_ip_name
+{
+    kCLOCK_IpInvalid = 0U,
+    /* PCC 0 */
+    kCLOCK_Mscm = MAKE_PCC_REGADDR(PCC0_BASE, 0x4),
+    kCLOCK_Syspm = MAKE_PCC_REGADDR(PCC0_BASE, 0xC),
+    kCLOCK_Max0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x10),
+    kCLOCK_Edma0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x20),
+    kCLOCK_Flexbus = MAKE_PCC_REGADDR(PCC0_BASE, 0x30),
+    kCLOCK_Xrdc0Mgr = MAKE_PCC_REGADDR(PCC0_BASE, 0x50),
+    kCLOCK_Xrdc0Pac = MAKE_PCC_REGADDR(PCC0_BASE, 0x58),
+    kCLOCK_Xrdc0Mrc = MAKE_PCC_REGADDR(PCC0_BASE, 0x5C),
+    kCLOCK_Sema420 = MAKE_PCC_REGADDR(PCC0_BASE, 0x6C),
+    kCLOCK_Dmamux0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x84),
+    kCLOCK_Ewm0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x88),
+    kCLOCK_MuA = MAKE_PCC_REGADDR(PCC0_BASE, 0x94),
+    kCLOCK_Crc0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xBC),
+    kCLOCK_Lpit0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xC0),
+    kCLOCK_Tpm0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xD4),
+    kCLOCK_Tpm1 = MAKE_PCC_REGADDR(PCC0_BASE, 0xD8),
+    kCLOCK_Tpm2 = MAKE_PCC_REGADDR(PCC0_BASE, 0xDC),
+    kCLOCK_Emvsim0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xE0),
+    kCLOCK_Flexio0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xE4),
+    kCLOCK_Lpi2c0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xE8),
+    kCLOCK_Lpi2c1 = MAKE_PCC_REGADDR(PCC0_BASE, 0xEC),
+    kCLOCK_Lpi2c2 = MAKE_PCC_REGADDR(PCC0_BASE, 0xF0),
+    kCLOCK_Sai0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xF4),
+    kCLOCK_Sdhc0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xF8),
+    kCLOCK_Lpspi0 = MAKE_PCC_REGADDR(PCC0_BASE, 0xFC),
+    kCLOCK_Lpspi1 = MAKE_PCC_REGADDR(PCC0_BASE, 0x100),
+    kCLOCK_Lpspi2 = MAKE_PCC_REGADDR(PCC0_BASE, 0x104),
+    kCLOCK_Lpuart0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x108),
+    kCLOCK_Lpuart1 = MAKE_PCC_REGADDR(PCC0_BASE, 0x10C),
+    kCLOCK_Lpuart2 = MAKE_PCC_REGADDR(PCC0_BASE, 0x110),
+    kCLOCK_Usb0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x114),
+    kCLOCK_PortA = MAKE_PCC_REGADDR(PCC0_BASE, 0x118),
+    kCLOCK_PortB = MAKE_PCC_REGADDR(PCC0_BASE, 0x11C),
+    kCLOCK_PortC = MAKE_PCC_REGADDR(PCC0_BASE, 0x120),
+    kCLOCK_PortD = MAKE_PCC_REGADDR(PCC0_BASE, 0x124),
+    kCLOCK_Lpadc0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x128),
+    kCLOCK_Dac0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x130),
+    kCLOCK_Vref = MAKE_PCC_REGADDR(PCC0_BASE, 0x134),
+    kCLOCK_Atx = MAKE_PCC_REGADDR(PCC0_BASE, 0x138),
+#if (defined(RV32M1_ri5cy_SERIES) || defined(RV32M1_zero_riscy_SERIES))
+    kCLOCK_Intmux0 = MAKE_PCC_REGADDR(PCC0_BASE, 0x13C),
+#endif
+    kCLOCK_Trace = MAKE_PCC_REGADDR(PCC0_BASE, 0x200),
+    /* PCC1. */
+    kCLOCK_Edma1 = MAKE_PCC_REGADDR(PCC1_BASE, 0x20),
+    kCLOCK_Rgpio1 = MAKE_PCC_REGADDR(PCC1_BASE, 0x3C),
+    kCLOCK_Xrdc0PacB = MAKE_PCC_REGADDR(PCC1_BASE, 0x58),
+    kCLOCK_Xrdc0MrcB = MAKE_PCC_REGADDR(PCC1_BASE, 0x5C),
+    kCLOCK_Sema421 = MAKE_PCC_REGADDR(PCC1_BASE, 0x6C),
+    kCLOCK_Dmamux1 = MAKE_PCC_REGADDR(PCC1_BASE, 0x84),
+#if (defined(RV32M1_ri5cy_SERIES) || defined(RV32M1_zero_riscy_SERIES))
+    kCLOCK_Intmux1 = MAKE_PCC_REGADDR(PCC1_BASE, 0x88),
+#else
+    kCLOCK_Intmux0 = MAKE_PCC_REGADDR(PCC1_BASE, 0x88),
+#endif
+    kCLOCK_MuB = MAKE_PCC_REGADDR(PCC1_BASE, 0x90),
+    kCLOCK_Cau3 = MAKE_PCC_REGADDR(PCC1_BASE, 0xA0),
+    kCLOCK_Trng = MAKE_PCC_REGADDR(PCC1_BASE, 0xA4),
+    kCLOCK_Lpit1 = MAKE_PCC_REGADDR(PCC1_BASE, 0xA8),
+    kCLOCK_Tpm3 = MAKE_PCC_REGADDR(PCC1_BASE, 0xB4),
+    kCLOCK_Lpi2c3 = MAKE_PCC_REGADDR(PCC1_BASE, 0xB8),
+    kCLOCK_Lpspi3 = MAKE_PCC_REGADDR(PCC1_BASE, 0xD4),
+    kCLOCK_Lpuart3 = MAKE_PCC_REGADDR(PCC1_BASE, 0xD8),
+    kCLOCK_PortE = MAKE_PCC_REGADDR(PCC1_BASE, 0xDC),
+    kCLOCK_Ext0 = MAKE_PCC_REGADDR(PCC1_BASE, 0x200),
+    kCLOCK_Ext1 = MAKE_PCC_REGADDR(PCC1_BASE, 0x204),
+} clock_ip_name_t;
+
+/*!
+ * @brief USB clock source definition.
+ */
+typedef enum _clock_usb_src
+{
+    kCLOCK_UsbSrcIrc48M = 1,           /*!< Use IRC48M.    */
+    kCLOCK_UsbSrcUnused = 0xFFFFFFFFU, /*!< Used when the function does not
+                                               care the clock source. */
+} clock_usb_src_t;
+
+/*!
+ * @brief SCG status return codes.
+ */
+enum _scg_status
+{
+    kStatus_SCG_Busy = MAKE_STATUS(kStatusGroup_SCG, 1),      /*!< Clock is busy.  */
+    kStatus_SCG_InvalidSrc = MAKE_STATUS(kStatusGroup_SCG, 2) /*!< Invalid source. */
+};
+
+/*!
+ * @brief SCG system clock type.
+ */
+typedef enum _scg_sys_clk
+{
+    kSCG_SysClkSlow, /*!< System slow clock. */
+    kSCG_SysClkBus,  /*!< Bus clock.         */
+    kSCG_SysClkExt,  /*!< External clock.    */
+    kSCG_SysClkCore, /*!< Core clock.        */
+} scg_sys_clk_t;
+
+/*!
+ * @brief SCG system clock source.
+ */
+typedef enum _scg_sys_clk_src
+{
+    kSCG_SysClkSrcSysOsc = 1U, /*!< System OSC. */
+    kSCG_SysClkSrcSirc = 2U,   /*!< Slow IRC.   */
+    kSCG_SysClkSrcFirc = 3U,   /*!< Fast IRC.   */
+    kSCG_SysClkSrcRosc = 4U,   /*!< RTC OSC. */
+    kSCG_SysClkSrcLpFll = 5U,  /*!< Low power FLL. */
+} scg_sys_clk_src_t;
+
+/*!
+ * @brief SCG system clock divider value.
+ */
+typedef enum _scg_sys_clk_div
+{
+    kSCG_SysClkDivBy1 = 0U,   /*!< Divided by 1.  */
+    kSCG_SysClkDivBy2 = 1U,   /*!< Divided by 2.  */
+    kSCG_SysClkDivBy3 = 2U,   /*!< Divided by 3.  */
+    kSCG_SysClkDivBy4 = 3U,   /*!< Divided by 4.  */
+    kSCG_SysClkDivBy5 = 4U,   /*!< Divided by 5.  */
+    kSCG_SysClkDivBy6 = 5U,   /*!< Divided by 6.  */
+    kSCG_SysClkDivBy7 = 6U,   /*!< Divided by 7.  */
+    kSCG_SysClkDivBy8 = 7U,   /*!< Divided by 8.  */
+    kSCG_SysClkDivBy9 = 8U,   /*!< Divided by 9.  */
+    kSCG_SysClkDivBy10 = 9U,  /*!< Divided by 10. */
+    kSCG_SysClkDivBy11 = 10U, /*!< Divided by 11. */
+    kSCG_SysClkDivBy12 = 11U, /*!< Divided by 12. */
+    kSCG_SysClkDivBy13 = 12U, /*!< Divided by 13. */
+    kSCG_SysClkDivBy14 = 13U, /*!< Divided by 14. */
+    kSCG_SysClkDivBy15 = 14U, /*!< Divided by 15. */
+    kSCG_SysClkDivBy16 = 15U  /*!< Divided by 16. */
+} scg_sys_clk_div_t;
+
+/*!
+ * @brief SCG system clock configuration.
+ */
+typedef struct _scg_sys_clk_config
+{
+    uint32_t divSlow : 4; /*!< Slow clock divider, see @ref scg_sys_clk_div_t. */
+    uint32_t divBus : 4;  /*!< Bus clock divider, see @ref scg_sys_clk_div_t.  */
+    uint32_t divExt : 4;  /*!< External clock divider, see @ref scg_sys_clk_div_t.  */
+    uint32_t : 4;         /*!< Reserved. */
+    uint32_t divCore : 4; /*!< Core clock divider, see @ref scg_sys_clk_div_t. */
+    uint32_t : 4;         /*!< Reserved. */
+    uint32_t src : 4;     /*!< System clock source, see @ref scg_sys_clk_src_t. */
+    uint32_t : 4;         /*!< reserved. */
+} scg_sys_clk_config_t;
+
+/*!
+ * @brief SCG clock out configuration (CLKOUTSEL).
+ */
+typedef enum _clock_clkout_src
+{
+    kClockClkoutSelScgExt = 0U,    /*!< SCG external clock. */
+    kClockClkoutSelSysOsc = 1U,    /*!< System OSC.     */
+    kClockClkoutSelSirc = 2U,      /*!< Slow IRC.       */
+    kClockClkoutSelFirc = 3U,      /*!< Fast IRC.       */
+    kClockClkoutSelScgRtcOsc = 4U, /*!< SCG RTC OSC clock. */
+    kClockClkoutSelLpFll = 5U,     /*!< Low power FLL.  */
+} clock_clkout_src_t;
+
+/*!
+ * @brief SCG asynchronous clock type.
+ */
+typedef enum _scg_async_clk
+{
+    kSCG_AsyncDiv1Clk, /*!< The async clock by DIV1, e.g. SOSCDIV1_CLK, SIRCDIV1_CLK. */
+    kSCG_AsyncDiv2Clk, /*!< The async clock by DIV2, e.g. SOSCDIV2_CLK, SIRCDIV2_CLK. */
+    kSCG_AsyncDiv3Clk  /*!< The async clock by DIV3, e.g. SOSCDIV3_CLK, SIRCDIV3_CLK. */
+} scg_async_clk_t;
+
+/*!
+ * @brief SCG asynchronous clock divider value.
+ */
+typedef enum scg_async_clk_div
+{
+    kSCG_AsyncClkDisable = 0U, /*!< Clock output is disabled.  */
+    kSCG_AsyncClkDivBy1 = 1U,  /*!< Divided by 1.              */
+    kSCG_AsyncClkDivBy2 = 2U,  /*!< Divided by 2.              */
+    kSCG_AsyncClkDivBy4 = 3U,  /*!< Divided by 4.              */
+    kSCG_AsyncClkDivBy8 = 4U,  /*!< Divided by 8.              */
+    kSCG_AsyncClkDivBy16 = 5U, /*!< Divided by 16.             */
+    kSCG_AsyncClkDivBy32 = 6U, /*!< Divided by 32.             */
+    kSCG_AsyncClkDivBy64 = 7U  /*!< Divided by 64.             */
+} scg_async_clk_div_t;
+
+/*!
+ * @brief SCG system OSC monitor mode.
+ */
+typedef enum _scg_sosc_monitor_mode
+{
+    kSCG_SysOscMonitorDisable = 0U,                  /*!< Monitor disabled.                          */
+    kSCG_SysOscMonitorInt = SCG_SOSCCSR_SOSCCM_MASK, /*!< Interrupt when the system OSC error is detected. */
+    kSCG_SysOscMonitorReset =
+        SCG_SOSCCSR_SOSCCM_MASK | SCG_SOSCCSR_SOSCCMRE_MASK /*!< Reset when the system OSC error is detected.     */
+} scg_sosc_monitor_mode_t;
+
+/*! @brief OSC enable mode. */
+enum _scg_sosc_enable_mode
+{
+    kSCG_SysOscEnable = SCG_SOSCCSR_SOSCEN_MASK,             /*!< Enable OSC clock. */
+    kSCG_SysOscEnableInStop = SCG_SOSCCSR_SOSCSTEN_MASK,     /*!< Enable OSC in stop mode. */
+    kSCG_SysOscEnableInLowPower = SCG_SOSCCSR_SOSCLPEN_MASK, /*!< Enable OSC in low power mode. */
+};
+
+/*!
+ * @brief SCG system OSC configuration.
+ */
+typedef struct _scg_sosc_config
+{
+    uint32_t freq;                       /*!< System OSC frequency.                    */
+    scg_sosc_monitor_mode_t monitorMode; /*!< Clock monitor mode selected.     */
+    uint8_t enableMode;                  /*!< Enable mode, OR'ed value of _scg_sosc_enable_mode.  */
+
+    scg_async_clk_div_t div1; /*!< SOSCDIV1 value.                          */
+    scg_async_clk_div_t div2; /*!< SOSCDIV2 value.                          */
+    scg_async_clk_div_t div3; /*!< SOSCDIV3 value.                          */
+
+} scg_sosc_config_t;
+
+/*!
+ * @brief SCG slow IRC clock frequency range.
+ */
+typedef enum _scg_sirc_range
+{
+    kSCG_SircRangeLow, /*!< Slow IRC low range clock (2 MHz, 4 MHz for i.MX 7 ULP).  */
+    kSCG_SircRangeHigh /*!< Slow IRC high range clock (8 MHz, 16 MHz for i.MX 7 ULP). */
+} scg_sirc_range_t;
+
+/*! @brief SIRC enable mode. */
+enum _scg_sirc_enable_mode
+{
+    kSCG_SircEnable = SCG_SIRCCSR_SIRCEN_MASK,            /*!< Enable SIRC clock.             */
+    kSCG_SircEnableInStop = SCG_SIRCCSR_SIRCSTEN_MASK,    /*!< Enable SIRC in stop mode.      */
+    kSCG_SircEnableInLowPower = SCG_SIRCCSR_SIRCLPEN_MASK /*!< Enable SIRC in low power mode. */
+};
+
+/*!
+ * @brief SCG slow IRC clock configuration.
+ */
+typedef struct _scg_sirc_config
+{
+    uint32_t enableMode;      /*!< Enable mode, OR'ed value of _scg_sirc_enable_mode. */
+    scg_async_clk_div_t div1; /*!< SIRCDIV1 value.                          */
+    scg_async_clk_div_t div2; /*!< SIRCDIV2 value.                          */
+    scg_async_clk_div_t div3; /*!< SIRCDIV3 value.                          */
+
+    scg_sirc_range_t range; /*!< Slow IRC frequency range.                */
+} scg_sirc_config_t;
+
+/*!
+ * @brief SCG fast IRC trim mode.
+ */
+typedef enum _scg_firc_trim_mode
+{
+    kSCG_FircTrimNonUpdate = SCG_FIRCCSR_FIRCTREN_MASK,
+    /*!< FIRC trim enable but not enable trim value update. In this mode, the
+     trim value is fixed to the initialized value which is defined by
+     trimCoar and trimFine in configure structure \ref scg_firc_trim_config_t.*/
+
+    kSCG_FircTrimUpdate = SCG_FIRCCSR_FIRCTREN_MASK | SCG_FIRCCSR_FIRCTRUP_MASK
+    /*!< FIRC trim enable and trim value update enable. In this mode, the trim
+     value is auto update. */
+
+} scg_firc_trim_mode_t;
+
+/*!
+ * @brief SCG fast IRC trim predivided value for system OSC.
+ */
+typedef enum _scg_firc_trim_div
+{
+    kSCG_FircTrimDivBy1,    /*!< Divided by 1.    */
+    kSCG_FircTrimDivBy128,  /*!< Divided by 128.  */
+    kSCG_FircTrimDivBy256,  /*!< Divided by 256.  */
+    kSCG_FircTrimDivBy512,  /*!< Divided by 512.  */
+    kSCG_FircTrimDivBy1024, /*!< Divided by 1024. */
+    kSCG_FircTrimDivBy2048  /*!< Divided by 2048. */
+} scg_firc_trim_div_t;
+
+/*!
+ * @brief SCG fast IRC trim source.
+ */
+typedef enum _scg_firc_trim_src
+{
+    kSCG_FircTrimSrcSysOsc = 2U, /*!< System OSC.                 */
+    kSCG_FircTrimSrcRtcOsc = 3U, /*!< RTC OSC (32.768 kHz).       */
+} scg_firc_trim_src_t;
+
+/*!
+ * @brief SCG fast IRC clock trim configuration.
+ */
+typedef struct _scg_firc_trim_config
+{
+    scg_firc_trim_mode_t trimMode; /*!< FIRC trim mode.                       */
+    scg_firc_trim_src_t trimSrc;   /*!< Trim source.                          */
+    scg_firc_trim_div_t trimDiv;   /*!< Trim predivided value for the system OSC.  */
+
+    uint8_t trimCoar; /*!< Trim coarse value; Irrelevant if trimMode is kSCG_FircTrimUpdate. */
+    uint8_t trimFine; /*!< Trim fine value; Irrelevant if trimMode is kSCG_FircTrimUpdate. */
+} scg_firc_trim_config_t;
+
+/*!
+ * @brief SCG fast IRC clock frequency range.
+ */
+typedef enum _scg_firc_range
+{
+    kSCG_FircRange48M, /*!< Fast IRC is trimmed to 48 MHz.  */
+    kSCG_FircRange52M, /*!< Fast IRC is trimmed to 52 MHz.  */
+    kSCG_FircRange56M, /*!< Fast IRC is trimmed to 56 MHz.  */
+    kSCG_FircRange60M  /*!< Fast IRC is trimmed to 60 MHz.  */
+} scg_firc_range_t;
+
+/*! @brief FIRC enable mode. */
+enum _scg_firc_enable_mode
+{
+    kSCG_FircEnable = SCG_FIRCCSR_FIRCEN_MASK,              /*!< Enable FIRC clock.             */
+    kSCG_FircEnableInStop = SCG_FIRCCSR_FIRCSTEN_MASK,      /*!< Enable FIRC in stop mode.      */
+    kSCG_FircEnableInLowPower = SCG_FIRCCSR_FIRCLPEN_MASK,  /*!< Enable FIRC in low power mode. */
+    kSCG_FircDisableRegulator = SCG_FIRCCSR_FIRCREGOFF_MASK /*!< Disable regulator.             */
+};
+
+/*!
+ * @brief SCG fast IRC clock configuration.
+ */
+typedef struct _scg_firc_config_t
+{
+    uint32_t enableMode; /*!< Enable mode, OR'ed value of _scg_firc_enable_mode. */
+
+    scg_async_clk_div_t div1; /*!< FIRCDIV1 value.                          */
+    scg_async_clk_div_t div2; /*!< FIRCDIV2 value.                          */
+    scg_async_clk_div_t div3; /*!< FIRCDIV3 value.                          */
+
+    scg_firc_range_t range; /*!< Fast IRC frequency range.                 */
+
+    const scg_firc_trim_config_t *trimConfig; /*!< Pointer to the FIRC trim configuration; set NULL to disable trim. */
+} scg_firc_config_t;
+
+/*! @brief LPFLL enable mode. */
+enum _scg_lpfll_enable_mode
+{
+    kSCG_LpFllEnable = SCG_LPFLLCSR_LPFLLEN_MASK, /*!< Enable LPFLL clock.             */
+};
+
+/*!
+ * @brief SCG LPFLL clock frequency range.
+ */
+typedef enum _scg_lpfll_range
+{
+    kSCG_LpFllRange48M, /*!< LPFLL is trimmed to 48MHz.  */
+    kSCG_LpFllRange72M, /*!< LPFLL is trimmed to 72MHz.  */
+    kSCG_LpFllRange96M, /*!< LPFLL is trimmed to 96MHz.  */
+    kSCG_LpFllRange120M /*!< LPFLL is trimmed to 120MHz. */
+} scg_lpfll_range_t;
+
+/*!
+ * @brief SCG LPFLL trim mode.
+ */
+typedef enum _scg_lpfll_trim_mode
+{
+    kSCG_LpFllTrimNonUpdate = SCG_LPFLLCSR_LPFLLTREN_MASK,
+    /*!< LPFLL trim is enabled but the trim value update is not enabled. In this mode, the
+     trim value is fixed to the initialized value, which is defined by the @ref trimValue
+     in the structure @ref scg_lpfll_trim_config_t.*/
+
+    kSCG_LpFllTrimUpdate = SCG_LPFLLCSR_LPFLLTREN_MASK | SCG_LPFLLCSR_LPFLLTRUP_MASK
+    /*!< FIRC trim is enabled and trim value update is enabled. In this mode, the trim
+     value is automatically updated. */
+} scg_lpfll_trim_mode_t;
+
+/*!
+ * @brief SCG LPFLL trim source.
+ */
+typedef enum _scg_lpfll_trim_src
+{
+    kSCG_LpFllTrimSrcSirc = 0U,   /*!< SIRC.                 */
+    kSCG_LpFllTrimSrcFirc = 1U,   /*!< FIRC.                 */
+    kSCG_LpFllTrimSrcSysOsc = 2U, /*!< System OSC.           */
+    kSCG_LpFllTrimSrcRtcOsc = 3U, /*!< RTC OSC (32.768 kHz). */
+} scg_lpfll_trim_src_t;
+
+/*!
+ * @brief SCG LPFLL lock mode.
+ */
+typedef enum _scg_lpfll_lock_mode
+{
+    kSCG_LpFllLock1Lsb = 0U, /*!< Lock with 1 LSB. */
+    kSCG_LpFllLock2Lsb = 1U  /*!< Lock with 2 LSB. */
+} scg_lpfll_lock_mode_t;
+
+/*!
+ * @brief SCG LPFLL clock trim configuration.
+ */
+typedef struct _scg_lpfll_trim_config
+{
+    scg_lpfll_trim_mode_t trimMode; /*!< Trim mode.            */
+    scg_lpfll_lock_mode_t lockMode; /*!< Lock mode; Irrelevant if the trimMode is kSCG_LpFllTrimNonUpdate. */
+
+    scg_lpfll_trim_src_t trimSrc; /*!< Trim source.          */
+    uint8_t trimDiv;              /*!< Trim predivideds value, which can be 0 ~ 31.
+                                    [ Trim source frequency / (trimDiv + 1) ] must be 2 MHz or 32768 Hz. */
+
+    uint8_t trimValue; /*!< Trim value; Irrelevant if trimMode is the kSCG_LpFllTrimUpdate. */
+} scg_lpfll_trim_config_t;
+
+/*!
+ * @brief SCG low power FLL configuration.
+ */
+typedef struct _scg_lpfll_config
+{
+    uint8_t enableMode; /*!< Enable mode, OR'ed value of _scg_lpfll_enable_mode */
+
+    scg_async_clk_div_t div1; /*!< LPFLLDIV1 value.                          */
+    scg_async_clk_div_t div2; /*!< LPFLLDIV2 value.                          */
+    scg_async_clk_div_t div3; /*!< LPFLLDIV3 value.                          */
+
+    scg_lpfll_range_t range; /*!< LPFLL frequency range.                     */
+
+    const scg_lpfll_trim_config_t *trimConfig; /*!< Trim configuration; set NULL to disable trim. */
+} scg_lpfll_config_t;
+
+/*!
+ * @brief SCG RTC OSC monitor mode.
+ */
+typedef enum _scg_rosc_monitor_mode
+{
+    kSCG_rtcOscMonitorDisable = 0U,                  /*!< Monitor disable.                          */
+    kSCG_rtcOscMonitorInt = SCG_ROSCCSR_ROSCCM_MASK, /*!< Interrupt when the RTC OSC error is detected. */
+    kSCG_rtcOscMonitorReset =
+        SCG_ROSCCSR_ROSCCM_MASK | SCG_ROSCCSR_ROSCCMRE_MASK /*!< Reset when the RTC OSC error is detected.     */
+} scg_rosc_monitor_mode_t;
+
+/*!
+ * @brief SCG RTC OSC configuration.
+ */
+typedef struct _scg_rosc_config
+{
+    scg_rosc_monitor_mode_t monitorMode; /*!< Clock monitor mode selected.     */
+} scg_rosc_config_t;
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*!
+ * @brief Enable the clock for specific IP.
+ *
+ * @param name  Which clock to enable, see \ref clock_ip_name_t.
+ */
+static inline void CLOCK_EnableClock(clock_ip_name_t name)
+{
+    assert((*(volatile uint32_t *)name) & PCC_CLKCFG_PR_MASK);
+
+    (*(volatile uint32_t *)name) |= PCC_CLKCFG_CGC_MASK;
+}
+
+/*!
+ * @brief Disable the clock for specific IP.
+ *
+ * @param name  Which clock to disable, see \ref clock_ip_name_t.
+ */
+static inline void CLOCK_DisableClock(clock_ip_name_t name)
+{
+    assert((*(volatile uint32_t *)name) & PCC_CLKCFG_PR_MASK);
+
+    (*(volatile uint32_t *)name) &= ~PCC_CLKCFG_CGC_MASK;
+}
+
+/*!
+ * @brief Check whether the clock is already enabled and configured by
+ * any other core.
+ *
+ * @param name Which peripheral to check, see \ref clock_ip_name_t.
+ * @return True if clock is already enabled, otherwise false.
+ */
+static inline bool CLOCK_IsEnabledByOtherCore(clock_ip_name_t name)
+{
+    assert((*(volatile uint32_t *)name) & PCC_CLKCFG_PR_MASK);
+
+    return ((*(volatile uint32_t *)name) & PCC_CLKCFG_INUSE_MASK) ? true : false;
+}
+
+/*!
+ * @brief Set the clock source for specific IP module.
+ *
+ * Set the clock source for specific IP, not all modules need to set the
+ * clock source, should only use this function for the modules need source
+ * setting.
+ *
+ * @param name Which peripheral to check, see \ref clock_ip_name_t.
+ * @param src Clock source to set.
+ */
+static inline void CLOCK_SetIpSrc(clock_ip_name_t name, clock_ip_src_t src)
+{
+    uint32_t reg = (*(volatile uint32_t *)name);
+
+    assert(reg & PCC_CLKCFG_PR_MASK);
+    assert(!(reg & PCC_CLKCFG_INUSE_MASK)); /* Should not change if clock has been enabled by other core. */
+
+    reg = (reg & ~PCC_CLKCFG_PCS_MASK) | PCC_CLKCFG_PCS(src);
+
+    /*
+     * If clock is already enabled, first disable it, then set the clock
+     * source and re-enable it.
+     */
+    (*(volatile uint32_t *)name) = reg & ~PCC_CLKCFG_CGC_MASK;
+    (*(volatile uint32_t *)name) = reg;
+}
+
+/*!
+ * @brief Set the clock source and divider for specific IP module.
+ *
+ * Set the clock source and divider for specific IP, not all modules need to
+ * set the clock source and divider, should only use this function for the
+ * modules need source and divider setting.
+ *
+ * Divider output clock = Divider input clock x [(fracValue+1)/(divValue+1)]).
+ *
+ * @param name Which peripheral to check, see \ref clock_ip_name_t.
+ * @param src Clock source to set.
+ * @param divValue  The divider value.
+ * @param fracValue The fraction multiply value.
+ */
+static inline void CLOCK_SetIpSrcDiv(clock_ip_name_t name, clock_ip_src_t src, uint8_t divValue, uint8_t fracValue)
+{
+    uint32_t reg = (*(volatile uint32_t *)name);
+
+    assert(reg & PCC_CLKCFG_PR_MASK);
+    assert(!(reg & PCC_CLKCFG_INUSE_MASK)); /* Should not change if clock has been enabled by other core. */
+
+    reg = (reg & ~(PCC_CLKCFG_PCS_MASK | PCC_CLKCFG_FRAC_MASK | PCC_CLKCFG_PCD_MASK)) | PCC_CLKCFG_PCS(src) |
+          PCC_CLKCFG_PCD(divValue) | PCC_CLKCFG_FRAC(fracValue);
+
+    /*
+     * If clock is already enabled, first disable it, then set the clock
+     * source and re-enable it.
+     */
+    (*(volatile uint32_t *)name) = reg & ~PCC_CLKCFG_CGC_MASK;
+    (*(volatile uint32_t *)name) = reg;
+}
+
+/*!
+ * @brief Gets the clock frequency for a specific clock name.
+ *
+ * This function checks the current clock configurations and then calculates
+ * the clock frequency for a specific clock name defined in clock_name_t.
+ *
+ * @param clockName Clock names defined in clock_name_t
+ * @return Clock frequency value in hertz
+ */
+uint32_t CLOCK_GetFreq(clock_name_t clockName);
+
+/*!
+ * @brief Get the core clock or system clock frequency.
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetCoreSysClkFreq(void);
+
+/*!
+ * @brief Get the platform clock frequency.
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetPlatClkFreq(void);
+
+/*!
+ * @brief Get the bus clock frequency.
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetBusClkFreq(void);
+
+/*!
+ * @brief Get the flash clock frequency.
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetFlashClkFreq(void);
+
+/*!
+ * @brief Get the OSC 32K clock frequency (OSC32KCLK).
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetOsc32kClkFreq(void);
+
+/*!
+ * @brief Get the external clock frequency (EXTCLK).
+ *
+ * @return Clock frequency in Hz.
+ */
+uint32_t CLOCK_GetExtClkFreq(void);
+
+/*!
+ * @brief Get the LPO clock frequency.
+ *
+ * @return Clock frequency in Hz.
+ */
+static inline uint32_t CLOCK_GetLpoClkFreq(void)
+{
+    return LPO_CLK_FREQ; /* 1k Hz. */
+}
+
+/*!
+ * @brief Gets the functional clock frequency for a specific IP module.
+ *
+ * This function gets the IP module's functional clock frequency based on PCC
+ * registers. It is only used for the IP modules which could select clock source
+ * by PCC[PCS].
+ *
+ * @param name Which peripheral to get, see \ref clock_ip_name_t.
+ * @return Clock frequency value in Hz
+ */
+uint32_t CLOCK_GetIpFreq(clock_ip_name_t name);
+
+/*!
+* @brief Enable the RTC Oscillator.
+*
+* This function enables the Oscillator for RTC external crystal.
+*
+* @param enable Enable the Oscillator or not.
+*/
+static inline void CLOCK_EnableRtcOsc(bool enable)
+{
+    if (enable)
+    {
+        RTC->CR |= RTC_CR_OSCE_MASK;
+    }
+    else
+    {
+        RTC->CR &= ~RTC_CR_OSCE_MASK;
+    }
+}
+
+/*!
+* @brief Enable the RSIM Run Regulator Request.
+*
+* When this function is enabled, the RSIM will request the SPM Run Regulator to be turned on and the
+* RSIM will then stop requesting Stop after the Run Regulator Acknowledge signal is received from
+* the SPM module.
+* The RF OSC would be only available while this function is enabled.
+*
+* @param enable Enable the function or not.
+*/
+static inline void CLOCK_EnableRSIMRunRequest(bool enable)
+{
+    if (enable)
+    {
+        RSIM->POWER |= RSIM_POWER_RSIM_RUN_REQUEST_MASK;
+    }
+    else
+    {
+        RSIM->POWER &= ~RSIM_POWER_RSIM_RUN_REQUEST_MASK;
+    }
+}
+
+/*! @brief Enable USB FS clock.
+ *
+ * @param src  USB FS clock source.
+ * @param freq The frequency specified by src.
+ * @retval true The clock is set successfully.
+ * @retval false The clock source is invalid to get proper USB FS clock.
+ */
+bool CLOCK_EnableUsbfs0Clock(clock_usb_src_t src, uint32_t freq);
+
+/*! @brief Disable USB FS clock.
+ *
+ * Disable USB FS clock.
+ */
+static inline void CLOCK_DisableUsbfs0Clock(void)
+{
+    CLOCK_DisableClock(kCLOCK_Usb0);
+}
+
+/*!
+ * @name MCU System Clock.
+ * @{
+ */
+
+/*!
+ * @brief Gets the SCG system clock frequency.
+ *
+ * This function gets the SCG system clock frequency. These clocks are used for
+ * core, platform, external, and bus clock domains.
+ *
+ * @param type     Which type of clock to get, core clock or slow clock.
+ * @return  Clock frequency.
+ */
+uint32_t CLOCK_GetSysClkFreq(scg_sys_clk_t type);
+
+/*!
+ * @brief Sets the system clock configuration for VLPR mode.
+ *
+ * This function sets the system clock configuration for VLPR mode.
+ *
+ * @param config Pointer to the configuration.
+ */
+static inline void CLOCK_SetVlprModeSysClkConfig(const scg_sys_clk_config_t *config)
+{
+    assert(config);
+
+    SCG->VCCR = *(const uint32_t *)config;
+}
+
+/*!
+ * @brief Sets the system clock configuration for RUN mode.
+ *
+ * This function sets the system clock configuration for RUN mode.
+ *
+ * @param config Pointer to the configuration.
+ */
+static inline void CLOCK_SetRunModeSysClkConfig(const scg_sys_clk_config_t *config)
+{
+    assert(config);
+
+    SCG->RCCR = *(const uint32_t *)config;
+}
+
+/*!
+ * @brief Sets the system clock configuration for HSRUN mode.
+ *
+ * This function sets the system clock configuration for HSRUN mode.
+ *
+ * @param config Pointer to the configuration.
+ */
+static inline void CLOCK_SetHsrunModeSysClkConfig(const scg_sys_clk_config_t *config)
+{
+    assert(config);
+
+    SCG->HCCR = *(const uint32_t *)config;
+}
+
+/*!
+ * @brief Gets the system clock configuration in the current power mode.
+ *
+ * This function gets the system configuration in the current power mode.
+ *
+ * @param config Pointer to the configuration.
+ */
+static inline void CLOCK_GetCurSysClkConfig(scg_sys_clk_config_t *config)
+{
+    assert(config);
+
+    *(uint32_t *)config = SCG->CSR;
+}
+
+/*!
+ * @brief Sets the clock out selection.
+ *
+ * This function sets the clock out selection (CLKOUTSEL).
+ *
+ * @param setting The selection to set.
+ * @return  The current clock out selection.
+ */
+static inline void CLOCK_SetClkOutSel(clock_clkout_src_t setting)
+{
+    SCG->CLKOUTCNFG = SCG_CLKOUTCNFG_CLKOUTSEL(setting);
+}
+/* @} */
+
+/*!
+ * @name SCG System OSC Clock.
+ * @{
+ */
+
+/*!
+ * @brief Initializes the SCG system OSC.
+ *
+ * This function enables the SCG system OSC clock according to the
+ * configuration.
+ *
+ * @param config   Pointer to the configuration structure.
+ * @retval kStatus_Success System OSC is initialized.
+ * @retval kStatus_SCG_Busy System OSC has been enabled and is used by the system clock.
+ * @retval kStatus_ReadOnly System OSC control register is locked.
+ *
+ * @note This function can't detect whether the system OSC has been enabled and
+ * used by an IP.
+ */
+status_t CLOCK_InitSysOsc(const scg_sosc_config_t *config);
+
+/*!
+ * @brief De-initializes the SCG system OSC.
+ *
+ * This function disables the SCG system OSC clock.
+ *
+ * @retval kStatus_Success System OSC is deinitialized.
+ * @retval kStatus_SCG_Busy System OSC is used by the system clock.
+ * @retval kStatus_ReadOnly System OSC control register is locked.
+ *
+ * @note This function can't detect whether the system OSC is used by an IP.
+ */
+status_t CLOCK_DeinitSysOsc(void);
+
+/*!
+ * @brief Set the asynchronous clock divider.
+ *
+ * @param asyncClk Which asynchronous clock to configure.
+ * @param divider The divider value to set.
+ *
+ * @note There might be glitch when changing the asynchronous divider, so make sure
+ * the asynchronous clock is not used while changing divider.
+ */
+static inline void CLOCK_SetSysOscAsyncClkDiv(scg_async_clk_t asyncClk, scg_async_clk_div_t divider)
+{
+    uint32_t reg = SCG->SOSCDIV;
+
+    switch (asyncClk)
+    {
+        case kSCG_AsyncDiv3Clk:
+            reg = (reg & ~SCG_SOSCDIV_SOSCDIV3_MASK) | SCG_SOSCDIV_SOSCDIV3(divider);
+            break;
+        case kSCG_AsyncDiv2Clk:
+            reg = (reg & ~SCG_SOSCDIV_SOSCDIV2_MASK) | SCG_SOSCDIV_SOSCDIV2(divider);
+            break;
+        default:
+            reg = (reg & ~SCG_SOSCDIV_SOSCDIV1_MASK) | SCG_SOSCDIV_SOSCDIV1(divider);
+            break;
+    }
+
+    SCG->SOSCDIV = reg;
+}
+
+/*!
+ * @brief Gets the SCG system OSC clock frequency (SYSOSC).
+ *
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetSysOscFreq(void);
+
+/*!
+ * @brief Gets the SCG asynchronous clock frequency from the system OSC.
+ *
+ * @param type     The asynchronous clock type.
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetSysOscAsyncFreq(scg_async_clk_t type);
+
+/*!
+ * @brief Checks whether the system OSC clock error occurs.
+ *
+ * @return  True if the error occurs, false if not.
+ */
+static inline bool CLOCK_IsSysOscErr(void)
+{
+    return (bool)(SCG->SOSCCSR & SCG_SOSCCSR_SOSCERR_MASK);
+}
+
+/*!
+ * @brief Clears the system OSC clock error.
+ */
+static inline void CLOCK_ClearSysOscErr(void)
+{
+    SCG->SOSCCSR |= SCG_SOSCCSR_SOSCERR_MASK;
+}
+
+/*!
+ * @brief Sets the system OSC monitor mode.
+ *
+ * This function sets the system OSC monitor mode. The mode can be disabled,
+ * it can generate an interrupt when the error is disabled, or reset when the error is detected.
+ *
+ * @param mode Monitor mode to set.
+ */
+static inline void CLOCK_SetSysOscMonitorMode(scg_sosc_monitor_mode_t mode)
+{
+    uint32_t reg = SCG->SOSCCSR;
+
+    reg &= ~(SCG_SOSCCSR_SOSCCM_MASK | SCG_SOSCCSR_SOSCCMRE_MASK);
+
+    reg |= (uint32_t)mode;
+
+    SCG->SOSCCSR = reg;
+}
+
+/*!
+ * @brief Checks whether the system OSC clock is valid.
+ *
+ * @return  True if clock is valid, false if not.
+ */
+static inline bool CLOCK_IsSysOscValid(void)
+{
+    return (bool)(SCG->SOSCCSR & SCG_SOSCCSR_SOSCVLD_MASK);
+}
+/* @} */
+
+/*!
+ * @name SCG Slow IRC Clock.
+ * @{
+ */
+
+/*!
+ * @brief Initializes the SCG slow IRC clock.
+ *
+ * This function enables the SCG slow IRC clock according to the
+ * configuration.
+ *
+ * @param config   Pointer to the configuration structure.
+ * @retval kStatus_Success SIRC is initialized.
+ * @retval kStatus_SCG_Busy SIRC has been enabled and is used by system clock.
+ * @retval kStatus_ReadOnly SIRC control register is locked.
+ *
+ * @note This function can't detect whether the system OSC has been enabled and
+ * used by an IP.
+ */
+status_t CLOCK_InitSirc(const scg_sirc_config_t *config);
+
+/*!
+ * @brief De-initializes the SCG slow IRC.
+ *
+ * This function disables the SCG slow IRC.
+ *
+ * @retval kStatus_Success SIRC is deinitialized.
+ * @retval kStatus_SCG_Busy SIRC is used by system clock.
+ * @retval kStatus_ReadOnly SIRC control register is locked.
+ *
+ * @note This function can't detect whether the SIRC is used by an IP.
+ */
+status_t CLOCK_DeinitSirc(void);
+
+/*!
+ * @brief Set the asynchronous clock divider.
+ *
+ * @param asyncClk Which asynchronous clock to configure.
+ * @param divider The divider value to set.
+ *
+ * @note There might be glitch when changing the asynchronous divider, so make sure
+ * the asynchronous clock is not used while changing divider.
+ */
+static inline void CLOCK_SetSircAsyncClkDiv(scg_async_clk_t asyncClk, scg_async_clk_div_t divider)
+{
+    uint32_t reg = SCG->SIRCDIV;
+
+    switch (asyncClk)
+    {
+        case kSCG_AsyncDiv3Clk:
+            reg = (reg & ~SCG_SIRCDIV_SIRCDIV3_MASK) | SCG_SIRCDIV_SIRCDIV3(divider);
+            break;
+        case kSCG_AsyncDiv2Clk:
+            reg = (reg & ~SCG_SIRCDIV_SIRCDIV2_MASK) | SCG_SIRCDIV_SIRCDIV2(divider);
+            break;
+        default:
+            reg = (reg & ~SCG_SIRCDIV_SIRCDIV1_MASK) | SCG_SIRCDIV_SIRCDIV1(divider);
+            break;
+    }
+
+    SCG->SIRCDIV = reg;
+}
+
+/*!
+ * @brief Gets the SCG SIRC clock frequency.
+ *
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetSircFreq(void);
+
+/*!
+ * @brief Gets the SCG asynchronous clock frequency from the SIRC.
+ *
+ * @param type     The asynchronous clock type.
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetSircAsyncFreq(scg_async_clk_t type);
+
+/*!
+ * @brief Checks whether the SIRC clock is valid.
+ *
+ * @return  True if clock is valid, false if not.
+ */
+static inline bool CLOCK_IsSircValid(void)
+{
+    return (bool)(SCG->SIRCCSR & SCG_SIRCCSR_SIRCVLD_MASK);
+}
+/* @} */
+
+/*!
+ * @name SCG Fast IRC Clock.
+ * @{
+ */
+
+/*!
+ * @brief Initializes the SCG fast IRC clock.
+ *
+ * This function enables the SCG fast IRC clock according to the configuration.
+ *
+ * @param config   Pointer to the configuration structure.
+ * @retval kStatus_Success FIRC is initialized.
+ * @retval kStatus_SCG_Busy FIRC has been enabled and is used by the system clock.
+ * @retval kStatus_ReadOnly FIRC control register is locked.
+ *
+ * @note This function can't detect whether the FIRC has been enabled and
+ * used by an IP.
+ */
+status_t CLOCK_InitFirc(const scg_firc_config_t *config);
+
+/*!
+ * @brief De-initializes the SCG fast IRC.
+ *
+ * This function disables the SCG fast IRC.
+ *
+ * @retval kStatus_Success FIRC is deinitialized.
+ * @retval kStatus_SCG_Busy FIRC is used by the system clock.
+ * @retval kStatus_ReadOnly FIRC control register is locked.
+ *
+ * @note This function can't detect whether the FIRC is used by an IP.
+ */
+status_t CLOCK_DeinitFirc(void);
+
+/*!
+ * @brief Set the asynchronous clock divider.
+ *
+ * @param asyncClk Which asynchronous clock to configure.
+ * @param divider The divider value to set.
+ *
+ * @note There might be glitch when changing the asynchronous divider, so make sure
+ * the asynchronous clock is not used while changing divider.
+ */
+static inline void CLOCK_SetFircAsyncClkDiv(scg_async_clk_t asyncClk, scg_async_clk_div_t divider)
+{
+    uint32_t reg = SCG->FIRCDIV;
+
+    switch (asyncClk)
+    {
+        case kSCG_AsyncDiv3Clk:
+            reg = (reg & ~SCG_FIRCDIV_FIRCDIV3_MASK) | SCG_FIRCDIV_FIRCDIV3(divider);
+            break;
+        case kSCG_AsyncDiv2Clk:
+            reg = (reg & ~SCG_FIRCDIV_FIRCDIV2_MASK) | SCG_FIRCDIV_FIRCDIV2(divider);
+            break;
+        default:
+            reg = (reg & ~SCG_FIRCDIV_FIRCDIV1_MASK) | SCG_FIRCDIV_FIRCDIV1(divider);
+            break;
+    }
+
+    SCG->FIRCDIV = reg;
+}
+
+/*!
+ * @brief Gets the SCG FIRC clock frequency.
+ *
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetFircFreq(void);
+
+/*!
+ * @brief Gets the SCG asynchronous clock frequency from the FIRC.
+ *
+ * @param type     The asynchronous clock type.
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetFircAsyncFreq(scg_async_clk_t type);
+
+/*!
+ * @brief Checks whether the FIRC clock error occurs.
+ *
+ * @return  True if the error occurs, false if not.
+ */
+static inline bool CLOCK_IsFircErr(void)
+{
+    return (bool)(SCG->FIRCCSR & SCG_FIRCCSR_FIRCERR_MASK);
+}
+
+/*!
+ * @brief Clears the FIRC clock error.
+ */
+static inline void CLOCK_ClearFircErr(void)
+{
+    SCG->FIRCCSR |= SCG_FIRCCSR_FIRCERR_MASK;
+}
+
+/*!
+ * @brief Checks whether the FIRC clock is valid.
+ *
+ * @return  True if clock is valid, false if not.
+ */
+static inline bool CLOCK_IsFircValid(void)
+{
+    return (bool)(SCG->FIRCCSR & SCG_FIRCCSR_FIRCVLD_MASK);
+}
+/* @} */
+
+/*!
+ * @brief Gets the SCG RTC OSC clock frequency.
+ *
+ * @return  Clock frequency; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetRtcOscFreq(void);
+
+/*!
+ * @brief Checks whether the RTC OSC clock error occurs.
+ *
+ * @return  True if error occurs, false if not.
+ */
+static inline bool CLOCK_IsRtcOscErr(void)
+{
+    return (bool)(SCG->ROSCCSR & SCG_ROSCCSR_ROSCERR_MASK);
+}
+
+/*!
+ * @brief Clears the RTC OSC clock error.
+ */
+static inline void CLOCK_ClearRtcOscErr(void)
+{
+    SCG->ROSCCSR |= SCG_ROSCCSR_ROSCERR_MASK;
+}
+
+/*!
+ * @brief Sets the RTC OSC monitor mode.
+ *
+ * This function sets the RTC OSC monitor mode. The mode can be disabled.
+ * It can generate an interrupt when the error is disabled, or reset when the error is detected.
+ *
+ * @param mode Monitor mode to set.
+ */
+static inline void CLOCK_SetRtcOscMonitorMode(scg_rosc_monitor_mode_t mode)
+{
+    uint32_t reg = SCG->ROSCCSR;
+
+    reg &= ~(SCG_ROSCCSR_ROSCCM_MASK | SCG_ROSCCSR_ROSCCMRE_MASK);
+
+    reg |= (uint32_t)mode;
+
+    SCG->ROSCCSR = reg;
+}
+
+/*!
+ * @brief Checks whether the RTC OSC clock is valid.
+ *
+ * @return  True if the clock is valid, false if not.
+ */
+static inline bool CLOCK_IsRtcOscValid(void)
+{
+    return (bool)(SCG->ROSCCSR & SCG_ROSCCSR_ROSCVLD_MASK);
+}
+/* @} */
+
+/*!
+ * @name SCG Low Power FLL Clock.
+ * @{
+ */
+/*!
+ * @brief Initializes the SCG LPFLL clock.
+ *
+ * This function enables the SCG LPFLL clock according to the configuration.
+ *
+ * @param config   Pointer to the configuration structure.
+ * @retval kStatus_Success LPFLL is initialized.
+ * @retval kStatus_SCG_Busy LPFLL has been enabled and is used by the system clock.
+ * @retval kStatus_ReadOnly LPFLL control register is locked.
+ *
+ * @note This function can't detect whether the LPFLL has been enabled and
+ * used by an IP.
+ */
+status_t CLOCK_InitLpFll(const scg_lpfll_config_t *config);
+
+/*!
+ * @brief De-initializes the SCG LPFLL.
+ *
+ * This function disables the SCG LPFLL.
+ *
+ * @retval kStatus_Success LPFLL is deinitialized.
+ * @retval kStatus_SCG_Busy LPFLL is used by the system clock.
+ * @retval kStatus_ReadOnly LPFLL control register is locked.
+ *
+ * @note This function can't detect whether the LPFLL is used by an IP.
+ */
+status_t CLOCK_DeinitLpFll(void);
+
+/*!
+ * @brief Set the asynchronous clock divider.
+ *
+ * @param asyncClk Which asynchronous clock to configure.
+ * @param divider The divider value to set.
+ *
+ * @note There might be glitch when changing the asynchronous divider, so make sure
+ * the asynchronous clock is not used while changing divider.
+ */
+static inline void CLOCK_SetLpFllAsyncClkDiv(scg_async_clk_t asyncClk, scg_async_clk_div_t divider)
+{
+    uint32_t reg = SCG->LPFLLDIV;
+
+    switch (asyncClk)
+    {
+        case kSCG_AsyncDiv2Clk:
+            reg = (reg & ~SCG_LPFLLDIV_LPFLLDIV2_MASK) | SCG_LPFLLDIV_LPFLLDIV2(divider);
+            break;
+        default:
+            reg = (reg & ~SCG_LPFLLDIV_LPFLLDIV1_MASK) | SCG_LPFLLDIV_LPFLLDIV1(divider);
+            break;
+    }
+
+    SCG->LPFLLDIV = reg;
+}
+
+/*!
+ * @brief Gets the SCG LPFLL clock frequency.
+ *
+ * @return  Clock frequency in Hz; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetLpFllFreq(void);
+
+/*!
+ * @brief Gets the SCG asynchronous clock frequency from the LPFLL.
+ *
+ * @param type     The asynchronous clock type.
+ * @return  Clock frequency in Hz; If the clock is invalid, returns 0.
+ */
+uint32_t CLOCK_GetLpFllAsyncFreq(scg_async_clk_t type);
+
+/*!
+ * @brief Checks whether the LPFLL clock is valid.
+ *
+ * @return  True if the clock is valid, false if not.
+ */
+static inline bool CLOCK_IsLpFllValid(void)
+{
+    return (bool)(SCG->LPFLLCSR & SCG_LPFLLCSR_LPFLLVLD_MASK);
+}
+/* @} */
+
+/*!
+ * @name External clock frequency
+ * @{
+ */
+
+/*!
+ * @brief Sets the XTAL0 frequency based on board settings.
+ *
+ * @param freq The XTAL0/EXTAL0 input clock frequency in Hz.
+ */
+static inline void CLOCK_SetXtal0Freq(uint32_t freq)
+{
+    g_xtal0Freq = freq;
+}
+
+/*!
+ * @brief Sets the XTAL32 frequency based on board settings.
+ *
+ * @param freq The XTAL32/EXTAL32 input clock frequency in Hz.
+ */
+static inline void CLOCK_SetXtal32Freq(uint32_t freq)
+{
+    g_xtal32Freq = freq;
+}
+
+/* @} */
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+/*! @} */
+
+#endif /* _FSL_CLOCK_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.c
new file mode 100644 (file)
index 0000000..be4ce2a
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
+ * Copyright 2016 NXP
+* All rights reserved.
+*
+* 
+* SPDX-License-Identifier: BSD-3-Clause
+*/
+
+#include "fsl_common.h"
+#include "fsl_debug_console.h"
+
+#ifndef NDEBUG
+#if (defined(__CC_ARM)) || (defined(__ICCARM__))
+void __aeabi_assert(const char *failedExpr, const char *file, int line)
+{
+    PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" \n", failedExpr, file, line);
+    for (;;)
+    {
+        __BKPT(0);
+    }
+}
+#elif(defined(__GNUC__))
+void __assert_func(const char *file, int line, const char *func, const char *failedExpr)
+{
+    PRINTF("ASSERT ERROR \" %s \": file \"%s\" Line \"%d\" function name \"%s\" \n", failedExpr, file, line, func);
+    for (;;)
+    {
+        __BKPT(0);
+    }
+}
+#endif /* (defined(__CC_ARM)) ||  (defined (__ICCARM__)) */
+#endif /* NDEBUG */
+
+#ifndef __GIC_PRIO_BITS
+#ifndef __riscv
+uint32_t InstallIRQHandler(IRQn_Type irq, uint32_t irqHandler)
+{
+/* Addresses for VECTOR_TABLE and VECTOR_RAM come from the linker file */
+#if defined(__CC_ARM)
+    extern uint32_t Image$$VECTOR_ROM$$Base[];
+    extern uint32_t Image$$VECTOR_RAM$$Base[];
+    extern uint32_t Image$$RW_m_data$$Base[];
+
+#define __VECTOR_TABLE Image$$VECTOR_ROM$$Base
+#define __VECTOR_RAM Image$$VECTOR_RAM$$Base
+#define __RAM_VECTOR_TABLE_SIZE (((uint32_t)Image$$RW_m_data$$Base - (uint32_t)Image$$VECTOR_RAM$$Base))
+#elif defined(__ICCARM__)
+    extern uint32_t __RAM_VECTOR_TABLE_SIZE[];
+    extern uint32_t __VECTOR_TABLE[];
+    extern uint32_t __VECTOR_RAM[];
+#elif defined(__GNUC__)
+    extern uint32_t __VECTOR_TABLE[];
+    extern uint32_t __VECTOR_RAM[];
+    extern uint32_t __RAM_VECTOR_TABLE_SIZE_BYTES[];
+    uint32_t __RAM_VECTOR_TABLE_SIZE = (uint32_t)(__RAM_VECTOR_TABLE_SIZE_BYTES);
+#endif /* defined(__CC_ARM) */
+    uint32_t n;
+    uint32_t ret;
+    uint32_t irqMaskValue;
+
+    irqMaskValue = DisableGlobalIRQ();
+    if (SCB->VTOR != (uint32_t)__VECTOR_RAM)
+    {
+        /* Copy the vector table from ROM to RAM */
+        for (n = 0; n < ((uint32_t)__RAM_VECTOR_TABLE_SIZE) / sizeof(uint32_t); n++)
+        {
+            __VECTOR_RAM[n] = __VECTOR_TABLE[n];
+        }
+        /* Point the VTOR to the position of vector table */
+        SCB->VTOR = (uint32_t)__VECTOR_RAM;
+    }
+
+    ret = __VECTOR_RAM[irq + 16];
+    /* make sure the __VECTOR_RAM is noncachable */
+    __VECTOR_RAM[irq + 16] = irqHandler;
+
+    EnableGlobalIRQ(irqMaskValue);
+
+    return ret;
+}
+#endif
+#endif
+
+#ifndef QN908XC_SERIES
+#if (defined(FSL_FEATURE_SOC_SYSCON_COUNT) && (FSL_FEATURE_SOC_SYSCON_COUNT > 0))
+
+void EnableDeepSleepIRQ(IRQn_Type interrupt)
+{
+    uint32_t index = 0;
+    uint32_t intNumber = (uint32_t)interrupt;
+    while (intNumber >= 32u)
+    {
+        index++;
+        intNumber -= 32u;
+    }
+
+    SYSCON->STARTERSET[index] = 1u << intNumber;
+    EnableIRQ(interrupt); /* also enable interrupt at NVIC */
+}
+
+void DisableDeepSleepIRQ(IRQn_Type interrupt)
+{
+    uint32_t index = 0;
+    uint32_t intNumber = (uint32_t)interrupt;
+    while (intNumber >= 32u)
+    {
+        index++;
+        intNumber -= 32u;
+    }
+
+    DisableIRQ(interrupt); /* also disable interrupt at NVIC */
+    SYSCON->STARTERCLR[index] = 1u << intNumber;
+}
+#endif /* FSL_FEATURE_SOC_SYSCON_COUNT */
+
+#endif /* QN908XC_SERIES */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.h
new file mode 100644 (file)
index 0000000..3aea499
--- /dev/null
@@ -0,0 +1,485 @@
+/*
+ * Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_COMMON_H_
+#define _FSL_COMMON_H_
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <string.h>
+
+#if defined(__ICCARM__)
+#include <stddef.h>
+#endif
+
+#include "fsl_device_registers.h"
+
+/*!
+ * @addtogroup ksdk_common
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @brief Construct a status code value from a group and code number. */
+#define MAKE_STATUS(group, code) ((((group)*100) + (code)))
+
+/*! @brief Construct the version number for drivers. */
+#define MAKE_VERSION(major, minor, bugfix) (((major) << 16) | ((minor) << 8) | (bugfix))
+
+/*! @name Driver version */
+/*@{*/
+/*! @brief common driver version 2.0.0. */
+#define FSL_COMMON_DRIVER_VERSION (MAKE_VERSION(2, 0, 0))
+/*@}*/
+
+/* Debug console type definition. */
+#define DEBUG_CONSOLE_DEVICE_TYPE_NONE 0U     /*!< No debug console.             */
+#define DEBUG_CONSOLE_DEVICE_TYPE_UART 1U     /*!< Debug console base on UART.   */
+#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART 2U   /*!< Debug console base on LPUART. */
+#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI 3U    /*!< Debug console base on LPSCI.  */
+#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC 4U   /*!< Debug console base on USBCDC. */
+#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM 5U /*!< Debug console base on USBCDC. */
+#define DEBUG_CONSOLE_DEVICE_TYPE_IUART 6U    /*!< Debug console base on i.MX UART. */
+#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART 7U   /*!< Debug console base on LPC_USART. */
+
+/*! @brief Status group numbers. */
+enum _status_groups
+{
+    kStatusGroup_Generic = 0,                 /*!< Group number for generic status codes. */
+    kStatusGroup_FLASH = 1,                   /*!< Group number for FLASH status codes. */
+    kStatusGroup_LPSPI = 4,                   /*!< Group number for LPSPI status codes. */
+    kStatusGroup_FLEXIO_SPI = 5,              /*!< Group number for FLEXIO SPI status codes. */
+    kStatusGroup_DSPI = 6,                    /*!< Group number for DSPI status codes. */
+    kStatusGroup_FLEXIO_UART = 7,             /*!< Group number for FLEXIO UART status codes. */
+    kStatusGroup_FLEXIO_I2C = 8,              /*!< Group number for FLEXIO I2C status codes. */
+    kStatusGroup_LPI2C = 9,                   /*!< Group number for LPI2C status codes. */
+    kStatusGroup_UART = 10,                   /*!< Group number for UART status codes. */
+    kStatusGroup_I2C = 11,                    /*!< Group number for UART status codes. */
+    kStatusGroup_LPSCI = 12,                  /*!< Group number for LPSCI status codes. */
+    kStatusGroup_LPUART = 13,                 /*!< Group number for LPUART status codes. */
+    kStatusGroup_SPI = 14,                    /*!< Group number for SPI status code.*/
+    kStatusGroup_XRDC = 15,                   /*!< Group number for XRDC status code.*/
+    kStatusGroup_SEMA42 = 16,                 /*!< Group number for SEMA42 status code.*/
+    kStatusGroup_SDHC = 17,                   /*!< Group number for SDHC status code */
+    kStatusGroup_SDMMC = 18,                  /*!< Group number for SDMMC status code */
+    kStatusGroup_SAI = 19,                    /*!< Group number for SAI status code */
+    kStatusGroup_MCG = 20,                    /*!< Group number for MCG status codes. */
+    kStatusGroup_SCG = 21,                    /*!< Group number for SCG status codes. */
+    kStatusGroup_SDSPI = 22,                  /*!< Group number for SDSPI status codes. */
+    kStatusGroup_FLEXIO_I2S = 23,             /*!< Group number for FLEXIO I2S status codes */
+    kStatusGroup_FLEXIO_MCULCD = 24,          /*!< Group number for FLEXIO LCD status codes */
+    kStatusGroup_FLASHIAP = 25,               /*!< Group number for FLASHIAP status codes */
+    kStatusGroup_FLEXCOMM_I2C = 26,           /*!< Group number for FLEXCOMM I2C status codes */
+    kStatusGroup_I2S = 27,                    /*!< Group number for I2S status codes */
+    kStatusGroup_IUART = 28,                  /*!< Group number for IUART status codes */
+    kStatusGroup_CSI = 29,                    /*!< Group number for CSI status codes */
+    kStatusGroup_SDRAMC = 35,                 /*!< Group number for SDRAMC status codes. */
+    kStatusGroup_POWER = 39,                  /*!< Group number for POWER status codes. */
+    kStatusGroup_ENET = 40,                   /*!< Group number for ENET status codes. */
+    kStatusGroup_PHY = 41,                    /*!< Group number for PHY status codes. */
+    kStatusGroup_TRGMUX = 42,                 /*!< Group number for TRGMUX status codes. */
+    kStatusGroup_SMARTCARD = 43,              /*!< Group number for SMARTCARD status codes. */
+    kStatusGroup_LMEM = 44,                   /*!< Group number for LMEM status codes. */
+    kStatusGroup_QSPI = 45,                   /*!< Group number for QSPI status codes. */
+    kStatusGroup_DMA = 50,                    /*!< Group number for DMA status codes. */
+    kStatusGroup_EDMA = 51,                   /*!< Group number for EDMA status codes. */
+    kStatusGroup_DMAMGR = 52,                 /*!< Group number for DMAMGR status codes. */
+    kStatusGroup_FLEXCAN = 53,                /*!< Group number for FlexCAN status codes. */
+    kStatusGroup_LTC = 54,                    /*!< Group number for LTC status codes. */
+    kStatusGroup_FLEXIO_CAMERA = 55,          /*!< Group number for FLEXIO CAMERA status codes. */
+    kStatusGroup_LPC_SPI = 56,                /*!< Group number for LPC_SPI status codes. */
+    kStatusGroup_LPC_USART = 57,              /*!< Group number for LPC_USART status codes. */
+    kStatusGroup_DMIC = 58,                   /*!< Group number for DMIC status codes. */
+    kStatusGroup_SDIF = 59,                   /*!< Group number for SDIF status codes.*/
+    kStatusGroup_SPIFI = 60,                  /*!< Group number for SPIFI status codes. */
+    kStatusGroup_OTP = 61,                    /*!< Group number for OTP status codes. */
+    kStatusGroup_MCAN = 62,                   /*!< Group number for MCAN status codes. */
+    kStatusGroup_CAAM = 63,                   /*!< Group number for CAAM status codes. */
+    kStatusGroup_ECSPI = 64,                  /*!< Group number for ECSPI status codes. */
+    kStatusGroup_USDHC = 65,                  /*!< Group number for USDHC status codes.*/
+    kStatusGroup_LPC_I2C = 66,                /*!< Group number for LPC_I2C status codes.*/
+    kStatusGroup_ESAI = 69,                   /*!< Group number for ESAI status codes. */
+    kStatusGroup_FLEXSPI = 70,                /*!< Group number for FLEXSPI status codes. */
+    kStatusGroup_MMDC = 71,                   /*!< Group number for MMDC status codes. */
+    kStatusGroup_MICFIL = 72,                 /*!< Group number for MIC status codes. */
+    kStatusGroup_SDMA = 73,                   /*!< Group number for SDMA status codes. */
+    kStatusGroup_ICS = 74,                    /*!< Group number for ICS status codes. */
+    kStatusGroup_NOTIFIER = 98,               /*!< Group number for NOTIFIER status codes. */
+    kStatusGroup_DebugConsole = 99,           /*!< Group number for debug console status codes. */
+    kStatusGroup_ApplicationRangeStart = 100, /*!< Starting number for application groups. */
+};
+
+/*! @brief Generic status return codes. */
+enum _generic_status
+{
+    kStatus_Success = MAKE_STATUS(kStatusGroup_Generic, 0),
+    kStatus_Fail = MAKE_STATUS(kStatusGroup_Generic, 1),
+    kStatus_ReadOnly = MAKE_STATUS(kStatusGroup_Generic, 2),
+    kStatus_OutOfRange = MAKE_STATUS(kStatusGroup_Generic, 3),
+    kStatus_InvalidArgument = MAKE_STATUS(kStatusGroup_Generic, 4),
+    kStatus_Timeout = MAKE_STATUS(kStatusGroup_Generic, 5),
+    kStatus_NoTransferInProgress = MAKE_STATUS(kStatusGroup_Generic, 6),
+};
+
+/*! @brief Type used for all status and error return values. */
+typedef int32_t status_t;
+
+/*
+ * The fsl_clock.h is included here because it needs MAKE_VERSION/MAKE_STATUS/status_t
+ * defined in previous of this file.
+ */
+#include "fsl_clock.h"
+
+/*
+ * Chip level peripheral reset API, for MCUs that implement peripheral reset control external to a peripheral
+ */
+#if ((defined(FSL_FEATURE_SOC_SYSCON_COUNT) && (FSL_FEATURE_SOC_SYSCON_COUNT > 0)) || \
+     (defined(FSL_FEATURE_SOC_ASYNC_SYSCON_COUNT) && (FSL_FEATURE_SOC_ASYNC_SYSCON_COUNT > 0)))
+#include "fsl_reset.h"
+#endif
+
+/*! @name Min/max macros */
+/* @{ */
+#if !defined(MIN)
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+#if !defined(MAX)
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+/* @} */
+
+/*! @brief Computes the number of elements in an array. */
+#if !defined(ARRAY_SIZE)
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+#endif
+
+/*! @name UINT16_MAX/UINT32_MAX value */
+/* @{ */
+#if !defined(UINT16_MAX)
+#define UINT16_MAX ((uint16_t)-1)
+#endif
+
+#if !defined(UINT32_MAX)
+#define UINT32_MAX ((uint32_t)-1)
+#endif
+/* @} */
+
+/*! @name Timer utilities */
+/* @{ */
+/*! Macro to convert a microsecond period to raw count value */
+#define USEC_TO_COUNT(us, clockFreqInHz) (uint64_t)((uint64_t)us * clockFreqInHz / 1000000U)
+/*! Macro to convert a raw count value to microsecond */
+#define COUNT_TO_USEC(count, clockFreqInHz) (uint64_t)((uint64_t)count * 1000000U / clockFreqInHz)
+
+/*! Macro to convert a millisecond period to raw count value */
+#define MSEC_TO_COUNT(ms, clockFreqInHz) (uint64_t)((uint64_t)ms * clockFreqInHz / 1000U)
+/*! Macro to convert a raw count value to millisecond */
+#define COUNT_TO_MSEC(count, clockFreqInHz) (uint64_t)((uint64_t)count * 1000U / clockFreqInHz)
+/* @} */
+
+/*! @name Alignment variable definition macros */
+/* @{ */
+#if (defined(__ICCARM__))
+/**
+ * Workaround to disable MISRA C message suppress warnings for IAR compiler.
+ * http://supp.iar.com/Support/?note=24725
+ */
+_Pragma("diag_suppress=Pm120")
+#define SDK_PRAGMA(x) _Pragma(#x)
+    _Pragma("diag_error=Pm120")
+/*! Macro to define a variable with alignbytes alignment */
+#define SDK_ALIGN(var, alignbytes) SDK_PRAGMA(data_alignment = alignbytes) var
+/*! Macro to define a variable with L1 d-cache line size alignment */
+#if defined(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE)
+#define SDK_L1DCACHE_ALIGN(var) SDK_PRAGMA(data_alignment = FSL_FEATURE_L1DCACHE_LINESIZE_BYTE) var
+#endif
+/*! Macro to define a variable with L2 cache line size alignment */
+#if defined(FSL_FEATURE_L2CACHE_LINESIZE_BYTE)
+#define SDK_L2CACHE_ALIGN(var) SDK_PRAGMA(data_alignment = FSL_FEATURE_L2CACHE_LINESIZE_BYTE) var
+#endif
+#elif defined(__CC_ARM)
+/*! Macro to define a variable with alignbytes alignment */
+#define SDK_ALIGN(var, alignbytes) __align(alignbytes) var
+/*! Macro to define a variable with L1 d-cache line size alignment */
+#if defined(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE)
+#define SDK_L1DCACHE_ALIGN(var) __align(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE) var
+#endif
+/*! Macro to define a variable with L2 cache line size alignment */
+#if defined(FSL_FEATURE_L2CACHE_LINESIZE_BYTE)
+#define SDK_L2CACHE_ALIGN(var) __align(FSL_FEATURE_L2CACHE_LINESIZE_BYTE) var
+#endif
+#elif defined(__GNUC__)
+/*! Macro to define a variable with alignbytes alignment */
+#define SDK_ALIGN(var, alignbytes) var __attribute__((aligned(alignbytes)))
+/*! Macro to define a variable with L1 d-cache line size alignment */
+#if defined(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE)
+#define SDK_L1DCACHE_ALIGN(var) var __attribute__((aligned(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE)))
+#endif
+/*! Macro to define a variable with L2 cache line size alignment */
+#if defined(FSL_FEATURE_L2CACHE_LINESIZE_BYTE)
+#define SDK_L2CACHE_ALIGN(var) var __attribute__((aligned(FSL_FEATURE_L2CACHE_LINESIZE_BYTE)))
+#endif
+#else
+#error Toolchain not supported
+#define SDK_ALIGN(var, alignbytes) var
+#if defined(FSL_FEATURE_L1DCACHE_LINESIZE_BYTE)
+#define SDK_L1DCACHE_ALIGN(var) var
+#endif
+#if defined(FSL_FEATURE_L2CACHE_LINESIZE_BYTE)
+#define SDK_L2CACHE_ALIGN(var) var
+#endif
+#endif
+
+/*! Macro to change a value to a given size aligned value */
+#define SDK_SIZEALIGN(var, alignbytes) \
+    ((unsigned int)((var) + ((alignbytes)-1)) & (unsigned int)(~(unsigned int)((alignbytes)-1)))
+/* @} */
+
+/*! @name Non-cacheable region definition macros */
+/* @{ */
+#if (defined(__ICCARM__))
+#if defined(FSL_FEATURE_L1ICACHE_LINESIZE_BYTE)
+#define AT_NONCACHEABLE_SECTION(var) var @"NonCacheable"
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) SDK_PRAGMA(data_alignment = alignbytes) var @"NonCacheable"
+#else
+#define AT_NONCACHEABLE_SECTION(var) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) SDK_PRAGMA(data_alignment = alignbytes) var
+#endif
+#elif(defined(__CC_ARM))
+#if defined(FSL_FEATURE_L1ICACHE_LINESIZE_BYTE)
+#define AT_NONCACHEABLE_SECTION(var) __attribute__((section("NonCacheable"))) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) \
+    __attribute__((section("NonCacheable"), zero_init)) __align(alignbytes) var
+#else
+#define AT_NONCACHEABLE_SECTION(var) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) __align(alignbytes) var
+#endif
+#elif(defined(__GNUC__))
+/* For GCC, when the non-cacheable section is required, please define "__STARTUP_INITIALIZE_NONCACHEDATA"
+ * in your projects to make sure the non-cacheable section variables will be initialized in system startup.
+ */
+#if defined(FSL_FEATURE_L1ICACHE_LINESIZE_BYTE)
+#define AT_NONCACHEABLE_SECTION(var) __attribute__((section("NonCacheable"))) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) \
+    __attribute__((section("NonCacheable"))) var __attribute__((aligned(alignbytes)))
+#else
+#define AT_NONCACHEABLE_SECTION(var) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) var __attribute__((aligned(alignbytes)))
+#endif
+#else
+#error Toolchain not supported.
+#define AT_NONCACHEABLE_SECTION(var) var
+#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes) var
+#endif
+/* @} */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*!
+ * @brief Enable specific interrupt.
+ *
+ * Enable LEVEL1 interrupt. For some devices, there might be multiple interrupt
+ * levels. For example, there are NVIC and intmux. Here the interrupts connected
+ * to NVIC are the LEVEL1 interrupts, because they are routed to the core directly.
+ * The interrupts connected to intmux are the LEVEL2 interrupts, they are routed
+ * to NVIC first then routed to core.
+ *
+ * This function only enables the LEVEL1 interrupts. The number of LEVEL1 interrupts
+ * is indicated by the feature macro FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS.
+ *
+ * @param interrupt The IRQ number.
+ * @retval kStatus_Success Interrupt enabled successfully
+ * @retval kStatus_Fail Failed to enable the interrupt
+ */
+static inline status_t EnableIRQ(IRQn_Type interrupt)
+{
+    if (NotAvail_IRQn == interrupt)
+    {
+        return kStatus_Fail;
+    }
+
+#if defined(FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS) && (FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS > 0)
+    if (interrupt >= FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS)
+    {
+        return kStatus_Fail;
+    }
+#endif
+
+#if defined(FSL_FEATURE_SOC_EVENT_COUNT) && (FSL_FEATURE_SOC_EVENT_COUNT > 0)
+    EVENT_UNIT->INTPTEN |= (uint32_t)(1 << interrupt);
+    /* Read back to make sure write finished. */
+    (void)EVENT_UNIT->INTPTEN;
+#else
+#if defined(__GIC_PRIO_BITS)
+    GIC_EnableIRQ(interrupt);
+#else
+    NVIC_EnableIRQ(interrupt);
+#endif
+#endif
+    return kStatus_Success;
+}
+
+/*!
+ * @brief Disable specific interrupt.
+ *
+ * Disable LEVEL1 interrupt. For some devices, there might be multiple interrupt
+ * levels. For example, there are NVIC and intmux. Here the interrupts connected
+ * to NVIC are the LEVEL1 interrupts, because they are routed to the core directly.
+ * The interrupts connected to intmux are the LEVEL2 interrupts, they are routed
+ * to NVIC first then routed to core.
+ *
+ * This function only disables the LEVEL1 interrupts. The number of LEVEL1 interrupts
+ * is indicated by the feature macro FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS.
+ *
+ * @param interrupt The IRQ number.
+ * @retval kStatus_Success Interrupt disabled successfully
+ * @retval kStatus_Fail Failed to disable the interrupt
+ */
+static inline status_t DisableIRQ(IRQn_Type interrupt)
+{
+    if (NotAvail_IRQn == interrupt)
+    {
+        return kStatus_Fail;
+    }
+
+#if defined(FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS) && (FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS > 0)
+    if (interrupt >= FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS)
+    {
+        return kStatus_Fail;
+    }
+#endif
+
+#if defined(FSL_FEATURE_SOC_EVENT_COUNT) && (FSL_FEATURE_SOC_EVENT_COUNT > 0)
+    EVENT_UNIT->INTPTEN &= ~(uint32_t)(1 << interrupt);
+    /* Read back to make sure write finished. */
+    (void)EVENT_UNIT->INTPTEN;
+#else
+#if defined(__GIC_PRIO_BITS)
+    GIC_DisableIRQ(interrupt);
+#else
+    NVIC_DisableIRQ(interrupt);
+#endif
+#endif
+    return kStatus_Success;
+}
+
+/*!
+ * @brief Disable the global IRQ
+ *
+ * Disable the global interrupt and return the current primask register. User is required to provided the primask
+ * register for the EnableGlobalIRQ().
+ *
+ * @return Current primask value.
+ */
+static inline uint32_t DisableGlobalIRQ(void)
+{
+#ifndef __riscv
+#if defined(CPSR_I_Msk)
+    uint32_t cpsr = __get_CPSR() & CPSR_I_Msk;
+
+    __disable_irq();
+
+    return cpsr;
+#else
+    uint32_t regPrimask = __get_PRIMASK();
+
+    __disable_irq();
+
+    return regPrimask;
+#endif
+#else
+    uint32_t mstatus;
+
+    __ASM volatile ("csrrci %0, mstatus, 8" : "=r"(mstatus));
+
+    return mstatus;
+#endif
+}
+
+/*!
+ * @brief Enaable the global IRQ
+ *
+ * Set the primask register with the provided primask value but not just enable the primask. The idea is for the
+ * convinience of integration of RTOS. some RTOS get its own management mechanism of primask. User is required to
+ * use the EnableGlobalIRQ() and DisableGlobalIRQ() in pair.
+ *
+ * @param primask value of primask register to be restored. The primask value is supposed to be provided by the
+ * DisableGlobalIRQ().
+ */
+static inline void EnableGlobalIRQ(uint32_t primask)
+{
+#ifndef __riscv
+#if defined(CPSR_I_Msk)
+    __set_CPSR((__get_CPSR() & ~CPSR_I_Msk) | primask);
+#else
+    __set_PRIMASK(primask);
+#endif
+#else
+    __ASM volatile ("csrw mstatus, %0" : : "r"(primask));
+#endif
+}
+
+/*!
+ * @brief install IRQ handler
+ *
+ * @param irq IRQ number
+ * @param irqHandler IRQ handler address
+ * @return The old IRQ handler address
+ */
+uint32_t InstallIRQHandler(IRQn_Type irq, uint32_t irqHandler);
+
+#if (defined(FSL_FEATURE_SOC_SYSCON_COUNT) && (FSL_FEATURE_SOC_SYSCON_COUNT > 0))
+/*!
+ * @brief Enable specific interrupt for wake-up from deep-sleep mode.
+ *
+ * Enable the interrupt for wake-up from deep sleep mode.
+ * Some interrupts are typically used in sleep mode only and will not occur during
+ * deep-sleep mode because relevant clocks are stopped. However, it is possible to enable
+ * those clocks (significantly increasing power consumption in the reduced power mode),
+ * making these wake-ups possible.
+ *
+ * @note This function also enables the interrupt in the NVIC (EnableIRQ() is called internally).
+ *
+ * @param interrupt The IRQ number.
+ */
+void EnableDeepSleepIRQ(IRQn_Type interrupt);
+
+/*!
+ * @brief Disable specific interrupt for wake-up from deep-sleep mode.
+ *
+ * Disable the interrupt for wake-up from deep sleep mode.
+ * Some interrupts are typically used in sleep mode only and will not occur during
+ * deep-sleep mode because relevant clocks are stopped. However, it is possible to enable
+ * those clocks (significantly increasing power consumption in the reduced power mode),
+ * making these wake-ups possible.
+ *
+ * @note This function also disables the interrupt in the NVIC (DisableIRQ() is called internally).
+ *
+ * @param interrupt The IRQ number.
+ */
+void DisableDeepSleepIRQ(IRQn_Type interrupt);
+#endif /* FSL_FEATURE_SOC_SYSCON_COUNT */
+
+#if defined(__cplusplus)
+}
+#endif
+
+/*! @} */
+
+#endif /* _FSL_COMMON_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.c
new file mode 100644 (file)
index 0000000..1fa8cc4
--- /dev/null
@@ -0,0 +1,196 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "fsl_gpio.h"
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+static PORT_Type *const s_portBases[] = PORT_BASE_PTRS;
+static GPIO_Type *const s_gpioBases[] = GPIO_BASE_PTRS;
+
+#if defined(FSL_FEATURE_SOC_FGPIO_COUNT) && FSL_FEATURE_SOC_FGPIO_COUNT
+
+#if defined(FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL) && FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL
+
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+/*! @brief Array to map FGPIO instance number to clock name. */
+static const clock_ip_name_t s_fgpioClockName[] = FGPIO_CLOCKS;
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+
+#endif /* FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL */
+
+#endif /* FSL_FEATURE_SOC_FGPIO_COUNT */
+
+/*******************************************************************************
+* Prototypes
+******************************************************************************/
+
+/*!
+* @brief Gets the GPIO instance according to the GPIO base
+*
+* @param base    GPIO peripheral base pointer(PTA, PTB, PTC, etc.)
+* @retval GPIO instance
+*/
+static uint32_t GPIO_GetInstance(GPIO_Type *base);
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+
+static uint32_t GPIO_GetInstance(GPIO_Type *base)
+{
+    uint32_t instance;
+
+    /* Find the instance index from base address mappings. */
+    for (instance = 0; instance < ARRAY_SIZE(s_gpioBases); instance++)
+    {
+        if (s_gpioBases[instance] == base)
+        {
+            break;
+        }
+    }
+
+    assert(instance < ARRAY_SIZE(s_gpioBases));
+
+    return instance;
+}
+
+void GPIO_PinInit(GPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config)
+{
+    assert(config);
+
+    if (config->pinDirection == kGPIO_DigitalInput)
+    {
+        base->PDDR &= ~(1U << pin);
+    }
+    else
+    {
+        GPIO_WritePinOutput(base, pin, config->outputLogic);
+        base->PDDR |= (1U << pin);
+    }
+}
+
+uint32_t GPIO_GetPinsInterruptFlags(GPIO_Type *base)
+{
+    uint8_t instance;
+    PORT_Type *portBase;
+    instance = GPIO_GetInstance(base);
+    portBase = s_portBases[instance];
+    return portBase->ISFR;
+}
+
+void GPIO_ClearPinsInterruptFlags(GPIO_Type *base, uint32_t mask)
+{
+    uint8_t instance;
+    PORT_Type *portBase;
+    instance = GPIO_GetInstance(base);
+    portBase = s_portBases[instance];
+    portBase->ISFR = mask;
+}
+
+#if defined(FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER) && FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER
+void GPIO_CheckAttributeBytes(GPIO_Type *base, gpio_checker_attribute_t attribute)
+{
+    base->GACR = ((uint32_t)attribute << GPIO_GACR_ACB0_SHIFT) | ((uint32_t)attribute << GPIO_GACR_ACB1_SHIFT) |
+                 ((uint32_t)attribute << GPIO_GACR_ACB2_SHIFT) | ((uint32_t)attribute << GPIO_GACR_ACB3_SHIFT);
+}
+#endif
+
+#if defined(FSL_FEATURE_SOC_FGPIO_COUNT) && FSL_FEATURE_SOC_FGPIO_COUNT
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+static FGPIO_Type *const s_fgpioBases[] = FGPIO_BASE_PTRS;
+
+/*******************************************************************************
+* Prototypes
+******************************************************************************/
+/*!
+* @brief Gets the FGPIO instance according to the GPIO base
+*
+* @param base    FGPIO peripheral base pointer(PTA, PTB, PTC, etc.)
+* @retval FGPIO instance
+*/
+static uint32_t FGPIO_GetInstance(FGPIO_Type *base);
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+
+static uint32_t FGPIO_GetInstance(FGPIO_Type *base)
+{
+    uint32_t instance;
+
+    /* Find the instance index from base address mappings. */
+    for (instance = 0; instance < ARRAY_SIZE(s_fgpioBases); instance++)
+    {
+        if (s_fgpioBases[instance] == base)
+        {
+            break;
+        }
+    }
+
+    assert(instance < ARRAY_SIZE(s_fgpioBases));
+
+    return instance;
+}
+
+#if defined(FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL) && FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL
+void FGPIO_Init(FGPIO_Type *base)
+{
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+    /* Ungate FGPIO periphral clock */
+    CLOCK_EnableClock(s_fgpioClockName[FGPIO_GetInstance(base)]);
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+}
+#endif /* FSL_FEATURE_PCC_HAS_FGPIO_CLOCK_GATE_CONTROL */
+
+void FGPIO_PinInit(FGPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config)
+{
+    assert(config);
+
+    if (config->pinDirection == kGPIO_DigitalInput)
+    {
+        base->PDDR &= ~(1U << pin);
+    }
+    else
+    {
+        FGPIO_WritePinOutput(base, pin, config->outputLogic);
+        base->PDDR |= (1U << pin);
+    }
+}
+
+uint32_t FGPIO_GetPinsInterruptFlags(FGPIO_Type *base)
+{
+    uint8_t instance;
+    instance = FGPIO_GetInstance(base);
+    PORT_Type *portBase;
+    portBase = s_portBases[instance];
+    return portBase->ISFR;
+}
+
+void FGPIO_ClearPinsInterruptFlags(FGPIO_Type *base, uint32_t mask)
+{
+    uint8_t instance;
+    instance = FGPIO_GetInstance(base);
+    PORT_Type *portBase;
+    portBase = s_portBases[instance];
+    portBase->ISFR = mask;
+}
+
+#if defined(FSL_FEATURE_FGPIO_HAS_ATTRIBUTE_CHECKER) && FSL_FEATURE_FGPIO_HAS_ATTRIBUTE_CHECKER
+void FGPIO_CheckAttributeBytes(FGPIO_Type *base, gpio_checker_attribute_t attribute)
+{
+    base->GACR = (attribute << FGPIO_GACR_ACB0_SHIFT) | (attribute << FGPIO_GACR_ACB1_SHIFT) |
+                 (attribute << FGPIO_GACR_ACB2_SHIFT) | (attribute << FGPIO_GACR_ACB3_SHIFT);
+}
+#endif
+
+#endif /* FSL_FEATURE_SOC_FGPIO_COUNT */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.h
new file mode 100644 (file)
index 0000000..8fc17c7
--- /dev/null
@@ -0,0 +1,427 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#ifndef _FSL_GPIO_H_
+#define _FSL_GPIO_H_
+
+#include "fsl_common.h"
+
+/*!
+ * @addtogroup gpio
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @name Driver version */
+/*@{*/
+/*! @brief GPIO driver version 2.2.0. */
+#define FSL_GPIO_DRIVER_VERSION (MAKE_VERSION(2, 2, 0))
+/*@}*/
+
+/*! @brief GPIO direction definition */
+typedef enum _gpio_pin_direction
+{
+    kGPIO_DigitalInput = 0U,  /*!< Set current pin as digital input*/
+    kGPIO_DigitalOutput = 1U, /*!< Set current pin as digital output*/
+} gpio_pin_direction_t;
+
+#if defined(FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER) && FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER
+/*! @brief GPIO checker attribute */
+typedef enum _gpio_checker_attribute
+{
+    kGPIO_UsernonsecureRWUsersecureRWPrivilegedsecureRW =
+        0x00U, /*!< User nonsecure:Read+Write; User Secure:Read+Write; Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureRUsersecureRWPrivilegedsecureRW =
+        0x01U, /*!< User nonsecure:Read;       User Secure:Read+Write; Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureNUsersecureRWPrivilegedsecureRW =
+        0x02U, /*!< User nonsecure:None;       User Secure:Read+Write; Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureRUsersecureRPrivilegedsecureRW =
+        0x03U, /*!< User nonsecure:Read;       User Secure:Read;       Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureNUsersecureRPrivilegedsecureRW =
+        0x04U, /*!< User nonsecure:None;       User Secure:Read;       Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureNUsersecureNPrivilegedsecureRW =
+        0x05U, /*!< User nonsecure:None;       User Secure:None;       Privileged Secure:Read+Write */
+    kGPIO_UsernonsecureNUsersecureNPrivilegedsecureR =
+        0x06U, /*!< User nonsecure:None;       User Secure:None;       Privileged Secure:Read */
+    kGPIO_UsernonsecureNUsersecureNPrivilegedsecureN =
+        0x07U, /*!< User nonsecure:None;       User Secure:None;       Privileged Secure:None */
+    kGPIO_IgnoreAttributeCheck = 0x80U, /*!< Ignores the attribute check */
+} gpio_checker_attribute_t;
+#endif
+
+/*!
+ * @brief The GPIO pin configuration structure.
+ *
+ * Each pin can only be configured as either an output pin or an input pin at a time.
+ * If configured as an input pin, leave the outputConfig unused.
+ * Note that in some use cases, the corresponding port property should be configured in advance
+ *        with the PORT_SetPinConfig().
+ */
+typedef struct _gpio_pin_config
+{
+    gpio_pin_direction_t pinDirection; /*!< GPIO direction, input or output */
+    /* Output configurations; ignore if configured as an input pin */
+    uint8_t outputLogic; /*!< Set a default output logic, which has no use in input */
+} gpio_pin_config_t;
+
+/*! @} */
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/*!
+ * @addtogroup gpio_driver
+ * @{
+ */
+
+/*! @name GPIO Configuration */
+/*@{*/
+
+/*!
+ * @brief Initializes a GPIO pin used by the board.
+ *
+ * To initialize the GPIO, define a pin configuration, as either input or output, in the user file.
+ * Then, call the GPIO_PinInit() function.
+ *
+ * This is an example to define an input pin or an output pin configuration.
+ * @code
+ * // Define a digital input pin configuration,
+ * gpio_pin_config_t config =
+ * {
+ *   kGPIO_DigitalInput,
+ *   0,
+ * }
+ * //Define a digital output pin configuration,
+ * gpio_pin_config_t config =
+ * {
+ *   kGPIO_DigitalOutput,
+ *   0,
+ * }
+ * @endcode
+ *
+ * @param base   GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param pin    GPIO port pin number
+ * @param config GPIO pin configuration pointer
+ */
+void GPIO_PinInit(GPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config);
+
+/*@}*/
+
+/*! @name GPIO Output Operations */
+/*@{*/
+
+/*!
+ * @brief Sets the output level of the multiple GPIO pins to the logic 1 or 0.
+ *
+ * @param base    GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param pin     GPIO pin number
+ * @param output  GPIO pin output logic level.
+ *        - 0: corresponding pin output low-logic level.
+ *        - 1: corresponding pin output high-logic level.
+ */
+static inline void GPIO_WritePinOutput(GPIO_Type *base, uint32_t pin, uint8_t output)
+{
+    if (output == 0U)
+    {
+        base->PCOR = 1U << pin;
+    }
+    else
+    {
+        base->PSOR = 1U << pin;
+    }
+}
+
+/*!
+ * @brief Sets the output level of the multiple GPIO pins to the logic 1.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param mask GPIO pin number macro
+ */
+static inline void GPIO_SetPinsOutput(GPIO_Type *base, uint32_t mask)
+{
+    base->PSOR = mask;
+}
+
+/*!
+ * @brief Sets the output level of the multiple GPIO pins to the logic 0.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param mask GPIO pin number macro
+ */
+static inline void GPIO_ClearPinsOutput(GPIO_Type *base, uint32_t mask)
+{
+    base->PCOR = mask;
+}
+
+/*!
+ * @brief Reverses the current output logic of the multiple GPIO pins.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param mask GPIO pin number macro
+ */
+static inline void GPIO_TogglePinsOutput(GPIO_Type *base, uint32_t mask)
+{
+    base->PTOR = mask;
+}
+/*@}*/
+
+/*! @name GPIO Input Operations */
+/*@{*/
+
+/*!
+ * @brief Reads the current input value of the GPIO port.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param pin     GPIO pin number
+ * @retval GPIO port input value
+ *        - 0: corresponding pin input low-logic level.
+ *        - 1: corresponding pin input high-logic level.
+ */
+static inline uint32_t GPIO_ReadPinInput(GPIO_Type *base, uint32_t pin)
+{
+    return (((base->PDIR) >> pin) & 0x01U);
+}
+/*@}*/
+
+/*! @name GPIO Interrupt */
+/*@{*/
+
+/*!
+ * @brief Reads the GPIO port interrupt status flag.
+ *
+ * If a pin is configured to generate the DMA request, the corresponding flag
+ * is cleared automatically at the completion of the requested DMA transfer.
+ * Otherwise, the flag remains set until a logic one is written to that flag.
+ * If configured for a level sensitive interrupt that remains asserted, the flag
+ * is set again immediately.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @retval The current GPIO port interrupt status flag, for example, 0x00010001 means the
+ *         pin 0 and 17 have the interrupt.
+ */
+uint32_t GPIO_GetPinsInterruptFlags(GPIO_Type *base);
+
+/*!
+ * @brief Clears multiple GPIO pin interrupt status flags.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param mask GPIO pin number macro
+ */
+void GPIO_ClearPinsInterruptFlags(GPIO_Type *base, uint32_t mask);
+
+#if defined(FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER) && FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER
+/*!
+ * @brief The GPIO module supports a device-specific number of data ports, organized as 32-bit
+ * words. Each 32-bit data port includes a GACR register, which defines the byte-level
+ * attributes required for a successful access to the GPIO programming model. The attribute controls for the 4 data
+ * bytes in the GACR follow a standard little endian
+ * data convention.
+ *
+ * @param base GPIO peripheral base pointer (GPIOA, GPIOB, GPIOC, and so on.)
+ * @param mask GPIO pin number macro
+ */
+void GPIO_CheckAttributeBytes(GPIO_Type *base, gpio_checker_attribute_t attribute);
+#endif
+
+/*@}*/
+/*! @} */
+
+/*!
+ * @addtogroup fgpio_driver
+ * @{
+ */
+
+/*
+ * Introduces the FGPIO feature.
+ *
+ * The FGPIO features are only support on some Kinetis MCUs. The FGPIO registers are aliased to the IOPORT
+ * interface. Accesses via the IOPORT interface occur in parallel with any instruction fetches and
+ * complete in a single cycle. This aliased Fast GPIO memory map is called FGPIO.
+ */
+
+#if defined(FSL_FEATURE_SOC_FGPIO_COUNT) && FSL_FEATURE_SOC_FGPIO_COUNT
+
+/*! @name FGPIO Configuration */
+/*@{*/
+
+/*!
+ * @brief Initializes the FGPIO peripheral.
+ *
+ * This function ungates the FGPIO clock.
+ *
+ * @param base   FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ */
+ void FGPIO_Init(FGPIO_Type *base);
+
+/*!
+ * @brief Initializes a FGPIO pin used by the board.
+ *
+ * To initialize the FGPIO driver, define a pin configuration, as either input or output, in the user file.
+ * Then, call the FGPIO_PinInit() function.
+ *
+ * This is an example to define an input pin or an output pin configuration:
+ * @code
+ * // Define a digital input pin configuration,
+ * gpio_pin_config_t config =
+ * {
+ *   kGPIO_DigitalInput,
+ *   0,
+ * }
+ * //Define a digital output pin configuration,
+ * gpio_pin_config_t config =
+ * {
+ *   kGPIO_DigitalOutput,
+ *   0,
+ * }
+ * @endcode
+ *
+ * @param base   FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param pin    FGPIO port pin number
+ * @param config FGPIO pin configuration pointer
+ */
+void FGPIO_PinInit(FGPIO_Type *base, uint32_t pin, const gpio_pin_config_t *config);
+
+/*@}*/
+
+/*! @name FGPIO Output Operations */
+/*@{*/
+
+/*!
+ * @brief Sets the output level of the multiple FGPIO pins to the logic 1 or 0.
+ *
+ * @param base    FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param pin     FGPIO pin number
+ * @param output  FGPIOpin output logic level.
+ *        - 0: corresponding pin output low-logic level.
+ *        - 1: corresponding pin output high-logic level.
+ */
+static inline void FGPIO_WritePinOutput(FGPIO_Type *base, uint32_t pin, uint8_t output)
+{
+    if (output == 0U)
+    {
+        base->PCOR = 1 << pin;
+    }
+    else
+    {
+        base->PSOR = 1 << pin;
+    }
+}
+
+/*!
+ * @brief Sets the output level of the multiple FGPIO pins to the logic 1.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param mask FGPIO pin number macro
+ */
+static inline void FGPIO_SetPinsOutput(FGPIO_Type *base, uint32_t mask)
+{
+    base->PSOR = mask;
+}
+
+/*!
+ * @brief Sets the output level of the multiple FGPIO pins to the logic 0.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param mask FGPIO pin number macro
+ */
+static inline void FGPIO_ClearPinsOutput(FGPIO_Type *base, uint32_t mask)
+{
+    base->PCOR = mask;
+}
+
+/*!
+ * @brief Reverses the current output logic of the multiple FGPIO pins.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param mask FGPIO pin number macro
+ */
+static inline void FGPIO_TogglePinsOutput(FGPIO_Type *base, uint32_t mask)
+{
+    base->PTOR = mask;
+}
+/*@}*/
+
+/*! @name FGPIO Input Operations */
+/*@{*/
+
+/*!
+ * @brief Reads the current input value of the FGPIO port.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param pin  FGPIO pin number
+ * @retval FGPIO port input value
+ *        - 0: corresponding pin input low-logic level.
+ *        - 1: corresponding pin input high-logic level.
+ */
+static inline uint32_t FGPIO_ReadPinInput(FGPIO_Type *base, uint32_t pin)
+{
+    return (((base->PDIR) >> pin) & 0x01U);
+}
+/*@}*/
+
+/*! @name FGPIO Interrupt */
+/*@{*/
+
+/*!
+ * @brief Reads the FGPIO port interrupt status flag.
+ *
+ * If a pin is configured to generate the DMA request, the corresponding flag
+ * is cleared automatically at the completion of the requested DMA transfer.
+ * Otherwise, the flag remains set until a logic one is written to that flag.
+ * If configured for a level-sensitive interrupt that remains asserted, the flag
+ * is set again immediately.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @retval The current FGPIO port interrupt status flags, for example, 0x00010001 means the
+ *         pin 0 and 17 have the interrupt.
+ */
+uint32_t FGPIO_GetPinsInterruptFlags(FGPIO_Type *base);
+
+/*!
+ * @brief Clears the multiple FGPIO pin interrupt status flag.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param mask FGPIO pin number macro
+ */
+void FGPIO_ClearPinsInterruptFlags(FGPIO_Type *base, uint32_t mask);
+
+#if defined(FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER) && FSL_FEATURE_GPIO_HAS_ATTRIBUTE_CHECKER
+/*!
+ * @brief The FGPIO module supports a device-specific number of data ports, organized as 32-bit
+ * words. Each 32-bit data port includes a GACR register, which defines the byte-level
+ * attributes required for a successful access to the GPIO programming model. The attribute controls for the 4 data
+ * bytes in the GACR follow a standard little endian
+ * data convention.
+ *
+ * @param base FGPIO peripheral base pointer (FGPIOA, FGPIOB, FGPIOC, and so on.)
+ * @param mask FGPIO pin number macro
+ */
+void FGPIO_CheckAttributeBytes(FGPIO_Type *base, gpio_checker_attribute_t attribute);
+#endif
+
+/*@}*/
+
+#endif /* FSL_FEATURE_SOC_FGPIO_COUNT */
+
+#if defined(__cplusplus)
+}
+#endif
+
+/*!
+ * @}
+ */
+
+#endif /* _FSL_GPIO_H_*/
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.c
new file mode 100644 (file)
index 0000000..c65a934
--- /dev/null
@@ -0,0 +1,1459 @@
+/*
+ * Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "fsl_lpuart.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/* LPUART transfer state. */
+enum _lpuart_transfer_states
+{
+    kLPUART_TxIdle, /*!< TX idle. */
+    kLPUART_TxBusy, /*!< TX busy. */
+    kLPUART_RxIdle, /*!< RX idle. */
+    kLPUART_RxBusy  /*!< RX busy. */
+};
+
+/* Typedef for interrupt handler. */
+typedef void (*lpuart_isr_t)(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+/*!
+ * @brief Get the LPUART instance from peripheral base address.
+ *
+ * @param base LPUART peripheral base address.
+ * @return LPUART instance.
+ */
+uint32_t LPUART_GetInstance(LPUART_Type *base);
+
+/*!
+ * @brief Get the length of received data in RX ring buffer.
+ *
+ * @userData handle LPUART handle pointer.
+ * @return Length of received data in RX ring buffer.
+ */
+static size_t LPUART_TransferGetRxRingBufferLength(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief Check whether the RX ring buffer is full.
+ *
+ * @userData handle LPUART handle pointer.
+ * @retval true  RX ring buffer is full.
+ * @retval false RX ring buffer is not full.
+ */
+static bool LPUART_TransferIsRxRingBufferFull(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief Write to TX register using non-blocking method.
+ *
+ * This function writes data to the TX register directly, upper layer must make
+ * sure the TX register is empty or TX FIFO has empty room before calling this function.
+ *
+ * @note This function does not check whether all the data has been sent out to bus,
+ * so before disable TX, check kLPUART_TransmissionCompleteFlag to ensure the TX is
+ * finished.
+ *
+ * @param base LPUART peripheral base address.
+ * @param data Start addresss of the data to write.
+ * @param length Size of the buffer to be sent.
+ */
+static void LPUART_WriteNonBlocking(LPUART_Type *base, const uint8_t *data, size_t length);
+
+/*!
+ * @brief Read RX register using non-blocking method.
+ *
+ * This function reads data from the TX register directly, upper layer must make
+ * sure the RX register is full or TX FIFO has data before calling this function.
+ *
+ * @param base LPUART peripheral base address.
+ * @param data Start addresss of the buffer to store the received data.
+ * @param length Size of the buffer.
+ */
+static void LPUART_ReadNonBlocking(LPUART_Type *base, uint8_t *data, size_t length);
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+/* Array of LPUART handle. */
+static lpuart_handle_t *s_lpuartHandle[FSL_FEATURE_SOC_LPUART_COUNT];
+/* Array of LPUART peripheral base address. */
+static LPUART_Type *const s_lpuartBases[] = LPUART_BASE_PTRS;
+/* Array of LPUART IRQ number. */
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+static const IRQn_Type s_lpuartRxIRQ[] = LPUART_RX_IRQS;
+static const IRQn_Type s_lpuartTxIRQ[] = LPUART_TX_IRQS;
+#else
+static const IRQn_Type s_lpuartIRQ[] = LPUART_RX_TX_IRQS;
+#endif
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+/* Array of LPUART clock name. */
+static const clock_ip_name_t s_lpuartClock[] = LPUART_CLOCKS;
+
+#if defined(LPUART_PERIPH_CLOCKS)
+/* Array of LPUART functional clock name. */
+static const clock_ip_name_t s_lpuartPeriphClocks[] = LPUART_PERIPH_CLOCKS;
+#endif
+
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+
+/* LPUART ISR for transactional APIs. */
+static lpuart_isr_t s_lpuartIsr;
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+uint32_t LPUART_GetInstance(LPUART_Type *base)
+{
+    uint32_t instance;
+
+    /* Find the instance index from base address mappings. */
+    for (instance = 0; instance < ARRAY_SIZE(s_lpuartBases); instance++)
+    {
+        if (s_lpuartBases[instance] == base)
+        {
+            break;
+        }
+    }
+
+    assert(instance < ARRAY_SIZE(s_lpuartBases));
+
+    return instance;
+}
+
+static size_t LPUART_TransferGetRxRingBufferLength(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    size_t size;
+
+    if (handle->rxRingBufferTail > handle->rxRingBufferHead)
+    {
+        size = (size_t)(handle->rxRingBufferHead + handle->rxRingBufferSize - handle->rxRingBufferTail);
+    }
+    else
+    {
+        size = (size_t)(handle->rxRingBufferHead - handle->rxRingBufferTail);
+    }
+
+    return size;
+}
+
+static bool LPUART_TransferIsRxRingBufferFull(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    bool full;
+
+    if (LPUART_TransferGetRxRingBufferLength(base, handle) == (handle->rxRingBufferSize - 1U))
+    {
+        full = true;
+    }
+    else
+    {
+        full = false;
+    }
+    return full;
+}
+
+static void LPUART_WriteNonBlocking(LPUART_Type *base, const uint8_t *data, size_t length)
+{
+    assert(data);
+
+    size_t i;
+
+    /* The Non Blocking write data API assume user have ensured there is enough space in
+    peripheral to write. */
+    for (i = 0; i < length; i++)
+    {
+        base->DATA = data[i];
+    }
+}
+
+static void LPUART_ReadNonBlocking(LPUART_Type *base, uint8_t *data, size_t length)
+{
+    assert(data);
+
+    size_t i;
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    uint32_t ctrl = base->CTRL;
+    bool isSevenDataBits =
+        ((ctrl & LPUART_CTRL_M7_MASK) ||
+         ((!(ctrl & LPUART_CTRL_M7_MASK)) && (!(ctrl & LPUART_CTRL_M_MASK)) && (ctrl & LPUART_CTRL_PE_MASK)));
+#endif
+
+    /* The Non Blocking read data API assume user have ensured there is enough space in
+    peripheral to write. */
+    for (i = 0; i < length; i++)
+    {
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+        if (isSevenDataBits)
+        {
+            data[i] = (base->DATA & 0x7F);
+        }
+        else
+        {
+            data[i] = base->DATA;
+        }
+#else
+        data[i] = base->DATA;
+#endif
+    }
+}
+
+status_t LPUART_Init(LPUART_Type *base, const lpuart_config_t *config, uint32_t srcClock_Hz)
+{
+    assert(config);
+    assert(config->baudRate_Bps);
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    assert(FSL_FEATURE_LPUART_FIFO_SIZEn(base) >= config->txFifoWatermark);
+    assert(FSL_FEATURE_LPUART_FIFO_SIZEn(base) >= config->rxFifoWatermark);
+#endif
+
+    uint32_t temp;
+    uint16_t sbr, sbrTemp;
+    uint32_t osr, osrTemp, tempDiff, calculatedBaud, baudDiff;
+
+    /* This LPUART instantiation uses a slightly different baud rate calculation
+     * The idea is to use the best OSR (over-sampling rate) possible
+     * Note, OSR is typically hard-set to 16 in other LPUART instantiations
+     * loop to find the best OSR value possible, one that generates minimum baudDiff
+     * iterate through the rest of the supported values of OSR */
+
+    baudDiff = config->baudRate_Bps;
+    osr = 0;
+    sbr = 0;
+    for (osrTemp = 4; osrTemp <= 32; osrTemp++)
+    {
+        /* calculate the temporary sbr value   */
+        sbrTemp = (srcClock_Hz / (config->baudRate_Bps * osrTemp));
+        /*set sbrTemp to 1 if the sourceClockInHz can not satisfy the desired baud rate*/
+        if (sbrTemp == 0)
+        {
+            sbrTemp = 1;
+        }
+        /* Calculate the baud rate based on the temporary OSR and SBR values */
+        calculatedBaud = (srcClock_Hz / (osrTemp * sbrTemp));
+
+        tempDiff = calculatedBaud - config->baudRate_Bps;
+
+        /* Select the better value between srb and (sbr + 1) */
+        if (tempDiff > (config->baudRate_Bps - (srcClock_Hz / (osrTemp * (sbrTemp + 1)))))
+        {
+            tempDiff = config->baudRate_Bps - (srcClock_Hz / (osrTemp * (sbrTemp + 1)));
+            sbrTemp++;
+        }
+
+        if (tempDiff <= baudDiff)
+        {
+            baudDiff = tempDiff;
+            osr = osrTemp; /* update and store the best OSR value calculated */
+            sbr = sbrTemp; /* update store the best SBR value calculated */
+        }
+    }
+
+    /* Check to see if actual baud rate is within 3% of desired baud rate
+     * based on the best calculate OSR value */
+    if (baudDiff > ((config->baudRate_Bps / 100) * 3))
+    {
+        /* Unacceptable baud rate difference of more than 3%*/
+        return kStatus_LPUART_BaudrateNotSupport;
+    }
+
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+
+    uint32_t instance = LPUART_GetInstance(base);
+
+    /* Enable lpuart clock */
+    CLOCK_EnableClock(s_lpuartClock[instance]);
+#if defined(LPUART_PERIPH_CLOCKS)
+    CLOCK_EnableClock(s_lpuartPeriphClocks[instance]);
+#endif
+
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+
+#if defined(FSL_FEATURE_LPUART_HAS_GLOBAL) && FSL_FEATURE_LPUART_HAS_GLOBAL
+    /*Reset all internal logic and registers, except the Global Register */
+    LPUART_SoftwareReset(base);
+#else
+    /* Disable LPUART TX RX before setting. */
+    base->CTRL &= ~(LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK);
+#endif
+
+    temp = base->BAUD;
+
+    /* Acceptable baud rate, check if OSR is between 4x and 7x oversampling.
+     * If so, then "BOTHEDGE" sampling must be turned on */
+    if ((osr > 3) && (osr < 8))
+    {
+        temp |= LPUART_BAUD_BOTHEDGE_MASK;
+    }
+
+    /* program the osr value (bit value is one less than actual value) */
+    temp &= ~LPUART_BAUD_OSR_MASK;
+    temp |= LPUART_BAUD_OSR(osr - 1);
+
+    /* write the sbr value to the BAUD registers */
+    temp &= ~LPUART_BAUD_SBR_MASK;
+    base->BAUD = temp | LPUART_BAUD_SBR(sbr);
+
+    /* Set bit count and parity mode. */
+    base->BAUD &= ~LPUART_BAUD_M10_MASK;
+
+    temp = base->CTRL &
+           ~(LPUART_CTRL_PE_MASK | LPUART_CTRL_PT_MASK | LPUART_CTRL_M_MASK | LPUART_CTRL_ILT_MASK |
+             LPUART_CTRL_IDLECFG_MASK);
+
+    temp |=
+        (uint8_t)config->parityMode | LPUART_CTRL_IDLECFG(config->rxIdleConfig) | LPUART_CTRL_ILT(config->rxIdleType);
+
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    if (kLPUART_SevenDataBits == config->dataBitsCount)
+    {
+        if (kLPUART_ParityDisabled != config->parityMode)
+        {
+            temp &= ~LPUART_CTRL_M7_MASK; /* Seven data bits and one parity bit */
+        }
+        else
+        {
+            temp |= LPUART_CTRL_M7_MASK;
+        }
+    }
+    else
+#endif
+    {
+        if (kLPUART_ParityDisabled != config->parityMode)
+        {
+            temp |= LPUART_CTRL_M_MASK; /* Eight data bits and one parity bit */
+        }
+    }
+
+    base->CTRL = temp;
+
+#if defined(FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT) && FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT
+    /* set stop bit per char */
+    temp = base->BAUD & ~LPUART_BAUD_SBNS_MASK;
+    base->BAUD = temp | LPUART_BAUD_SBNS((uint8_t)config->stopBitCount);
+#endif
+
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    /* Set tx/rx WATER watermark
+       Note:
+       Take care of the RX FIFO, RX interrupt request only assert when received bytes
+       equal or more than RX water mark, there is potential issue if RX water
+       mark larger than 1.
+       For example, if RX FIFO water mark is 2, upper layer needs 5 bytes and
+       5 bytes are received. the last byte will be saved in FIFO but not trigger
+       RX interrupt because the water mark is 2.
+     */
+    base->WATER = (((uint32_t)(config->rxFifoWatermark) << 16) | config->txFifoWatermark);
+
+    /* Enable tx/rx FIFO */
+    base->FIFO |= (LPUART_FIFO_TXFE_MASK | LPUART_FIFO_RXFE_MASK);
+
+    /* Flush FIFO */
+    base->FIFO |= (LPUART_FIFO_TXFLUSH_MASK | LPUART_FIFO_RXFLUSH_MASK);
+#endif
+
+    /* Clear all status flags */
+    temp = (LPUART_STAT_RXEDGIF_MASK | LPUART_STAT_IDLE_MASK | LPUART_STAT_OR_MASK | LPUART_STAT_NF_MASK |
+            LPUART_STAT_FE_MASK | LPUART_STAT_PF_MASK);
+
+#if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT
+    temp |= LPUART_STAT_LBKDIF_MASK;
+#endif
+
+#if defined(FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING) && FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING
+    temp |= (LPUART_STAT_MA1F_MASK | LPUART_STAT_MA2F_MASK);
+#endif
+
+#if defined(FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT) && FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT
+    /* Set the CTS configuration/TX CTS source. */
+    base->MODIR |= LPUART_MODIR_TXCTSC(config->txCtsConfig) | LPUART_MODIR_TXCTSSRC(config->txCtsSource);
+    if (config->enableRxRTS)
+    {
+        /* Enable the receiver RTS(request-to-send) function. */
+        base->MODIR |= LPUART_MODIR_RXRTSE_MASK;
+    }
+    if (config->enableTxCTS)
+    {
+        /* Enable the CTS(clear-to-send) function. */
+        base->MODIR |= LPUART_MODIR_TXCTSE_MASK;
+    }
+#endif
+
+    /* Set data bits order. */
+    if (config->isMsb)
+    {
+        temp |= LPUART_STAT_MSBF_MASK;
+    }
+    else
+    {
+        temp &= ~LPUART_STAT_MSBF_MASK;
+    }
+
+    base->STAT |= temp;
+
+    /* Enable TX/RX base on configure structure. */
+    temp = base->CTRL;
+    if (config->enableTx)
+    {
+        temp |= LPUART_CTRL_TE_MASK;
+    }
+
+    if (config->enableRx)
+    {
+        temp |= LPUART_CTRL_RE_MASK;
+    }
+
+    base->CTRL = temp;
+
+    return kStatus_Success;
+}
+void LPUART_Deinit(LPUART_Type *base)
+{
+    uint32_t temp;
+
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    /* Wait tx FIFO send out*/
+    while (0 != ((base->WATER & LPUART_WATER_TXCOUNT_MASK) >> LPUART_WATER_TXWATER_SHIFT))
+    {
+    }
+#endif
+    /* Wait last char shoft out */
+    while (0 == (base->STAT & LPUART_STAT_TC_MASK))
+    {
+    }
+
+    /* Clear all status flags */
+    temp = (LPUART_STAT_RXEDGIF_MASK | LPUART_STAT_IDLE_MASK | LPUART_STAT_OR_MASK | LPUART_STAT_NF_MASK |
+            LPUART_STAT_FE_MASK | LPUART_STAT_PF_MASK);
+
+#if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT
+    temp |= LPUART_STAT_LBKDIF_MASK;
+#endif
+
+#if defined(FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING) && FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING
+    temp |= (LPUART_STAT_MA1F_MASK | LPUART_STAT_MA2F_MASK);
+#endif
+
+    base->STAT |= temp;
+
+    /* Disable the module. */
+    base->CTRL = 0;
+
+#if !(defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL)
+    uint32_t instance = LPUART_GetInstance(base);
+
+    /* Disable lpuart clock */
+    CLOCK_DisableClock(s_lpuartClock[instance]);
+
+#if defined(LPUART_PERIPH_CLOCKS)
+    CLOCK_DisableClock(s_lpuartPeriphClocks[instance]);
+#endif
+
+#endif /* FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL */
+}
+
+void LPUART_GetDefaultConfig(lpuart_config_t *config)
+{
+    assert(config);
+
+    config->baudRate_Bps = 115200U;
+    config->parityMode = kLPUART_ParityDisabled;
+    config->dataBitsCount = kLPUART_EightDataBits;
+    config->isMsb = false;
+#if defined(FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT) && FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT
+    config->stopBitCount = kLPUART_OneStopBit;
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    config->txFifoWatermark = 0;
+    config->rxFifoWatermark = 0;
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT) && FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT
+    config->enableRxRTS = false;
+    config->enableTxCTS = false;
+    config->txCtsConfig = kLPUART_CtsSampleAtStart;
+    config->txCtsSource = kLPUART_CtsSourcePin;
+#endif
+    config->rxIdleType = kLPUART_IdleTypeStartBit;
+    config->rxIdleConfig = kLPUART_IdleCharacter1;
+    config->enableTx = false;
+    config->enableRx = false;
+}
+
+status_t LPUART_SetBaudRate(LPUART_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz)
+{
+    assert(baudRate_Bps);
+
+    uint32_t temp, oldCtrl;
+    uint16_t sbr, sbrTemp;
+    uint32_t osr, osrTemp, tempDiff, calculatedBaud, baudDiff;
+
+    /* This LPUART instantiation uses a slightly different baud rate calculation
+     * The idea is to use the best OSR (over-sampling rate) possible
+     * Note, OSR is typically hard-set to 16 in other LPUART instantiations
+     * loop to find the best OSR value possible, one that generates minimum baudDiff
+     * iterate through the rest of the supported values of OSR */
+
+    baudDiff = baudRate_Bps;
+    osr = 0;
+    sbr = 0;
+    for (osrTemp = 4; osrTemp <= 32; osrTemp++)
+    {
+        /* calculate the temporary sbr value   */
+        sbrTemp = (srcClock_Hz / (baudRate_Bps * osrTemp));
+        /*set sbrTemp to 1 if the sourceClockInHz can not satisfy the desired baud rate*/
+        if (sbrTemp == 0)
+        {
+            sbrTemp = 1;
+        }
+        /* Calculate the baud rate based on the temporary OSR and SBR values */
+        calculatedBaud = (srcClock_Hz / (osrTemp * sbrTemp));
+
+        tempDiff = calculatedBaud - baudRate_Bps;
+
+        /* Select the better value between srb and (sbr + 1) */
+        if (tempDiff > (baudRate_Bps - (srcClock_Hz / (osrTemp * (sbrTemp + 1)))))
+        {
+            tempDiff = baudRate_Bps - (srcClock_Hz / (osrTemp * (sbrTemp + 1)));
+            sbrTemp++;
+        }
+
+        if (tempDiff <= baudDiff)
+        {
+            baudDiff = tempDiff;
+            osr = osrTemp; /* update and store the best OSR value calculated */
+            sbr = sbrTemp; /* update store the best SBR value calculated */
+        }
+    }
+
+    /* Check to see if actual baud rate is within 3% of desired baud rate
+     * based on the best calculate OSR value */
+    if (baudDiff < ((baudRate_Bps / 100) * 3))
+    {
+        /* Store CTRL before disable Tx and Rx */
+        oldCtrl = base->CTRL;
+
+        /* Disable LPUART TX RX before setting. */
+        base->CTRL &= ~(LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK);
+
+        temp = base->BAUD;
+
+        /* Acceptable baud rate, check if OSR is between 4x and 7x oversampling.
+         * If so, then "BOTHEDGE" sampling must be turned on */
+        if ((osr > 3) && (osr < 8))
+        {
+            temp |= LPUART_BAUD_BOTHEDGE_MASK;
+        }
+
+        /* program the osr value (bit value is one less than actual value) */
+        temp &= ~LPUART_BAUD_OSR_MASK;
+        temp |= LPUART_BAUD_OSR(osr - 1);
+
+        /* write the sbr value to the BAUD registers */
+        temp &= ~LPUART_BAUD_SBR_MASK;
+        base->BAUD = temp | LPUART_BAUD_SBR(sbr);
+
+        /* Restore CTRL. */
+        base->CTRL = oldCtrl;
+
+        return kStatus_Success;
+    }
+    else
+    {
+        /* Unacceptable baud rate difference of more than 3%*/
+        return kStatus_LPUART_BaudrateNotSupport;
+    }
+}
+
+void LPUART_EnableInterrupts(LPUART_Type *base, uint32_t mask)
+{
+    base->BAUD |= ((mask << 8) & (LPUART_BAUD_LBKDIE_MASK | LPUART_BAUD_RXEDGIE_MASK));
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    base->FIFO = (base->FIFO & ~(LPUART_FIFO_TXOF_MASK | LPUART_FIFO_RXUF_MASK)) |
+                 ((mask << 8) & (LPUART_FIFO_TXOFE_MASK | LPUART_FIFO_RXUFE_MASK));
+#endif
+    mask &= 0xFFFFFF00U;
+    base->CTRL |= mask;
+}
+
+void LPUART_DisableInterrupts(LPUART_Type *base, uint32_t mask)
+{
+    base->BAUD &= ~((mask << 8) & (LPUART_BAUD_LBKDIE_MASK | LPUART_BAUD_RXEDGIE_MASK));
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    base->FIFO = (base->FIFO & ~(LPUART_FIFO_TXOF_MASK | LPUART_FIFO_RXUF_MASK)) &
+                 ~((mask << 8) & (LPUART_FIFO_TXOFE_MASK | LPUART_FIFO_RXUFE_MASK));
+#endif
+    mask &= 0xFFFFFF00U;
+    base->CTRL &= ~mask;
+}
+
+uint32_t LPUART_GetEnabledInterrupts(LPUART_Type *base)
+{
+    uint32_t temp;
+    temp = (base->BAUD & (LPUART_BAUD_LBKDIE_MASK | LPUART_BAUD_RXEDGIE_MASK)) >> 8;
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    temp |= (base->FIFO & (LPUART_FIFO_TXOFE_MASK | LPUART_FIFO_RXUFE_MASK)) >> 8;
+#endif
+    temp |= (base->CTRL & 0xFF0C000);
+
+    return temp;
+}
+
+uint32_t LPUART_GetStatusFlags(LPUART_Type *base)
+{
+    uint32_t temp;
+    temp = base->STAT;
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    temp |= (base->FIFO &
+             (LPUART_FIFO_TXEMPT_MASK | LPUART_FIFO_RXEMPT_MASK | LPUART_FIFO_TXOF_MASK | LPUART_FIFO_RXUF_MASK)) >>
+            16;
+#endif
+    return temp;
+}
+
+status_t LPUART_ClearStatusFlags(LPUART_Type *base, uint32_t mask)
+{
+    uint32_t temp;
+    status_t status;
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    temp = (uint32_t)base->FIFO;
+    temp &= (uint32_t)(~(LPUART_FIFO_TXOF_MASK | LPUART_FIFO_RXUF_MASK));
+    temp |= (mask << 16) & (LPUART_FIFO_TXOF_MASK | LPUART_FIFO_RXUF_MASK);
+    base->FIFO = temp;
+#endif
+    temp = (uint32_t)base->STAT;
+#if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT
+    temp &= (uint32_t)(~(LPUART_STAT_LBKDIF_MASK));
+    temp |= mask & LPUART_STAT_LBKDIF_MASK;
+#endif
+    temp &= (uint32_t)(~(LPUART_STAT_RXEDGIF_MASK | LPUART_STAT_IDLE_MASK | LPUART_STAT_OR_MASK | LPUART_STAT_NF_MASK |
+                         LPUART_STAT_FE_MASK | LPUART_STAT_PF_MASK));
+    temp |= mask & (LPUART_STAT_RXEDGIF_MASK | LPUART_STAT_IDLE_MASK | LPUART_STAT_OR_MASK | LPUART_STAT_NF_MASK |
+                    LPUART_STAT_FE_MASK | LPUART_STAT_PF_MASK);
+#if defined(FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING) && FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING
+    temp &= (uint32_t)(~(LPUART_STAT_MA2F_MASK | LPUART_STAT_MA1F_MASK));
+    temp |= mask & (LPUART_STAT_MA2F_MASK | LPUART_STAT_MA1F_MASK);
+#endif
+    base->STAT = temp;
+    /* If some flags still pending. */
+    if (mask & LPUART_GetStatusFlags(base))
+    {
+        /* Some flags can only clear or set by the hardware itself, these flags are: kLPUART_TxDataRegEmptyFlag,
+        kLPUART_TransmissionCompleteFlag, kLPUART_RxDataRegFullFlag, kLPUART_RxActiveFlag,
+        kLPUART_NoiseErrorInRxDataRegFlag, kLPUART_ParityErrorInRxDataRegFlag,
+        kLPUART_TxFifoEmptyFlag, kLPUART_RxFifoEmptyFlag. */
+        status = kStatus_LPUART_FlagCannotClearManually; /* flags can not clear manually */
+    }
+    else
+    {
+        status = kStatus_Success;
+    }
+
+    return status;
+}
+
+void LPUART_WriteBlocking(LPUART_Type *base, const uint8_t *data, size_t length)
+{
+    assert(data);
+
+    /* This API can only ensure that the data is written into the data buffer but can't
+    ensure all data in the data buffer are sent into the transmit shift buffer. */
+    while (length--)
+    {
+        while (!(base->STAT & LPUART_STAT_TDRE_MASK))
+        {
+        }
+        base->DATA = *(data++);
+    }
+}
+
+status_t LPUART_ReadBlocking(LPUART_Type *base, uint8_t *data, size_t length)
+{
+    assert(data);
+
+    uint32_t statusFlag;
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    uint32_t ctrl = base->CTRL;
+    bool isSevenDataBits =
+        ((ctrl & LPUART_CTRL_M7_MASK) ||
+         ((!(ctrl & LPUART_CTRL_M7_MASK)) && (!(ctrl & LPUART_CTRL_M_MASK)) && (ctrl & LPUART_CTRL_PE_MASK)));
+#endif
+
+    while (length--)
+    {
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+        while (0 == ((base->WATER & LPUART_WATER_RXCOUNT_MASK) >> LPUART_WATER_RXCOUNT_SHIFT))
+#else
+        while (!(base->STAT & LPUART_STAT_RDRF_MASK))
+#endif
+        {
+            statusFlag = LPUART_GetStatusFlags(base);
+
+            if (statusFlag & kLPUART_RxOverrunFlag)
+            {
+                LPUART_ClearStatusFlags(base, kLPUART_RxOverrunFlag);
+                return kStatus_LPUART_RxHardwareOverrun;
+            }
+
+            if (statusFlag & kLPUART_NoiseErrorFlag)
+            {
+                LPUART_ClearStatusFlags(base, kLPUART_NoiseErrorFlag);
+                return kStatus_LPUART_NoiseError;
+            }
+
+            if (statusFlag & kLPUART_FramingErrorFlag)
+            {
+                LPUART_ClearStatusFlags(base, kLPUART_FramingErrorFlag);
+                return kStatus_LPUART_FramingError;
+            }
+
+            if (statusFlag & kLPUART_ParityErrorFlag)
+            {
+                LPUART_ClearStatusFlags(base, kLPUART_ParityErrorFlag);
+                return kStatus_LPUART_ParityError;
+            }
+        }
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+        if (isSevenDataBits)
+        {
+            *(data++) = (base->DATA & 0x7F);
+        }
+        else
+        {
+            *(data++) = base->DATA;
+        }
+#else
+        *(data++) = base->DATA;
+#endif
+    }
+
+    return kStatus_Success;
+}
+
+void LPUART_TransferCreateHandle(LPUART_Type *base,
+                                 lpuart_handle_t *handle,
+                                 lpuart_transfer_callback_t callback,
+                                 void *userData)
+{
+    assert(handle);
+
+    uint32_t instance;
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    uint32_t ctrl = base->CTRL;
+    bool isSevenDataBits =
+        ((ctrl & LPUART_CTRL_M7_MASK) ||
+         ((!(ctrl & LPUART_CTRL_M7_MASK)) && (!(ctrl & LPUART_CTRL_M_MASK)) && (ctrl & LPUART_CTRL_PE_MASK)));
+#endif
+
+    /* Zero the handle. */
+    memset(handle, 0, sizeof(lpuart_handle_t));
+
+    /* Set the TX/RX state. */
+    handle->rxState = kLPUART_RxIdle;
+    handle->txState = kLPUART_TxIdle;
+
+    /* Set the callback and user data. */
+    handle->callback = callback;
+    handle->userData = userData;
+
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    /* Initial seven data bits flag */
+    handle->isSevenDataBits = isSevenDataBits;
+#endif
+
+    /* Get instance from peripheral base address. */
+    instance = LPUART_GetInstance(base);
+
+    /* Save the handle in global variables to support the double weak mechanism. */
+    s_lpuartHandle[instance] = handle;
+
+    s_lpuartIsr = LPUART_TransferHandleIRQ;
+
+/* Enable interrupt in NVIC. */
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+    EnableIRQ(s_lpuartRxIRQ[instance]);
+    EnableIRQ(s_lpuartTxIRQ[instance]);
+#else
+    EnableIRQ(s_lpuartIRQ[instance]);
+#endif
+}
+
+void LPUART_TransferStartRingBuffer(LPUART_Type *base,
+                                    lpuart_handle_t *handle,
+                                    uint8_t *ringBuffer,
+                                    size_t ringBufferSize)
+{
+    assert(handle);
+    assert(ringBuffer);
+
+    /* Setup the ring buffer address */
+    handle->rxRingBuffer = ringBuffer;
+    handle->rxRingBufferSize = ringBufferSize;
+    handle->rxRingBufferHead = 0U;
+    handle->rxRingBufferTail = 0U;
+
+    /* Enable the interrupt to accept the data when user need the ring buffer. */
+    LPUART_EnableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable);
+}
+
+void LPUART_TransferStopRingBuffer(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    if (handle->rxState == kLPUART_RxIdle)
+    {
+        LPUART_DisableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable);
+    }
+
+    handle->rxRingBuffer = NULL;
+    handle->rxRingBufferSize = 0U;
+    handle->rxRingBufferHead = 0U;
+    handle->rxRingBufferTail = 0U;
+}
+
+status_t LPUART_TransferSendNonBlocking(LPUART_Type *base, lpuart_handle_t *handle, lpuart_transfer_t *xfer)
+{
+    assert(handle);
+    assert(xfer);
+    assert(xfer->data);
+    assert(xfer->dataSize);
+
+    status_t status;
+
+    /* Return error if current TX busy. */
+    if (kLPUART_TxBusy == handle->txState)
+    {
+        status = kStatus_LPUART_TxBusy;
+    }
+    else
+    {
+        handle->txData = xfer->data;
+        handle->txDataSize = xfer->dataSize;
+        handle->txDataSizeAll = xfer->dataSize;
+        handle->txState = kLPUART_TxBusy;
+
+        /* Enable transmiter interrupt. */
+        LPUART_EnableInterrupts(base, kLPUART_TxDataRegEmptyInterruptEnable);
+
+        status = kStatus_Success;
+    }
+
+    return status;
+}
+
+void LPUART_TransferAbortSend(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    LPUART_DisableInterrupts(base, kLPUART_TxDataRegEmptyInterruptEnable | kLPUART_TransmissionCompleteInterruptEnable);
+
+    handle->txDataSize = 0;
+    handle->txState = kLPUART_TxIdle;
+}
+
+status_t LPUART_TransferGetSendCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count)
+{
+    assert(handle);
+    assert(count);
+
+    if (kLPUART_TxIdle == handle->txState)
+    {
+        return kStatus_NoTransferInProgress;
+    }
+
+    *count = handle->txDataSizeAll - handle->txDataSize;
+
+    return kStatus_Success;
+}
+
+status_t LPUART_TransferReceiveNonBlocking(LPUART_Type *base,
+                                           lpuart_handle_t *handle,
+                                           lpuart_transfer_t *xfer,
+                                           size_t *receivedBytes)
+{
+    assert(handle);
+    assert(xfer);
+    assert(xfer->data);
+    assert(xfer->dataSize);
+
+    uint32_t i;
+    status_t status;
+    /* How many bytes to copy from ring buffer to user memory. */
+    size_t bytesToCopy = 0U;
+    /* How many bytes to receive. */
+    size_t bytesToReceive;
+    /* How many bytes currently have received. */
+    size_t bytesCurrentReceived;
+
+    /* How to get data:
+       1. If RX ring buffer is not enabled, then save xfer->data and xfer->dataSize
+          to lpuart handle, enable interrupt to store received data to xfer->data. When
+          all data received, trigger callback.
+       2. If RX ring buffer is enabled and not empty, get data from ring buffer first.
+          If there are enough data in ring buffer, copy them to xfer->data and return.
+          If there are not enough data in ring buffer, copy all of them to xfer->data,
+          save the xfer->data remained empty space to lpuart handle, receive data
+          to this empty space and trigger callback when finished. */
+
+    if (kLPUART_RxBusy == handle->rxState)
+    {
+        status = kStatus_LPUART_RxBusy;
+    }
+    else
+    {
+        bytesToReceive = xfer->dataSize;
+        bytesCurrentReceived = 0;
+
+        /* If RX ring buffer is used. */
+        if (handle->rxRingBuffer)
+        {
+            /* Disable LPUART RX IRQ, protect ring buffer. */
+            LPUART_DisableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable);
+
+            /* How many bytes in RX ring buffer currently. */
+            bytesToCopy = LPUART_TransferGetRxRingBufferLength(base, handle);
+
+            if (bytesToCopy)
+            {
+                bytesToCopy = MIN(bytesToReceive, bytesToCopy);
+
+                bytesToReceive -= bytesToCopy;
+
+                /* Copy data from ring buffer to user memory. */
+                for (i = 0U; i < bytesToCopy; i++)
+                {
+                    xfer->data[bytesCurrentReceived++] = handle->rxRingBuffer[handle->rxRingBufferTail];
+
+                    /* Wrap to 0. Not use modulo (%) because it might be large and slow. */
+                    if (handle->rxRingBufferTail + 1U == handle->rxRingBufferSize)
+                    {
+                        handle->rxRingBufferTail = 0U;
+                    }
+                    else
+                    {
+                        handle->rxRingBufferTail++;
+                    }
+                }
+            }
+
+            /* If ring buffer does not have enough data, still need to read more data. */
+            if (bytesToReceive)
+            {
+                /* No data in ring buffer, save the request to LPUART handle. */
+                handle->rxData = xfer->data + bytesCurrentReceived;
+                handle->rxDataSize = bytesToReceive;
+                handle->rxDataSizeAll = bytesToReceive;
+                handle->rxState = kLPUART_RxBusy;
+            }
+            /* Enable LPUART RX IRQ if previously enabled. */
+            LPUART_EnableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable);
+
+            /* Call user callback since all data are received. */
+            if (0 == bytesToReceive)
+            {
+                if (handle->callback)
+                {
+                    handle->callback(base, handle, kStatus_LPUART_RxIdle, handle->userData);
+                }
+            }
+        }
+        /* Ring buffer not used. */
+        else
+        {
+            handle->rxData = xfer->data + bytesCurrentReceived;
+            handle->rxDataSize = bytesToReceive;
+            handle->rxDataSizeAll = bytesToReceive;
+            handle->rxState = kLPUART_RxBusy;
+
+            /* Enable RX interrupt. */
+            LPUART_EnableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable |
+                                              kLPUART_IdleLineInterruptEnable);
+        }
+
+        /* Return the how many bytes have read. */
+        if (receivedBytes)
+        {
+            *receivedBytes = bytesCurrentReceived;
+        }
+
+        status = kStatus_Success;
+    }
+
+    return status;
+}
+
+void LPUART_TransferAbortReceive(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    /* Only abort the receive to handle->rxData, the RX ring buffer is still working. */
+    if (!handle->rxRingBuffer)
+    {
+        /* Disable RX interrupt. */
+        LPUART_DisableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable |
+                                           kLPUART_IdleLineInterruptEnable);
+    }
+
+    handle->rxDataSize = 0U;
+    handle->rxState = kLPUART_RxIdle;
+}
+
+status_t LPUART_TransferGetReceiveCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count)
+{
+    assert(handle);
+    assert(count);
+
+    if (kLPUART_RxIdle == handle->rxState)
+    {
+        return kStatus_NoTransferInProgress;
+    }
+
+    *count = handle->rxDataSizeAll - handle->rxDataSize;
+
+    return kStatus_Success;
+}
+
+void LPUART_TransferHandleIRQ(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    assert(handle);
+
+    uint8_t count;
+    uint8_t tempCount;
+
+    /* If RX overrun. */
+    if (LPUART_STAT_OR_MASK & base->STAT)
+    {
+        /* Clear overrun flag, otherwise the RX does not work. */
+        base->STAT = ((base->STAT & 0x3FE00000U) | LPUART_STAT_OR_MASK);
+
+        /* Trigger callback. */
+        if (handle->callback)
+        {
+            handle->callback(base, handle, kStatus_LPUART_RxHardwareOverrun, handle->userData);
+        }
+    }
+
+    /* If IDLE flag is set and the IDLE interrupt is enabled. */
+    if ((LPUART_STAT_IDLE_MASK & base->STAT) && (LPUART_CTRL_ILIE_MASK & base->CTRL))
+    {
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+        count = ((uint8_t)((base->WATER & LPUART_WATER_RXCOUNT_MASK) >> LPUART_WATER_RXCOUNT_SHIFT));
+
+        while ((count) && (handle->rxDataSize))
+        {
+            tempCount = MIN(handle->rxDataSize, count);
+
+            /* Using non block API to read the data from the registers. */
+            LPUART_ReadNonBlocking(base, handle->rxData, tempCount);
+            handle->rxData += tempCount;
+            handle->rxDataSize -= tempCount;
+            count -= tempCount;
+
+            /* If rxDataSize is 0, disable idle line interrupt.*/
+            if (!(handle->rxDataSize))
+            {
+                handle->rxState = kLPUART_RxIdle;
+
+                LPUART_DisableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable);
+                if (handle->callback)
+                {
+                    handle->callback(base, handle, kStatus_LPUART_RxIdle, handle->userData);
+                }
+            }
+        }
+#endif
+        /* Clear IDLE flag.*/
+        base->STAT |= LPUART_STAT_IDLE_MASK;
+
+        /* If rxDataSize is 0, disable idle line interrupt.*/
+        if (!(handle->rxDataSize))
+        {
+            LPUART_DisableInterrupts(base, kLPUART_IdleLineInterruptEnable);
+        }
+        /* If callback is not NULL and rxDataSize is not 0. */
+        if ((handle->callback) && (handle->rxDataSize))
+        {
+            handle->callback(base, handle, kStatus_LPUART_IdleLineDetected, handle->userData);
+        }
+    }
+    /* Receive data register full */
+    if ((LPUART_STAT_RDRF_MASK & base->STAT) && (LPUART_CTRL_RIE_MASK & base->CTRL))
+    {
+/* Get the size that can be stored into buffer for this interrupt. */
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+        count = ((uint8_t)((base->WATER & LPUART_WATER_RXCOUNT_MASK) >> LPUART_WATER_RXCOUNT_SHIFT));
+#else
+        count = 1;
+#endif
+
+        /* If handle->rxDataSize is not 0, first save data to handle->rxData. */
+        while ((count) && (handle->rxDataSize))
+        {
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+            tempCount = MIN(handle->rxDataSize, count);
+#else
+            tempCount = 1;
+#endif
+
+            /* Using non block API to read the data from the registers. */
+            LPUART_ReadNonBlocking(base, handle->rxData, tempCount);
+            handle->rxData += tempCount;
+            handle->rxDataSize -= tempCount;
+            count -= tempCount;
+
+            /* If all the data required for upper layer is ready, trigger callback. */
+            if (!handle->rxDataSize)
+            {
+                handle->rxState = kLPUART_RxIdle;
+
+                if (handle->callback)
+                {
+                    handle->callback(base, handle, kStatus_LPUART_RxIdle, handle->userData);
+                }
+            }
+        }
+
+        /* If use RX ring buffer, receive data to ring buffer. */
+        if (handle->rxRingBuffer)
+        {
+            while (count--)
+            {
+                /* If RX ring buffer is full, trigger callback to notify over run. */
+                if (LPUART_TransferIsRxRingBufferFull(base, handle))
+                {
+                    if (handle->callback)
+                    {
+                        handle->callback(base, handle, kStatus_LPUART_RxRingBufferOverrun, handle->userData);
+                    }
+                }
+
+                /* If ring buffer is still full after callback function, the oldest data is overrided. */
+                if (LPUART_TransferIsRxRingBufferFull(base, handle))
+                {
+                    /* Increase handle->rxRingBufferTail to make room for new data. */
+                    if (handle->rxRingBufferTail + 1U == handle->rxRingBufferSize)
+                    {
+                        handle->rxRingBufferTail = 0U;
+                    }
+                    else
+                    {
+                        handle->rxRingBufferTail++;
+                    }
+                }
+
+/* Read data. */
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+                if (handle->isSevenDataBits)
+                {
+                    handle->rxRingBuffer[handle->rxRingBufferHead] = (base->DATA & 0x7F);
+                }
+                else
+                {
+                    handle->rxRingBuffer[handle->rxRingBufferHead] = base->DATA;
+                }
+#else
+                handle->rxRingBuffer[handle->rxRingBufferHead] = base->DATA;
+#endif
+
+                /* Increase handle->rxRingBufferHead. */
+                if (handle->rxRingBufferHead + 1U == handle->rxRingBufferSize)
+                {
+                    handle->rxRingBufferHead = 0U;
+                }
+                else
+                {
+                    handle->rxRingBufferHead++;
+                }
+            }
+        }
+        /* If no receive requst pending, stop RX interrupt. */
+        else if (!handle->rxDataSize)
+        {
+            LPUART_DisableInterrupts(base, kLPUART_RxDataRegFullInterruptEnable | kLPUART_RxOverrunInterruptEnable);
+        }
+        else
+        {
+        }
+    }
+
+    /* Send data register empty and the interrupt is enabled. */
+    if ((base->STAT & LPUART_STAT_TDRE_MASK) && (base->CTRL & LPUART_CTRL_TIE_MASK))
+    {
+/* Get the bytes that available at this moment. */
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+        count = FSL_FEATURE_LPUART_FIFO_SIZEn(base) -
+                ((base->WATER & LPUART_WATER_TXCOUNT_MASK) >> LPUART_WATER_TXCOUNT_SHIFT);
+#else
+        count = 1;
+#endif
+
+        while ((count) && (handle->txDataSize))
+        {
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+            tempCount = MIN(handle->txDataSize, count);
+#else
+            tempCount = 1;
+#endif
+
+            /* Using non block API to write the data to the registers. */
+            LPUART_WriteNonBlocking(base, handle->txData, tempCount);
+            handle->txData += tempCount;
+            handle->txDataSize -= tempCount;
+            count -= tempCount;
+
+            /* If all the data are written to data register, notify user with the callback, then TX finished. */
+            if (!handle->txDataSize)
+            {
+                handle->txState = kLPUART_TxIdle;
+
+                /* Disable TX register empty interrupt. */
+                base->CTRL = (base->CTRL & ~LPUART_CTRL_TIE_MASK);
+
+                /* Trigger callback. */
+                if (handle->callback)
+                {
+                    handle->callback(base, handle, kStatus_LPUART_TxIdle, handle->userData);
+                }
+            }
+        }
+    }
+}
+
+void LPUART_TransferHandleErrorIRQ(LPUART_Type *base, lpuart_handle_t *handle)
+{
+    /* To be implemented by User. */
+}
+#if defined(FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1) && FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART0_LPUART1_RX_DriverIRQHandler(void)
+{
+    if (CLOCK_isEnabledClock(s_lpuartClock[0]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART0->STAT) ||
+            ((LPUART_STAT_RDRF_MASK & LPUART0->STAT) && (LPUART_CTRL_RIE_MASK & LPUART0->CTRL)))
+        {
+            s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+        }
+    }
+    if (CLOCK_isEnabledClock(s_lpuartClock[1]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART1->STAT) ||
+            ((LPUART_STAT_RDRF_MASK & LPUART1->STAT) && (LPUART_CTRL_RIE_MASK & LPUART1->CTRL)))
+        {
+            s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+        }
+    }
+}
+void LPUART0_LPUART1_TX_DriverIRQHandler(void)
+{
+    if (CLOCK_isEnabledClock(s_lpuartClock[0]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART0->STAT) ||
+            ((LPUART0->STAT & LPUART_STAT_TDRE_MASK) && (LPUART0->CTRL & LPUART_CTRL_TIE_MASK)))
+        {
+            s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+        }
+    }
+    if (CLOCK_isEnabledClock(s_lpuartClock[1]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART1->STAT) ||
+            ((LPUART1->STAT & LPUART_STAT_TDRE_MASK) && (LPUART1->CTRL & LPUART_CTRL_TIE_MASK)))
+        {
+            s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+        }
+    }
+}
+#else
+void LPUART0_LPUART1_DriverIRQHandler(void)
+{
+    if (CLOCK_isEnabledClock(s_lpuartClock[0]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART0->STAT) ||
+            ((LPUART_STAT_RDRF_MASK & LPUART0->STAT) && (LPUART_CTRL_RIE_MASK & LPUART0->CTRL)) ||
+            ((LPUART0->STAT & LPUART_STAT_TDRE_MASK) && (LPUART0->CTRL & LPUART_CTRL_TIE_MASK)))
+        {
+            s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+        }
+    }
+    if (CLOCK_isEnabledClock(s_lpuartClock[1]))
+    {
+        if ((LPUART_STAT_OR_MASK & LPUART1->STAT) ||
+            ((LPUART_STAT_RDRF_MASK & LPUART1->STAT) && (LPUART_CTRL_RIE_MASK & LPUART1->CTRL)) ||
+            ((LPUART1->STAT & LPUART_STAT_TDRE_MASK) && (LPUART1->CTRL & LPUART_CTRL_TIE_MASK)))
+        {
+            s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+        }
+    }
+}
+#endif
+#endif
+
+#if defined(LPUART0)
+#if !(defined(FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1) && FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART0_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+}
+void LPUART0_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+}
+#else
+void LPUART0_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART0, s_lpuartHandle[0]);
+}
+#endif
+#endif
+#endif
+
+#if defined(LPUART1)
+#if !(defined(FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1) && FSL_FEATURE_LPUART_HAS_SHARED_IRQ0_IRQ1)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART1_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+}
+void LPUART1_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+}
+#else
+void LPUART1_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART1, s_lpuartHandle[1]);
+}
+#endif
+#endif
+#endif
+
+#if defined(LPUART2)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART2_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART2, s_lpuartHandle[2]);
+}
+void LPUART2_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART2, s_lpuartHandle[2]);
+}
+#else
+void LPUART2_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART2, s_lpuartHandle[2]);
+}
+#endif
+#endif
+
+#if defined(LPUART3)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART3_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART3, s_lpuartHandle[3]);
+}
+void LPUART3_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART3, s_lpuartHandle[3]);
+}
+#else
+void LPUART3_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART3, s_lpuartHandle[3]);
+}
+#endif
+#endif
+
+#if defined(LPUART4)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART4_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART4, s_lpuartHandle[4]);
+}
+void LPUART4_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART4, s_lpuartHandle[4]);
+}
+#else
+void LPUART4_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART4, s_lpuartHandle[4]);
+}
+#endif
+#endif
+
+#if defined(LPUART5)
+#if defined(FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ) && FSL_FEATURE_LPUART_HAS_SEPARATE_RX_TX_IRQ
+void LPUART5_TX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART5, s_lpuartHandle[5]);
+}
+void LPUART5_RX_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART5, s_lpuartHandle[5]);
+}
+#else
+void LPUART5_DriverIRQHandler(void)
+{
+    s_lpuartIsr(LPUART5, s_lpuartHandle[5]);
+}
+#endif
+#endif
+
+#if defined(CM4_0_LPUART)
+void M4_0_LPUART_DriverIRQHandler(void)
+{
+    s_lpuartIsr(CM4_0_LPUART, s_lpuartHandle[LPUART_GetInstance(CM4_0_LPUART)]);
+}
+#endif
+
+#if defined(CM4_1_LPUART)
+void M4_1_LPUART_DriverIRQHandler(void)
+{
+    s_lpuartIsr(CM4_1_LPUART, s_lpuartHandle[LPUART_GetInstance(CM4_1_LPUART)]);
+}
+#endif
+
+#if defined(DMA_LPUART0)
+void DMA_UART0_INT_IRQHandler(void)
+{
+    s_lpuartIsr(DMA_LPUART0, s_lpuartHandle[LPUART_GetInstance(DMA_LPUART0)]);
+}
+#endif
+
+#if defined(DMA_LPUART1)
+void DMA_UART1_INT_IRQHandler(void)
+{
+    s_lpuartIsr(DMA_LPUART1, s_lpuartHandle[LPUART_GetInstance(DMA_LPUART1)]);
+}
+#endif
+
+#if defined(DMA_LPUART2)
+void DMA_UART2_INT_IRQHandler(void)
+{
+    s_lpuartIsr(DMA_LPUART2, s_lpuartHandle[LPUART_GetInstance(DMA_LPUART2)]);
+}
+#endif
+
+#if defined(DMA_LPUART3)
+void DMA_UART3_INT_IRQHandler(void)
+{
+    s_lpuartIsr(DMA_LPUART3, s_lpuartHandle[LPUART_GetInstance(DMA_LPUART3)]);
+}
+#endif
+
+#if defined(DMA_LPUART4)
+void DMA_UART4_INT_IRQHandler(void)
+{
+    s_lpuartIsr(DMA_LPUART4, s_lpuartHandle[LPUART_GetInstance(DMA_LPUART4)]);
+}
+#endif
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.h
new file mode 100644 (file)
index 0000000..6e44872
--- /dev/null
@@ -0,0 +1,842 @@
+/*
+ * Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _FSL_LPUART_H_
+#define _FSL_LPUART_H_
+
+#include "fsl_common.h"
+
+/*!
+ * @addtogroup lpuart_driver
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @name Driver version */
+/*@{*/
+/*! @brief LPUART driver version 2.2.3. */
+#define FSL_LPUART_DRIVER_VERSION (MAKE_VERSION(2, 2, 4))
+/*@}*/
+
+/*! @brief Error codes for the LPUART driver. */
+enum _lpuart_status
+{
+    kStatus_LPUART_TxBusy = MAKE_STATUS(kStatusGroup_LPUART, 0),                  /*!< TX busy */
+    kStatus_LPUART_RxBusy = MAKE_STATUS(kStatusGroup_LPUART, 1),                  /*!< RX busy */
+    kStatus_LPUART_TxIdle = MAKE_STATUS(kStatusGroup_LPUART, 2),                  /*!< LPUART transmitter is idle. */
+    kStatus_LPUART_RxIdle = MAKE_STATUS(kStatusGroup_LPUART, 3),                  /*!< LPUART receiver is idle. */
+    kStatus_LPUART_TxWatermarkTooLarge = MAKE_STATUS(kStatusGroup_LPUART, 4),     /*!< TX FIFO watermark too large  */
+    kStatus_LPUART_RxWatermarkTooLarge = MAKE_STATUS(kStatusGroup_LPUART, 5),     /*!< RX FIFO watermark too large  */
+    kStatus_LPUART_FlagCannotClearManually = MAKE_STATUS(kStatusGroup_LPUART, 6), /*!< Some flag can't manually clear */
+    kStatus_LPUART_Error = MAKE_STATUS(kStatusGroup_LPUART, 7),                   /*!< Error happens on LPUART. */
+    kStatus_LPUART_RxRingBufferOverrun =
+        MAKE_STATUS(kStatusGroup_LPUART, 8), /*!< LPUART RX software ring buffer overrun. */
+    kStatus_LPUART_RxHardwareOverrun = MAKE_STATUS(kStatusGroup_LPUART, 9), /*!< LPUART RX receiver overrun. */
+    kStatus_LPUART_NoiseError = MAKE_STATUS(kStatusGroup_LPUART, 10),       /*!< LPUART noise error. */
+    kStatus_LPUART_FramingError = MAKE_STATUS(kStatusGroup_LPUART, 11),     /*!< LPUART framing error. */
+    kStatus_LPUART_ParityError = MAKE_STATUS(kStatusGroup_LPUART, 12),      /*!< LPUART parity error. */
+    kStatus_LPUART_BaudrateNotSupport =
+        MAKE_STATUS(kStatusGroup_LPUART, 13), /*!< Baudrate is not support in current clock source */
+    kStatus_LPUART_IdleLineDetected = MAKE_STATUS(kStatusGroup_LPUART, 14), /*!< IDLE flag. */
+};
+
+/*! @brief LPUART parity mode. */
+typedef enum _lpuart_parity_mode
+{
+    kLPUART_ParityDisabled = 0x0U, /*!< Parity disabled */
+    kLPUART_ParityEven = 0x2U,     /*!< Parity enabled, type even, bit setting: PE|PT = 10 */
+    kLPUART_ParityOdd = 0x3U,      /*!< Parity enabled, type odd,  bit setting: PE|PT = 11 */
+} lpuart_parity_mode_t;
+
+/*! @brief LPUART data bits count. */
+typedef enum _lpuart_data_bits
+{
+    kLPUART_EightDataBits = 0x0U, /*!< Eight data bit */
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    kLPUART_SevenDataBits = 0x1U, /*!< Seven data bit */
+#endif
+} lpuart_data_bits_t;
+
+/*! @brief LPUART stop bit count. */
+typedef enum _lpuart_stop_bit_count
+{
+    kLPUART_OneStopBit = 0U, /*!< One stop bit */
+    kLPUART_TwoStopBit = 1U, /*!< Two stop bits */
+} lpuart_stop_bit_count_t;
+
+#if defined(FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT) && FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT
+/*! @brief LPUART transmit CTS source. */
+typedef enum _lpuart_transmit_cts_source
+{
+    kLPUART_CtsSourcePin = 0U,         /*!< CTS resource is the LPUART_CTS pin. */
+    kLPUART_CtsSourceMatchResult = 1U, /*!< CTS resource is the match result. */
+} lpuart_transmit_cts_source_t;
+
+/*! @brief LPUART transmit CTS configure. */
+typedef enum _lpuart_transmit_cts_config
+{
+    kLPUART_CtsSampleAtStart = 0U, /*!< CTS input is sampled at the start of each character. */
+    kLPUART_CtsSampleAtIdle = 1U,  /*!< CTS input is sampled when the transmitter is idle */
+} lpuart_transmit_cts_config_t;
+#endif
+
+/*! @brief LPUART idle flag type defines when the receiver starts counting. */
+typedef enum _lpuart_idle_type_select
+{
+    kLPUART_IdleTypeStartBit = 0U, /*!< Start counting after a valid start bit. */
+    kLPUART_IdleTypeStopBit = 1U,  /*!< Start conuting after a stop bit. */
+} lpuart_idle_type_select_t;
+
+/*! @brief LPUART idle detected configuration.
+ *  This structure defines the number of idle characters that must be received before
+ *  the IDLE flag is set.
+ */
+typedef enum _lpuart_idle_config
+{
+    kLPUART_IdleCharacter1 = 0U,   /*!< the number of idle characters. */
+    kLPUART_IdleCharacter2 = 1U,   /*!< the number of idle characters. */
+    kLPUART_IdleCharacter4 = 2U,   /*!< the number of idle characters. */
+    kLPUART_IdleCharacter8 = 3U,   /*!< the number of idle characters. */
+    kLPUART_IdleCharacter16 = 4U,  /*!< the number of idle characters. */
+    kLPUART_IdleCharacter32 = 5U,  /*!< the number of idle characters. */
+    kLPUART_IdleCharacter64 = 6U,  /*!< the number of idle characters. */
+    kLPUART_IdleCharacter128 = 7U, /*!< the number of idle characters. */
+} lpuart_idle_config_t;
+
+/*!
+ * @brief LPUART interrupt configuration structure, default settings all disabled.
+ *
+ * This structure contains the settings for all LPUART interrupt configurations.
+ */
+enum _lpuart_interrupt_enable
+{
+#if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT
+    kLPUART_LinBreakInterruptEnable = (LPUART_BAUD_LBKDIE_MASK >> 8), /*!< LIN break detect. */
+#endif
+    kLPUART_RxActiveEdgeInterruptEnable = (LPUART_BAUD_RXEDGIE_MASK >> 8), /*!< Receive Active Edge. */
+    kLPUART_TxDataRegEmptyInterruptEnable = (LPUART_CTRL_TIE_MASK),        /*!< Transmit data register empty. */
+    kLPUART_TransmissionCompleteInterruptEnable = (LPUART_CTRL_TCIE_MASK), /*!< Transmission complete. */
+    kLPUART_RxDataRegFullInterruptEnable = (LPUART_CTRL_RIE_MASK),         /*!< Receiver data register full. */
+    kLPUART_IdleLineInterruptEnable = (LPUART_CTRL_ILIE_MASK),             /*!< Idle line. */
+    kLPUART_RxOverrunInterruptEnable = (LPUART_CTRL_ORIE_MASK),            /*!< Receiver Overrun. */
+    kLPUART_NoiseErrorInterruptEnable = (LPUART_CTRL_NEIE_MASK),           /*!< Noise error flag. */
+    kLPUART_FramingErrorInterruptEnable = (LPUART_CTRL_FEIE_MASK),         /*!< Framing error flag. */
+    kLPUART_ParityErrorInterruptEnable = (LPUART_CTRL_PEIE_MASK),          /*!< Parity error flag. */
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    kLPUART_TxFifoOverflowInterruptEnable = (LPUART_FIFO_TXOFE_MASK >> 8),  /*!< Transmit FIFO Overflow. */
+    kLPUART_RxFifoUnderflowInterruptEnable = (LPUART_FIFO_RXUFE_MASK >> 8), /*!< Receive FIFO Underflow. */
+#endif
+};
+
+/*!
+ * @brief LPUART status flags.
+ *
+ * This provides constants for the LPUART status flags for use in the LPUART functions.
+ */
+enum _lpuart_flags
+{
+    kLPUART_TxDataRegEmptyFlag =
+        (LPUART_STAT_TDRE_MASK), /*!< Transmit data register empty flag, sets when transmit buffer is empty */
+    kLPUART_TransmissionCompleteFlag =
+        (LPUART_STAT_TC_MASK), /*!< Transmission complete flag, sets when transmission activity complete */
+    kLPUART_RxDataRegFullFlag =
+        (LPUART_STAT_RDRF_MASK), /*!< Receive data register full flag, sets when the receive data buffer is full */
+    kLPUART_IdleLineFlag = (LPUART_STAT_IDLE_MASK), /*!< Idle line detect flag, sets when idle line detected */
+    kLPUART_RxOverrunFlag = (LPUART_STAT_OR_MASK),  /*!< Receive Overrun, sets when new data is received before data is
+                                                       read from receive register */
+    kLPUART_NoiseErrorFlag = (LPUART_STAT_NF_MASK), /*!< Receive takes 3 samples of each received bit.  If any of these
+                                                       samples differ, noise flag sets */
+    kLPUART_FramingErrorFlag =
+        (LPUART_STAT_FE_MASK), /*!< Frame error flag, sets if logic 0 was detected where stop bit expected */
+    kLPUART_ParityErrorFlag = (LPUART_STAT_PF_MASK), /*!< If parity enabled, sets upon parity error detection */
+#if defined(FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT) && FSL_FEATURE_LPUART_HAS_LIN_BREAK_DETECT
+    kLPUART_LinBreakFlag = (LPUART_STAT_LBKDIF_MASK), /*!< LIN break detect interrupt flag, sets when LIN break char
+                                                         detected and LIN circuit enabled */
+#endif
+    kLPUART_RxActiveEdgeFlag =
+        (LPUART_STAT_RXEDGIF_MASK), /*!< Receive pin active edge interrupt flag, sets when active edge detected */
+    kLPUART_RxActiveFlag =
+        (LPUART_STAT_RAF_MASK), /*!< Receiver Active Flag (RAF), sets at beginning of valid start bit */
+#if defined(FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING) && FSL_FEATURE_LPUART_HAS_ADDRESS_MATCHING
+    kLPUART_DataMatch1Flag = LPUART_STAT_MA1F_MASK, /*!< The next character to be read from LPUART_DATA matches MA1*/
+    kLPUART_DataMatch2Flag = LPUART_STAT_MA2F_MASK, /*!< The next character to be read from LPUART_DATA matches MA2*/
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS) && FSL_FEATURE_LPUART_HAS_EXTENDED_DATA_REGISTER_FLAGS
+    kLPUART_NoiseErrorInRxDataRegFlag =
+        (LPUART_DATA_NOISY_MASK >> 10), /*!< NOISY bit, sets if noise detected in current data word */
+    kLPUART_ParityErrorInRxDataRegFlag =
+        (LPUART_DATA_PARITYE_MASK >> 10), /*!< PARITYE bit, sets if noise detected in current data word */
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    kLPUART_TxFifoEmptyFlag = (LPUART_FIFO_TXEMPT_MASK >> 16), /*!< TXEMPT bit, sets if transmit buffer is empty */
+    kLPUART_RxFifoEmptyFlag = (LPUART_FIFO_RXEMPT_MASK >> 16), /*!< RXEMPT bit, sets if receive buffer is empty */
+    kLPUART_TxFifoOverflowFlag =
+        (LPUART_FIFO_TXOF_MASK >> 16), /*!< TXOF bit, sets if transmit buffer overflow occurred */
+    kLPUART_RxFifoUnderflowFlag =
+        (LPUART_FIFO_RXUF_MASK >> 16), /*!< RXUF bit, sets if receive buffer underflow occurred */
+#endif
+};
+
+/*! @brief LPUART configuration structure. */
+typedef struct _lpuart_config
+{
+    uint32_t baudRate_Bps;            /*!< LPUART baud rate  */
+    lpuart_parity_mode_t parityMode;  /*!< Parity mode, disabled (default), even, odd */
+    lpuart_data_bits_t dataBitsCount; /*!< Data bits count, eight (default), seven */
+    bool isMsb;                       /*!< Data bits order, LSB (default), MSB */
+#if defined(FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT) && FSL_FEATURE_LPUART_HAS_STOP_BIT_CONFIG_SUPPORT
+    lpuart_stop_bit_count_t stopBitCount; /*!< Number of stop bits, 1 stop bit (default) or 2 stop bits  */
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_FIFO) && FSL_FEATURE_LPUART_HAS_FIFO
+    uint8_t txFifoWatermark; /*!< TX FIFO watermark */
+    uint8_t rxFifoWatermark; /*!< RX FIFO watermark */
+#endif
+#if defined(FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT) && FSL_FEATURE_LPUART_HAS_MODEM_SUPPORT
+    bool enableRxRTS;                         /*!< RX RTS enable */
+    bool enableTxCTS;                         /*!< TX CTS enable */
+    lpuart_transmit_cts_source_t txCtsSource; /*!< TX CTS source */
+    lpuart_transmit_cts_config_t txCtsConfig; /*!< TX CTS configure */
+#endif
+    lpuart_idle_type_select_t rxIdleType; /*!< RX IDLE type. */
+    lpuart_idle_config_t rxIdleConfig;    /*!< RX IDLE configuration. */
+    bool enableTx;                        /*!< Enable TX */
+    bool enableRx;                        /*!< Enable RX */
+} lpuart_config_t;
+
+/*! @brief LPUART transfer structure. */
+typedef struct _lpuart_transfer
+{
+    uint8_t *data;   /*!< The buffer of data to be transfer.*/
+    size_t dataSize; /*!< The byte count to be transfer. */
+} lpuart_transfer_t;
+
+/* Forward declaration of the handle typedef. */
+typedef struct _lpuart_handle lpuart_handle_t;
+
+/*! @brief LPUART transfer callback function. */
+typedef void (*lpuart_transfer_callback_t)(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData);
+
+/*! @brief LPUART handle structure. */
+struct _lpuart_handle
+{
+    uint8_t *volatile txData;   /*!< Address of remaining data to send. */
+    volatile size_t txDataSize; /*!< Size of the remaining data to send. */
+    size_t txDataSizeAll;       /*!< Size of the data to send out. */
+    uint8_t *volatile rxData;   /*!< Address of remaining data to receive. */
+    volatile size_t rxDataSize; /*!< Size of the remaining data to receive. */
+    size_t rxDataSizeAll;       /*!< Size of the data to receive. */
+
+    uint8_t *rxRingBuffer;              /*!< Start address of the receiver ring buffer. */
+    size_t rxRingBufferSize;            /*!< Size of the ring buffer. */
+    volatile uint16_t rxRingBufferHead; /*!< Index for the driver to store received data into ring buffer. */
+    volatile uint16_t rxRingBufferTail; /*!< Index for the user to get data from the ring buffer. */
+
+    lpuart_transfer_callback_t callback; /*!< Callback function. */
+    void *userData;                      /*!< LPUART callback function parameter.*/
+
+    volatile uint8_t txState; /*!< TX transfer state. */
+    volatile uint8_t rxState; /*!< RX transfer state. */
+
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    bool isSevenDataBits; /*!< Seven data bits flag. */
+#endif
+};
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* _cplusplus */
+
+#if defined(FSL_FEATURE_LPUART_HAS_GLOBAL) && FSL_FEATURE_LPUART_HAS_GLOBAL
+
+/*!
+ * @name Software Reset
+ * @{
+ */
+
+/*!
+ * @brief Resets the LPUART using software.
+ *
+ * This function resets all internal logic and registers except the Global Register.
+ * Remains set until cleared by software.
+ *
+ * @param base LPUART peripheral base address.
+ */
+static inline void LPUART_SoftwareReset(LPUART_Type *base)
+{
+    base->GLOBAL |= LPUART_GLOBAL_RST_MASK;
+    base->GLOBAL &= ~LPUART_GLOBAL_RST_MASK;
+}
+/* @} */
+#endif /*FSL_FEATURE_LPUART_HAS_GLOBAL*/
+
+/*!
+ * @name Initialization and deinitialization
+ * @{
+ */
+
+/*!
+ * @brief Initializes an LPUART instance with the user configuration structure and the peripheral clock.
+ *
+ * This function configures the LPUART module with user-defined settings. Call the LPUART_GetDefaultConfig() function
+ * to configure the configuration structure and get the default configuration.
+ * The example below shows how to use this API to configure the LPUART.
+ * @code
+ *  lpuart_config_t lpuartConfig;
+ *  lpuartConfig.baudRate_Bps = 115200U;
+ *  lpuartConfig.parityMode = kLPUART_ParityDisabled;
+ *  lpuartConfig.dataBitsCount = kLPUART_EightDataBits;
+ *  lpuartConfig.isMsb = false;
+ *  lpuartConfig.stopBitCount = kLPUART_OneStopBit;
+ *  lpuartConfig.txFifoWatermark = 0;
+ *  lpuartConfig.rxFifoWatermark = 1;
+ *  LPUART_Init(LPUART1, &lpuartConfig, 20000000U);
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @param config Pointer to a user-defined configuration structure.
+ * @param srcClock_Hz LPUART clock source frequency in HZ.
+ * @retval kStatus_LPUART_BaudrateNotSupport Baudrate is not support in current clock source.
+ * @retval kStatus_Success LPUART initialize succeed
+ */
+status_t LPUART_Init(LPUART_Type *base, const lpuart_config_t *config, uint32_t srcClock_Hz);
+
+/*!
+ * @brief Deinitializes a LPUART instance.
+ *
+ * This function waits for transmit to complete, disables TX and RX, and disables the LPUART clock.
+ *
+ * @param base LPUART peripheral base address.
+ */
+void LPUART_Deinit(LPUART_Type *base);
+
+/*!
+ * @brief Gets the default configuration structure.
+ *
+ * This function initializes the LPUART configuration structure to a default value. The default
+ * values are:
+ *   lpuartConfig->baudRate_Bps = 115200U;
+ *   lpuartConfig->parityMode = kLPUART_ParityDisabled;
+ *   lpuartConfig->dataBitsCount = kLPUART_EightDataBits;
+ *   lpuartConfig->isMsb = false;
+ *   lpuartConfig->stopBitCount = kLPUART_OneStopBit;
+ *   lpuartConfig->txFifoWatermark = 0;
+ *   lpuartConfig->rxFifoWatermark = 1;
+ *   lpuartConfig->rxIdleType = kLPUART_IdleTypeStartBit;
+ *   lpuartConfig->rxIdleConfig = kLPUART_IdleCharacter1;
+ *   lpuartConfig->enableTx = false;
+ *   lpuartConfig->enableRx = false;
+ *
+ * @param config Pointer to a configuration structure.
+ */
+void LPUART_GetDefaultConfig(lpuart_config_t *config);
+
+/*!
+ * @brief Sets the LPUART instance baudrate.
+ *
+ * This function configures the LPUART module baudrate. This function is used to update
+ * the LPUART module baudrate after the LPUART module is initialized by the LPUART_Init.
+ * @code
+ *  LPUART_SetBaudRate(LPUART1, 115200U, 20000000U);
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @param baudRate_Bps LPUART baudrate to be set.
+ * @param srcClock_Hz LPUART clock source frequency in HZ.
+ * @retval kStatus_LPUART_BaudrateNotSupport Baudrate is not supported in the current clock source.
+ * @retval kStatus_Success Set baudrate succeeded.
+ */
+status_t LPUART_SetBaudRate(LPUART_Type *base, uint32_t baudRate_Bps, uint32_t srcClock_Hz);
+
+/* @} */
+
+/*!
+ * @name Status
+ * @{
+ */
+
+/*!
+ * @brief Gets LPUART status flags.
+ *
+ * This function gets all LPUART status flags. The flags are returned as the logical
+ * OR value of the enumerators @ref _lpuart_flags. To check for a specific status,
+ * compare the return value with enumerators in the @ref _lpuart_flags.
+ * For example, to check whether the TX is empty:
+ * @code
+ *     if (kLPUART_TxDataRegEmptyFlag & LPUART_GetStatusFlags(LPUART1))
+ *     {
+ *         ...
+ *     }
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @return LPUART status flags which are ORed by the enumerators in the _lpuart_flags.
+ */
+uint32_t LPUART_GetStatusFlags(LPUART_Type *base);
+
+/*!
+ * @brief Clears status flags with a provided mask.
+ *
+ * This function clears LPUART status flags with a provided mask. Automatically cleared flags
+ * can't be cleared by this function.
+ * Flags that can only cleared or set by hardware are:
+ *    kLPUART_TxDataRegEmptyFlag, kLPUART_TransmissionCompleteFlag, kLPUART_RxDataRegFullFlag,
+ *    kLPUART_RxActiveFlag, kLPUART_NoiseErrorInRxDataRegFlag, kLPUART_ParityErrorInRxDataRegFlag,
+ *    kLPUART_TxFifoEmptyFlag,kLPUART_RxFifoEmptyFlag
+ * Note: This API should be called when the Tx/Rx is idle, otherwise it takes no effects.
+ *
+ * @param base LPUART peripheral base address.
+ * @param mask the status flags to be cleared. The user can use the enumerators in the
+ *  _lpuart_status_flag_t to do the OR operation and get the mask.
+ * @return 0 succeed, others failed.
+ * @retval kStatus_LPUART_FlagCannotClearManually The flag can't be cleared by this function but
+ *         it is cleared automatically by hardware.
+ * @retval kStatus_Success Status in the mask are cleared.
+ */
+status_t LPUART_ClearStatusFlags(LPUART_Type *base, uint32_t mask);
+
+/* @} */
+
+/*!
+ * @name Interrupts
+ * @{
+ */
+
+/*!
+ * @brief Enables LPUART interrupts according to a provided mask.
+ *
+ * This function enables the LPUART interrupts according to a provided mask. The mask
+ * is a logical OR of enumeration members. See the @ref _lpuart_interrupt_enable.
+ * This examples shows how to enable TX empty interrupt and RX full interrupt:
+ * @code
+ *     LPUART_EnableInterrupts(LPUART1,kLPUART_TxDataRegEmptyInterruptEnable | kLPUART_RxDataRegFullInterruptEnable);
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @param mask The interrupts to enable. Logical OR of @ref _uart_interrupt_enable.
+ */
+void LPUART_EnableInterrupts(LPUART_Type *base, uint32_t mask);
+
+/*!
+ * @brief Disables  LPUART interrupts according to a provided mask.
+ *
+ * This function disables the LPUART interrupts according to a provided mask. The mask
+ * is a logical OR of enumeration members. See @ref _lpuart_interrupt_enable.
+ * This example shows how to disable the TX empty interrupt and RX full interrupt:
+ * @code
+ *     LPUART_DisableInterrupts(LPUART1,kLPUART_TxDataRegEmptyInterruptEnable | kLPUART_RxDataRegFullInterruptEnable);
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @param mask The interrupts to disable. Logical OR of @ref _lpuart_interrupt_enable.
+ */
+void LPUART_DisableInterrupts(LPUART_Type *base, uint32_t mask);
+
+/*!
+ * @brief Gets enabled LPUART interrupts.
+ *
+ * This function gets the enabled LPUART interrupts. The enabled interrupts are returned
+ * as the logical OR value of the enumerators @ref _lpuart_interrupt_enable. To check
+ * a specific interrupt enable status, compare the return value with enumerators
+ * in @ref _lpuart_interrupt_enable.
+ * For example, to check whether the TX empty interrupt is enabled:
+ * @code
+ *     uint32_t enabledInterrupts = LPUART_GetEnabledInterrupts(LPUART1);
+ *
+ *     if (kLPUART_TxDataRegEmptyInterruptEnable & enabledInterrupts)
+ *     {
+ *         ...
+ *     }
+ * @endcode
+ *
+ * @param base LPUART peripheral base address.
+ * @return LPUART interrupt flags which are logical OR of the enumerators in @ref _lpuart_interrupt_enable.
+ */
+uint32_t LPUART_GetEnabledInterrupts(LPUART_Type *base);
+
+#if defined(FSL_FEATURE_LPUART_HAS_DMA_ENABLE) && FSL_FEATURE_LPUART_HAS_DMA_ENABLE
+/*!
+ * @brief Gets the LPUART data register address.
+ *
+ * This function returns the LPUART data register address, which is mainly used by the DMA/eDMA.
+ *
+ * @param base LPUART peripheral base address.
+ * @return LPUART data register addresses which are used both by the transmitter and receiver.
+ */
+static inline uint32_t LPUART_GetDataRegisterAddress(LPUART_Type *base)
+{
+    return (uint32_t) & (base->DATA);
+}
+
+/*!
+ * @brief Enables or disables the LPUART transmitter DMA request.
+ *
+ * This function enables or disables the transmit data register empty flag, STAT[TDRE], to generate DMA requests.
+ *
+ * @param base LPUART peripheral base address.
+ * @param enable True to enable, false to disable.
+ */
+static inline void LPUART_EnableTxDMA(LPUART_Type *base, bool enable)
+{
+    if (enable)
+    {
+        base->BAUD |= LPUART_BAUD_TDMAE_MASK;
+        base->CTRL |= LPUART_CTRL_TIE_MASK;
+    }
+    else
+    {
+        base->BAUD &= ~LPUART_BAUD_TDMAE_MASK;
+        base->CTRL &= ~LPUART_CTRL_TIE_MASK;
+    }
+}
+
+/*!
+ * @brief Enables or disables the LPUART receiver DMA.
+ *
+ * This function enables or disables the receiver data register full flag, STAT[RDRF], to generate DMA requests.
+ *
+ * @param base LPUART peripheral base address.
+ * @param enable True to enable, false to disable.
+ */
+static inline void LPUART_EnableRxDMA(LPUART_Type *base, bool enable)
+{
+    if (enable)
+    {
+        base->BAUD |= LPUART_BAUD_RDMAE_MASK;
+        base->CTRL |= LPUART_CTRL_RIE_MASK;
+    }
+    else
+    {
+        base->BAUD &= ~LPUART_BAUD_RDMAE_MASK;
+        base->CTRL &= ~LPUART_CTRL_RIE_MASK;
+    }
+}
+
+/* @} */
+#endif /* FSL_FEATURE_LPUART_HAS_DMA_ENABLE */
+
+/*!
+ * @name Bus Operations
+ * @{
+ */
+
+/*!
+ * @brief Enables or disables the LPUART transmitter.
+ *
+ * This function enables or disables the LPUART transmitter.
+ *
+ * @param base LPUART peripheral base address.
+ * @param enable True to enable, false to disable.
+ */
+static inline void LPUART_EnableTx(LPUART_Type *base, bool enable)
+{
+    if (enable)
+    {
+        base->CTRL |= LPUART_CTRL_TE_MASK;
+    }
+    else
+    {
+        base->CTRL &= ~LPUART_CTRL_TE_MASK;
+    }
+}
+
+/*!
+ * @brief Enables or disables the LPUART receiver.
+ *
+ * This function enables or disables the LPUART receiver.
+ *
+ * @param base LPUART peripheral base address.
+ * @param enable True to enable, false to disable.
+ */
+static inline void LPUART_EnableRx(LPUART_Type *base, bool enable)
+{
+    if (enable)
+    {
+        base->CTRL |= LPUART_CTRL_RE_MASK;
+    }
+    else
+    {
+        base->CTRL &= ~LPUART_CTRL_RE_MASK;
+    }
+}
+
+/*!
+ * @brief Writes to the transmitter register.
+ *
+ * This function writes data to the transmitter register directly. The upper layer must
+ * ensure that the TX register is empty or that the TX FIFO has room before calling this function.
+ *
+ * @param base LPUART peripheral base address.
+ * @param data Data write to the TX register.
+ */
+static inline void LPUART_WriteByte(LPUART_Type *base, uint8_t data)
+{
+    base->DATA = data;
+}
+
+/*!
+ * @brief Reads the receiver register.
+ *
+ * This function reads data from the receiver register directly. The upper layer must
+ * ensure that the receiver register is full or that the RX FIFO has data before calling this function.
+ *
+ * @param base LPUART peripheral base address.
+ * @return Data read from data register.
+ */
+static inline uint8_t LPUART_ReadByte(LPUART_Type *base)
+{
+#if defined(FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT) && FSL_FEATURE_LPUART_HAS_7BIT_DATA_SUPPORT
+    uint32_t ctrl = base->CTRL;
+    bool isSevenDataBits =
+        ((ctrl & LPUART_CTRL_M7_MASK) ||
+         ((!(ctrl & LPUART_CTRL_M7_MASK)) && (!(ctrl & LPUART_CTRL_M_MASK)) && (ctrl & LPUART_CTRL_PE_MASK)));
+
+    if (isSevenDataBits)
+    {
+        return (base->DATA & 0x7F);
+    }
+    else
+    {
+        return base->DATA;
+    }
+#else
+    return base->DATA;
+#endif
+}
+
+/*!
+ * @brief Writes to the transmitter register using a blocking method.
+ *
+ * This function polls the transmitter register, waits for the register to be empty or  for TX FIFO to have
+ * room, and writes data to the transmitter buffer.
+ *
+ * @note This function does not check whether all data has been sent out to the bus.
+ * Before disabling the transmitter, check the kLPUART_TransmissionCompleteFlag to ensure that the transmit is
+ * finished.
+ *
+ * @param base LPUART peripheral base address.
+ * @param data Start address of the data to write.
+ * @param length Size of the data to write.
+ */
+void LPUART_WriteBlocking(LPUART_Type *base, const uint8_t *data, size_t length);
+
+/*!
+* @brief Reads the receiver data register using a blocking method.
+ *
+ * This function polls the receiver register, waits for the receiver register full or receiver FIFO
+ * has data, and reads data from the TX register.
+ *
+ * @param base LPUART peripheral base address.
+ * @param data Start address of the buffer to store the received data.
+ * @param length Size of the buffer.
+ * @retval kStatus_LPUART_RxHardwareOverrun Receiver overrun happened while receiving data.
+ * @retval kStatus_LPUART_NoiseError Noise error happened while receiving data.
+ * @retval kStatus_LPUART_FramingError Framing error happened while receiving data.
+ * @retval kStatus_LPUART_ParityError Parity error happened while receiving data.
+ * @retval kStatus_Success Successfully received all data.
+ */
+status_t LPUART_ReadBlocking(LPUART_Type *base, uint8_t *data, size_t length);
+
+/* @} */
+
+/*!
+ * @name Transactional
+ * @{
+ */
+
+/*!
+ * @brief Initializes the LPUART handle.
+ *
+ * This function initializes the LPUART handle, which can be used for other LPUART
+ * transactional APIs. Usually, for a specified LPUART instance,
+ * call this API once to get the initialized handle.
+ *
+ * The LPUART driver supports the "background" receiving, which means that user can set up
+ * an RX ring buffer optionally. Data received is stored into the ring buffer even when the
+ * user doesn't call the LPUART_TransferReceiveNonBlocking() API. If there is already data received
+ * in the ring buffer, the user can get the received data from the ring buffer directly.
+ * The ring buffer is disabled if passing NULL as @p ringBuffer.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param callback Callback function.
+ * @param userData User data.
+ */
+void LPUART_TransferCreateHandle(LPUART_Type *base,
+                                 lpuart_handle_t *handle,
+                                 lpuart_transfer_callback_t callback,
+                                 void *userData);
+/*!
+ * @brief Transmits a buffer of data using the interrupt method.
+ *
+ * This function send data using an interrupt method. This is a non-blocking function, which
+ * returns directly without waiting for all data written to the transmitter register. When
+ * all data is written to the TX register in the ISR, the LPUART driver calls the callback
+ * function and passes the @ref kStatus_LPUART_TxIdle as status parameter.
+ *
+ * @note The kStatus_LPUART_TxIdle is passed to the upper layer when all data are written
+ * to the TX register. However, there is no check to ensure that all the data sent out. Before disabling the TX,
+ * check the kLPUART_TransmissionCompleteFlag to ensure that the transmit is finished.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param xfer LPUART transfer structure, see #lpuart_transfer_t.
+ * @retval kStatus_Success Successfully start the data transmission.
+ * @retval kStatus_LPUART_TxBusy Previous transmission still not finished, data not all written to the TX register.
+ * @retval kStatus_InvalidArgument Invalid argument.
+ */
+status_t LPUART_TransferSendNonBlocking(LPUART_Type *base, lpuart_handle_t *handle, lpuart_transfer_t *xfer);
+
+/*!
+ * @brief Sets up the RX ring buffer.
+ *
+ * This function sets up the RX ring buffer to a specific UART handle.
+ *
+ * When the RX ring buffer is used, data received is stored into the ring buffer even when
+ * the user doesn't call the UART_TransferReceiveNonBlocking() API. If there is already data received
+ * in the ring buffer, the user can get the received data from the ring buffer directly.
+ *
+ * @note When using RX ring buffer, one byte is reserved for internal use. In other
+ * words, if @p ringBufferSize is 32, then only 31 bytes are used for saving data.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param ringBuffer Start address of ring buffer for background receiving. Pass NULL to disable the ring buffer.
+ * @param ringBufferSize size of the ring buffer.
+ */
+void LPUART_TransferStartRingBuffer(LPUART_Type *base,
+                                    lpuart_handle_t *handle,
+                                    uint8_t *ringBuffer,
+                                    size_t ringBufferSize);
+
+/*!
+ * @brief Aborts the background transfer and uninstalls the ring buffer.
+ *
+ * This function aborts the background transfer and uninstalls the ring buffer.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ */
+void LPUART_TransferStopRingBuffer(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief Aborts the interrupt-driven data transmit.
+ *
+ * This function aborts the interrupt driven data sending. The user can get the remainBtyes to find out
+ * how many bytes are not sent out.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ */
+void LPUART_TransferAbortSend(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief Gets the number of bytes that have been written to the LPUART transmitter register.
+ *
+ * This function gets the number of bytes that have been written to LPUART TX
+ * register by an interrupt method.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param count Send bytes count.
+ * @retval kStatus_NoTransferInProgress No send in progress.
+ * @retval kStatus_InvalidArgument Parameter is invalid.
+ * @retval kStatus_Success Get successfully through the parameter \p count;
+ */
+status_t LPUART_TransferGetSendCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count);
+
+/*!
+ * @brief Receives a buffer of data using the interrupt method.
+ *
+ * This function receives data using an interrupt method. This is a non-blocking function
+ * which returns without waiting to ensure that all data are received.
+ * If the RX ring buffer is used and not empty, the data in the ring buffer is copied and
+ * the parameter @p receivedBytes shows how many bytes are copied from the ring buffer.
+ * After copying, if the data in the ring buffer is not enough for read, the receive
+ * request is saved by the LPUART driver. When the new data arrives, the receive request
+ * is serviced first. When all data is received, the LPUART driver notifies the upper layer
+ * through a callback function and passes a status parameter @ref kStatus_UART_RxIdle.
+ * For example, the upper layer needs 10 bytes but there are only 5 bytes in ring buffer.
+ * The 5 bytes are copied to xfer->data, which returns with the
+ * parameter @p receivedBytes set to 5. For the remaining 5 bytes, the newly arrived data is
+ * saved from xfer->data[5]. When 5 bytes are received, the LPUART driver notifies the upper layer.
+ * If the RX ring buffer is not enabled, this function enables the RX and RX interrupt
+ * to receive data to xfer->data. When all data is received, the upper layer is notified.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param xfer LPUART transfer structure, see #uart_transfer_t.
+ * @param receivedBytes Bytes received from the ring buffer directly.
+ * @retval kStatus_Success Successfully queue the transfer into the transmit queue.
+ * @retval kStatus_LPUART_RxBusy Previous receive request is not finished.
+ * @retval kStatus_InvalidArgument Invalid argument.
+ */
+status_t LPUART_TransferReceiveNonBlocking(LPUART_Type *base,
+                                           lpuart_handle_t *handle,
+                                           lpuart_transfer_t *xfer,
+                                           size_t *receivedBytes);
+
+/*!
+ * @brief Aborts the interrupt-driven data receiving.
+ *
+ * This function aborts the interrupt-driven data receiving. The user can get the remainBytes to find out
+ * how many bytes not received yet.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ */
+void LPUART_TransferAbortReceive(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief Gets the number of bytes that have been received.
+ *
+ * This function gets the number of bytes that have been received.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ * @param count Receive bytes count.
+ * @retval kStatus_NoTransferInProgress No receive in progress.
+ * @retval kStatus_InvalidArgument Parameter is invalid.
+ * @retval kStatus_Success Get successfully through the parameter \p count;
+ */
+status_t LPUART_TransferGetReceiveCount(LPUART_Type *base, lpuart_handle_t *handle, uint32_t *count);
+
+/*!
+ * @brief LPUART IRQ handle function.
+ *
+ * This function handles the LPUART transmit and receive IRQ request.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ */
+void LPUART_TransferHandleIRQ(LPUART_Type *base, lpuart_handle_t *handle);
+
+/*!
+ * @brief LPUART Error IRQ handle function.
+ *
+ * This function handles the LPUART error IRQ request.
+ *
+ * @param base LPUART peripheral base address.
+ * @param handle LPUART handle pointer.
+ */
+void LPUART_TransferHandleErrorIRQ(LPUART_Type *base, lpuart_handle_t *handle);
+
+/* @} */
+
+#if defined(__cplusplus)
+}
+#endif
+
+/*! @}*/
+
+#endif /* _FSL_LPUART_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.c
new file mode 100644 (file)
index 0000000..ed982a6
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2016, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "fsl_msmc.h"
+
+#if defined(__riscv)
+#define CONFIG_NORMAL_SLEEP EVENT_UNIT->SLPCTRL = (EVENT_UNIT->SLPCTRL & ~0x03) | (1 << 0)
+#define CONFIG_DEEP_SLEEP EVENT_UNIT->SLPCTRL |= 0x03;
+#else
+#define CONFIG_NORMAL_SLEEP SCB->SCR &= ~SCB_SCR_SLEEPDEEP_Msk
+#define CONFIG_DEEP_SLEEP SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk
+#endif
+
+status_t SMC_SetPowerModeRun(SMC_Type *base)
+{
+    uint32_t reg;
+
+    reg = base->PMCTRL;
+    /* configure Normal RUN mode */
+    reg &= ~SMC_PMCTRL_RUNM_MASK;
+    reg |= (kSMC_RunNormal << SMC_PMCTRL_RUNM_SHIFT);
+    base->PMCTRL = reg;
+
+    return kStatus_Success;
+}
+
+status_t SMC_SetPowerModeHsrun(SMC_Type *base)
+{
+    uint32_t reg;
+
+    reg = base->PMCTRL;
+    /* configure High Speed RUN mode */
+    reg &= ~SMC_PMCTRL_RUNM_MASK;
+    reg |= (kSMC_Hsrun << SMC_PMCTRL_RUNM_SHIFT);
+    base->PMCTRL = reg;
+
+    return kStatus_Success;
+}
+
+status_t SMC_SetPowerModeWait(SMC_Type *base)
+{
+    /* configure Normal Wait mode */
+    CONFIG_NORMAL_SLEEP;
+
+    __DSB();
+    __WFI();
+    __ISB();
+
+    return kStatus_Success;
+}
+
+status_t SMC_SetPowerModeStop(SMC_Type *base, smc_partial_stop_option_t option)
+{
+    uint32_t reg;
+
+    /* configure the Partial Stop mode in Noraml Stop mode */
+    reg = base->PMCTRL;
+    reg &= ~(SMC_PMCTRL_PSTOPO_MASK | SMC_PMCTRL_STOPM_MASK);
+    reg |= ((uint32_t)option << SMC_PMCTRL_PSTOPO_SHIFT) | (kSMC_StopNormal << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+    /* Set the SLEEPDEEP bit to enable deep sleep mode (stop mode) */
+    CONFIG_DEEP_SLEEP;
+
+    /* read back to make sure the configuration valid before entering stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+#if (defined(FSL_FEATURE_SMC_HAS_PMCTRL_STOPA) && FSL_FEATURE_SMC_HAS_PMCTRL_STOPA)
+    /* check whether the power mode enter Stop mode succeed */
+    if (base->PMCTRL & SMC_PMCTRL_STOPA_MASK)
+    {
+        return kStatus_SMC_StopAbort;
+    }
+    else
+    {
+        return kStatus_Success;
+    }
+#else
+    return kStatus_Success;
+#endif /* FSL_FEATURE_SMC_HAS_PMCTRL_STOPA */
+}
+
+status_t SMC_SetPowerModeVlpr(SMC_Type *base)
+{
+    uint32_t reg;
+
+    reg = base->PMCTRL;
+    /* configure VLPR mode */
+    reg &= ~SMC_PMCTRL_RUNM_MASK;
+    reg |= (kSMC_RunVlpr << SMC_PMCTRL_RUNM_SHIFT);
+    base->PMCTRL = reg;
+
+    return kStatus_Success;
+}
+
+status_t SMC_SetPowerModeVlpw(SMC_Type *base)
+{
+    /* configure VLPW mode */
+    /* Clear the SLEEPDEEP bit to disable deep sleep mode */
+    CONFIG_NORMAL_SLEEP;
+
+    __DSB();
+    __WFI();
+    __ISB();
+
+    return kStatus_Success;
+}
+
+status_t SMC_SetPowerModeVlps(SMC_Type *base)
+{
+    uint32_t reg;
+
+    /* configure VLPS mode */
+    reg = base->PMCTRL;
+    reg &= ~SMC_PMCTRL_STOPM_MASK;
+    reg |= (kSMC_StopVlps << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+    /* Set the SLEEPDEEP bit to enable deep sleep mode */
+    CONFIG_DEEP_SLEEP;
+
+    /* read back to make sure the configuration valid before enter stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+#if (defined(FSL_FEATURE_SMC_HAS_PMCTRL_STOPA) && FSL_FEATURE_SMC_HAS_PMCTRL_STOPA)
+    /* check whether the power mode enter Stop mode succeed */
+    if (base->PMCTRL & SMC_PMCTRL_STOPA_MASK)
+    {
+        return kStatus_SMC_StopAbort;
+    }
+    else
+    {
+        return kStatus_Success;
+    }
+#else
+    return kStatus_Success;
+#endif /* FSL_FEATURE_SMC_HAS_PMCTRL_STOPA */
+}
+
+status_t SMC_SetPowerModeLls(SMC_Type *base)
+{
+    uint32_t reg;
+
+    /* configure to LLS mode */
+    reg = base->PMCTRL;
+    reg &= ~SMC_PMCTRL_STOPM_MASK;
+    reg |= (kSMC_StopLls << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+    /* Set the SLEEPDEEP bit to enable deep sleep mode */
+    CONFIG_DEEP_SLEEP;
+
+    /* read back to make sure the configuration valid before entering stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+#if (defined(FSL_FEATURE_SMC_HAS_PMCTRL_STOPA) && FSL_FEATURE_SMC_HAS_PMCTRL_STOPA)
+    /* check whether the power mode enter Stop mode succeed */
+    if (base->PMCTRL & SMC_PMCTRL_STOPA_MASK)
+    {
+        return kStatus_SMC_StopAbort;
+    }
+    else
+    {
+        return kStatus_Success;
+    }
+#else
+    return kStatus_Success;
+#endif /* FSL_FEATURE_SMC_HAS_PMCTRL_STOPA */
+}
+
+#if (defined(FSL_FEATURE_SMC_HAS_SUB_STOP_MODE) && FSL_FEATURE_SMC_HAS_SUB_STOP_MODE)
+
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE0) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE0)
+status_t SMC_SetPowerModeVlls0(SMC_Type *base)
+{
+    uint32_t reg;
+
+    /* configure to VLLS mode */
+    reg = base->PMCTRL;
+    reg &= ~SMC_PMCTRL_STOPM_MASK;
+    reg |= (kSMC_StopVlls0 << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+    /* Set the SLEEPDEEP bit to enable deep sleep mode */
+    CONFIG_DEEP_SLEEP;
+
+    /* read back to make sure the configuration valid before enter stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+    return kStatus_Success;
+}
+#endif /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 */
+
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE2) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE2)
+status_t SMC_SetPowerModeVlls2(SMC_Type *base)
+{
+    uint32_t reg;
+
+    /* configure to VLLS mode */
+    reg = base->PMCTRL;
+    reg &= ~SMC_PMCTRL_STOPM_MASK;
+    reg |= (kSMC_StopVlls2 << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+    /* Set the SLEEPDEEP bit to enable deep sleep mode */
+    CONFIG_DEEP_SLEEP;
+
+    /* read back to make sure the configuration valid before enter stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+    return kStatus_Success;
+}
+#endif /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 */
+
+#else /* FSL_FEATURE_SMC_HAS_SUB_STOP_MODE */
+status_t SMC_SetPowerModeVlls(SMC_Type *base)
+{
+    uint32_t reg;
+
+    /* configure to VLLS mode */
+    reg = base->PMCTRL;
+    reg &= ~SMC_PMCTRL_STOPM_MASK;
+    reg |= (kSMC_StopVlls << SMC_PMCTRL_STOPM_SHIFT);
+    base->PMCTRL = reg;
+
+#if defined(__riscv)
+    EVENT->SCR = (EVENT->SCR & ~0x03) | (1 << 1);
+#else
+    /* Set the SLEEPDEEP bit to enable deep sleep mode */
+    CONFIG_DEEP_SLEEP;
+#endif
+
+    /* read back to make sure the configuration valid before enter stop mode */
+    (void)base->PMCTRL;
+    __DSB();
+    __WFI();
+    __ISB();
+
+#if (defined(FSL_FEATURE_SMC_HAS_PMCTRL_STOPA) && FSL_FEATURE_SMC_HAS_PMCTRL_STOPA)
+    /* check whether the power mode enter Stop mode succeed */
+    if (base->PMCTRL & SMC_PMCTRL_STOPA_MASK)
+    {
+        return kStatus_SMC_StopAbort;
+    }
+    else
+    {
+        return kStatus_Success;
+    }
+#else
+    return kStatus_Success;
+#endif /* FSL_FEATURE_SMC_HAS_PMCTRL_STOPA */
+}
+#endif /* FSL_FEATURE_SMC_HAS_SUB_STOP_MODE */
+
+void SMC_ConfigureResetPinFilter(SMC_Type *base, const smc_reset_pin_filter_config_t *config)
+{
+    assert(config);
+
+    uint32_t reg;
+
+    reg = SMC_RPC_FILTCFG(config->slowClockFilterCount) | SMC_RPC_FILTEN(config->enableFilter);
+#if (defined(FSL_FEATURE_SMC_HAS_RPC_LPOFEN) && FSL_FEATURE_SMC_HAS_RPC_LPOFEN)
+    if (config->enableLpoFilter)
+    {
+        reg |= SMC_RPC_LPOFEN_MASK;
+    }
+#endif /* FSL_FEATURE_SMC_HAS_RPC_LPOFEN */
+
+    base->RPC = reg;
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.h
new file mode 100644 (file)
index 0000000..8b0907b
--- /dev/null
@@ -0,0 +1,701 @@
+/*
+ * Copyright (c) 2016, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _FSL_MSMC_H_
+#define _FSL_MSMC_H_
+
+#include "fsl_common.h"
+
+/*! @addtogroup msmc */
+/*! @{*/
+
+/*! @file */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @name Driver version */
+/*@{*/
+/*! @brief MSMC driver version 2.1.0. */
+#define FSL_MSMC_DRIVER_VERSION (MAKE_VERSION(2, 1, 0))
+/*@}*/
+
+/*!
+ * @brief Power Modes Protection
+ */
+typedef enum _smc_power_mode_protection
+{
+    kSMC_AllowPowerModeVlls = SMC_PMPROT_AVLLS_MASK,   /*!< Allow Very-Low-Leakage Stop Mode. */
+    kSMC_AllowPowerModeLls = SMC_PMPROT_ALLS_MASK,     /*!< Allow Low-Leakage Stop Mode.      */
+    kSMC_AllowPowerModeVlp = SMC_PMPROT_AVLP_MASK,     /*!< Allow Very-Low-Power Mode.        */
+    kSMC_AllowPowerModeHsrun = SMC_PMPROT_AHSRUN_MASK, /*!< Allow High Speed Run mode.        */
+    kSMC_AllowPowerModeAll = SMC_PMPROT_AVLLS_MASK | SMC_PMPROT_ALLS_MASK | SMC_PMPROT_AVLP_MASK |
+                             SMC_PMPROT_AHSRUN_MASK /*!< Allow all power mode.              */
+} smc_power_mode_protection_t;
+
+/*!
+ * @brief Power Modes in PMSTAT
+ */
+typedef enum _smc_power_state
+{
+    kSMC_PowerStateRun = 1U,        /*!< 0000_0001 - Current power mode is RUN   */
+    kSMC_PowerStateStop = 1U << 1U, /*!< 0000_0010 - Current power mode is any STOP mode  */
+    kSMC_PowerStateVlpr = 1U << 2U, /*!< 0000_0100 - Current power mode is VLPR  */
+    kSMC_PowerStateHsrun = 1U << 7U /*!< 1000_0000 - Current power mode is HSRUN */
+} smc_power_state_t;
+
+/*!
+ * @brief Power Stop Entry Status in PMSTAT
+ */
+typedef enum _smc_power_stop_entry_status
+{
+    kSMC_PowerStopEntryAlt0 = 1U,      /*!< Indicates a Stop mode entry since this field was last cleared. */
+    kSMC_PowerStopEntryAlt1 = 1U << 1, /*!< Indicates the system bus masters acknowledged the Stop mode entry. */
+    kSMC_PowerStopEntryAlt2 = 1U << 2, /*!< Indicates the system clock peripherals acknowledged the Stop mode entry. */
+    kSMC_PowerStopEntryAlt3 = 1U << 3, /*!< Indicates the bus clock peripherals acknowledged the Stop mode entry. */
+    kSMC_PowerStopEntryAlt4 = 1U << 4, /*!< Indicates the slow clock peripherals acknowledged the Stop mode entry. */
+    kSMC_PowerStopEntryAlt5 = 1U << 5, /*!< Indicates Stop mode entry completed. */
+} smc_power_stop_entry_status_t;
+
+/*!
+ * @brief Run mode definition
+ */
+typedef enum _smc_run_mode
+{
+    kSMC_RunNormal = 0U, /*!< normal RUN mode.             */
+    kSMC_RunVlpr = 2U,   /*!< Very-Low-Power RUN mode.     */
+    kSMC_Hsrun = 3U      /*!< High Speed Run mode (HSRUN). */
+} smc_run_mode_t;
+
+/*!
+ * @brief Stop mode definition
+ */
+typedef enum _smc_stop_mode
+{
+    kSMC_StopNormal = 0U, /*!< Normal STOP mode.           */
+    kSMC_StopVlps = 2U,   /*!< Very-Low-Power STOP mode.   */
+    kSMC_StopLls = 3U,    /*!< Low-Leakage Stop mode.      */
+#if (defined(FSL_FEATURE_SMC_HAS_SUB_STOP_MODE) && FSL_FEATURE_SMC_HAS_SUB_STOP_MODE)
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE2) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE2)
+    kSMC_StopVlls2 = 4U, /*!< Very-Low-Leakage Stop mode, VLPS2/3. */
+#endif                   /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE2 */
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE0) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE0)
+    kSMC_StopVlls0 = 6U, /*!< Very-Low-Leakage Stop mode, VLPS0/1. */
+#endif                   /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 */
+#else
+    kSMC_StopVlls = 4U, /*!< Very-Low-Leakage Stop mode. */
+#endif /* FSL_FEATURE_SMC_HAS_SUB_STOP_MODE */
+} smc_stop_mode_t;
+
+/*!
+ * @brief Partial STOP option
+ */
+typedef enum _smc_partial_stop_mode
+{
+    kSMC_PartialStop = 0U,  /*!< STOP - Normal Stop mode*/
+    kSMC_PartialStop1 = 1U, /*!< Partial Stop with both system and bus clocks disabled*/
+    kSMC_PartialStop2 = 2U, /*!< Partial Stop with system clock disabled and bus clock enabled*/
+    kSMC_PartialStop3 = 3U, /*!< Partial Stop with system clock enabled and bus clock disabled*/
+} smc_partial_stop_option_t;
+
+/*!
+ * @brief SMC configuration status
+ */
+enum _smc_status
+{
+    kStatus_SMC_StopAbort = MAKE_STATUS(kStatusGroup_POWER, 0), /*!< Entering Stop mode is abort*/
+};
+
+/*!
+ * @brief System Reset Source Name definitions
+ */
+typedef enum _smc_reset_source
+{
+    kSMC_SourceWakeup = SMC_SRS_WAKEUP_MASK, /*!< Very low-leakage wakeup reset */
+    kSMC_SourcePor = SMC_SRS_POR_MASK,       /*!< Power on reset */
+    kSMC_SourceLvd = SMC_SRS_LVD_MASK,       /*!< Low-voltage detect reset */
+    kSMC_SourceHvd = SMC_SRS_HVD_MASK,       /*!< High-voltage detect reset */
+    kSMC_SourceWarm = SMC_SRS_WARM_MASK,     /*!< Warm reset. Warm Reset flag will assert if any of the system reset
+                                                 sources in this register assert (SRS[31:8]) */
+    kSMC_SourceFatal = SMC_SRS_FATAL_MASK,   /*!< Fatal reset */
+    kSMC_SourceCore =
+        SMC_SRS_CORE_MASK, /*!< Software reset that only reset the core, NOT a sticky system reset source. */
+    kSMC_SourcePin = SMC_SRS_PIN_MASK,         /*!< RESET_B pin reset. */
+    kSMC_SourceMdm = SMC_SRS_MDM_MASK,         /*!< MDM reset. */
+    kSMC_SourceRstAck = SMC_SRS_RSTACK_MASK,   /*!< Reset Controller timeout reset. */
+    kSMC_SourceStopAck = SMC_SRS_STOPACK_MASK, /*!< Stop timeout reset */
+    kSMC_SourceScg = SMC_SRS_SCG_MASK,         /*!< SCG loss of lock or loss of clock */
+    kSMC_SourceWdog = SMC_SRS_WDOG_MASK,       /*!< Watchdog reset */
+    kSMC_SourceSoftware = SMC_SRS_SW_MASK,     /*!< Software reset */
+    kSMC_SourceLockup = SMC_SRS_LOCKUP_MASK,   /*!< Lockup reset. Core lockup or exception. */
+    kSMC_SourceJtag = SMC_SRS_JTAG_MASK,       /*!< JTAG system reset */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_SECVIO) && FSL_FEATURE_SMC_HAS_SRS_SECVIO)
+    kSMC_SourceSecVio = SMC_SRS_SECVIO_MASK, /*!< Security violation reset */
+#endif                                       /* FSL_FEATURE_SMC_HAS_SRS_SECVIO */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_TAMPER) && FSL_FEATURE_SMC_HAS_SRS_TAMPER)
+    kSMC_SourceTamper = SMC_SRS_TAMPER_MASK, /*!< Tamper reset */
+#endif                                       /* FSL_FEATURE_SMC_HAS_SRS_TAMPER */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_CORE0) && FSL_FEATURE_SMC_HAS_SRS_CORE0)
+    kSMC_SourceCore0 = SMC_SRS_CORE0_MASK, /*!< Core0 System Reset. */
+#endif                                     /* FSL_FEATURE_SMC_HAS_SRS_CORE0 */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_CORE1) && FSL_FEATURE_SMC_HAS_SRS_CORE1)
+    kSMC_SourceCore1 = SMC_SRS_CORE1_MASK, /*!< Core1 System Reset. */
+#endif                                     /* FSL_FEATURE_SMC_HAS_SRS_CORE1 */
+    /* Source All. */
+    kSMC_SourceAll = SMC_SRS_WAKEUP_MASK | SMC_SRS_POR_MASK | SMC_SRS_LVD_MASK | SMC_SRS_HVD_MASK | SMC_SRS_WARM_MASK |
+                     SMC_SRS_FATAL_MASK | SMC_SRS_CORE_MASK | SMC_SRS_PIN_MASK | SMC_SRS_MDM_MASK |
+                     SMC_SRS_RSTACK_MASK | SMC_SRS_STOPACK_MASK | SMC_SRS_SCG_MASK | SMC_SRS_WDOG_MASK |
+                     SMC_SRS_SW_MASK | SMC_SRS_LOCKUP_MASK | SMC_SRS_JTAG_MASK
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_SECVIO) && FSL_FEATURE_SMC_HAS_SRS_SECVIO)
+                     |
+                     SMC_SRS_SECVIO_MASK
+#endif /* FSL_FEATURE_SMC_HAS_SRS_SECVIO */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_TAMPER) && FSL_FEATURE_SMC_HAS_SRS_TAMPER)
+                     |
+                     SMC_SRS_TAMPER_MASK
+#endif /* FSL_FEATURE_SMC_HAS_SRS_TAMPER */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_CORE0) && FSL_FEATURE_SMC_HAS_SRS_CORE0)
+                     |
+                     SMC_SRS_CORE0_MASK
+#endif /* FSL_FEATURE_SMC_HAS_SRS_CORE0 */
+#if (defined(FSL_FEATURE_SMC_HAS_SRS_CORE1) && FSL_FEATURE_SMC_HAS_SRS_CORE1)
+                     |
+                     SMC_SRS_CORE1_MASK
+#endif /* FSL_FEATURE_SMC_HAS_SRS_CORE1 */
+    ,
+} smc_reset_source_t;
+
+/*!
+ * @brief System reset interrupt enable bit definitions.
+ */
+typedef enum _smc_interrupt_enable
+{
+    kSMC_IntNone = 0U,                       /*!< No interrupt enabled.       */
+    kSMC_IntPin = SMC_SRIE_PIN_MASK,         /*!< Pin reset interrupt.        */
+    kSMC_IntMdm = SMC_SRIE_MDM_MASK,         /*!< MDM reset interrupt.        */
+    kSMC_IntStopAck = SMC_SRIE_STOPACK_MASK, /*!< Stop timeout reset interrupt.  */
+    kSMC_IntWdog = SMC_SRIE_WDOG_MASK,       /*!< Watchdog interrupt.         */
+    kSMC_IntSoftware = SMC_SRIE_SW_MASK,     /*!< Software reset interrupts.  */
+    kSMC_IntLockup = SMC_SRIE_LOCKUP_MASK,   /*!< Lock up interrupt.          */
+#if (defined(FSL_FEATURE_SMC_HAS_CSRE_CORE0) && FSL_FEATURE_SMC_HAS_CSRE_CORE0)
+    kSMC_IntCore0 = SMC_SRIE_CORE0_MASK, /*! Core 0 interrupts. */
+#endif                                   /* FSL_FEATURE_SMC_HAS_CSRE_CORE0 */
+#if (defined(FSL_FEATURE_SMC_HAS_CSRE_CORE1) && FSL_FEATURE_SMC_HAS_CSRE_CORE1)
+    kSMC_IntCore1 = SMC_SRIE_CORE1_MASK, /*! Core 1 interrupts. */
+#endif                                   /* FSL_FEATURE_SMC_HAS_CSRE_CORE1 */
+    kSMC_IntAll = SMC_SRIE_PIN_MASK |    /*!< All system reset interrupts.      */
+                  SMC_SRIE_MDM_MASK |
+                  SMC_SRIE_STOPACK_MASK | SMC_SRIE_WDOG_MASK | SMC_SRIE_SW_MASK | SMC_SRIE_LOCKUP_MASK
+#if (defined(FSL_FEATURE_SMC_HAS_CSRE_CORE0) && FSL_FEATURE_SMC_HAS_CSRE_CORE0)
+                  |
+                  SMC_SRIE_CORE0_MASK
+#endif /* FSL_FEATURE_SMC_HAS_CSRE_CORE0 */
+#if (defined(FSL_FEATURE_SMC_HAS_CSRE_CORE1) && FSL_FEATURE_SMC_HAS_CSRE_CORE1)
+                  |
+                  SMC_SRIE_CORE1_MASK
+#endif /* FSL_FEATURE_SMC_HAS_CSRE_CORE1 */
+} smc_interrupt_enable_t;
+
+/*!
+ * @brief Reset pin filter configuration
+ */
+typedef struct _smc_reset_pin_filter_config
+{
+    uint8_t slowClockFilterCount; /*!< Reset pin bus clock filter width from 1 to 32 slow clock cycles.  */
+    bool enableFilter;            /*!< Reset pin filter enable/disable. */
+#if (defined(FSL_FEATURE_SMC_HAS_RPC_LPOFEN) && FSL_FEATURE_SMC_HAS_RPC_LPOFEN)
+    bool enableLpoFilter; /*!< LPO clock reset pin filter enabled in all modes. */
+#endif                    /* FSL_FEATURE_SMC_HAS_RPC_LPOFEN */
+} smc_reset_pin_filter_config_t;
+
+/*******************************************************************************
+ * API
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus*/
+
+/*! @name System mode controller APIs*/
+/*@{*/
+
+/*!
+ * @brief Configures all power mode protection settings.
+ *
+ * This function  configures the power mode protection settings for
+ * supported power modes in the specified chip family. The available power modes
+ * are defined in the smc_power_mode_protection_t. This should be done at an early
+ * system level initialization stage. See the reference manual for details.
+ * This register can only write once after the power reset.
+ *
+ * The allowed modes are passed as bit map, for example, to allow LLS and VLLS,
+ * use SMC_SetPowerModeProtection(kSMC_AllowPowerModeLls | kSMC_AllowPowerModeVlls).
+ * To allow all modes, use SMC_SetPowerModeProtection(kSMC_AllowPowerModeAll).
+ *
+ * @param allowedModes Bitmap of the allowed power modes.
+ */
+static inline void SMC_SetPowerModeProtection(SMC_Type *base, uint8_t allowedModes)
+{
+    base->PMPROT = allowedModes;
+}
+
+/*!
+ * @brief Gets the current power mode status.
+ *
+ * This function  returns the current power mode stat. Once application
+ * switches the power mode, it should always check the stat to check whether it
+ * runs into the specified mode or not. An application  should  check
+ * this mode before switching to a different mode. The system  requires that
+ * only certain modes can switch to other specific modes. See the
+ * reference manual for details and the smc_power_state_t for information about
+ * the power stat.
+ *
+ * @param base SMC peripheral base address.
+ * @return Current power mode status.
+ */
+static inline smc_power_state_t SMC_GetPowerModeState(SMC_Type *base)
+{
+    return (smc_power_state_t)((base->PMSTAT & SMC_PMSTAT_PMSTAT_MASK) >> SMC_PMSTAT_PMSTAT_SHIFT);
+}
+
+#if (defined(FSL_FEATURE_SMC_HAS_PMSTAT_STOPSTAT) && FSL_FEATURE_SMC_HAS_PMSTAT_STOPSTAT)
+/*!
+ * @brief Gets the result of the previous stop mode entry.
+ *
+ * This function  returns the result of the previous stop mode entry.
+ *
+ * @param base SMC peripheral base address.
+ * @return Current power stop entry status.
+ */
+static inline smc_power_stop_entry_status_t SMC_GetStopEntryStatus(SMC_Type *base)
+{
+    return (smc_power_stop_entry_status_t)((base->PMSTAT & SMC_PMSTAT_STOPSTAT_MASK) >> SMC_PMSTAT_STOPSTAT_SHIFT);
+}
+
+/*!
+ * @brief Clears all the result of the previous stop mode entry.
+ *
+ * This function clears all the result of the previous stop mode entry.
+ *
+ * @param base SMC peripheral base address.
+ * @return Current power stop entry status.
+ */
+static inline void SMC_ClearStopEntryStatus(SMC_Type *base)
+{
+    /* Only write 0x01 to clear this field, all other writes are ignored. */
+    base->PMSTAT = (base->PMSTAT & ~SMC_PMSTAT_STOPSTAT_MASK) | SMC_PMSTAT_STOPSTAT(0x01);
+}
+
+#endif /* FSL_FEATURE_SMC_HAS_PMSTAT_STOPSTAT */
+
+/*!
+ * @brief Prepare to enter stop modes
+ *
+ * This function should be called before entering STOP/VLPS/LLS/VLLS modes.
+ */
+static inline void SMC_PreEnterStopModes(void)
+{
+    __disable_irq();
+    __ISB();
+}
+
+/*!
+ * @brief Recovering after wake up from stop modes
+ *
+ * This function should be called after wake up from STOP/VLPS/LLS/VLLS modes.
+ * It is used together with @ref SMC_PreEnterStopModes.
+ */
+static inline void SMC_PostExitStopModes(void)
+{
+    __enable_irq();
+    __ISB();
+}
+
+/*!
+ * @brief Prepare to enter wait modes
+ *
+ * This function should be called before entering WAIT/VLPW modes..
+ */
+static inline void SMC_PreEnterWaitModes(void)
+{
+    __disable_irq();
+    __ISB();
+}
+
+/*!
+ * @brief Recovering after wake up from stop modes
+ *
+ * This function should be called after wake up from WAIT/VLPW modes.
+ * It is used together with @ref SMC_PreEnterWaitModes.
+ */
+static inline void SMC_PostExitWaitModes(void)
+{
+    __enable_irq();
+    __ISB();
+}
+
+/*!
+ * @brief Configure the system to RUN power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeRun(SMC_Type *base);
+
+/*!
+ * @brief Configure the system to HSRUN power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeHsrun(SMC_Type *base);
+
+/*!
+ * @brief Configure the system to WAIT power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeWait(SMC_Type *base);
+
+/*!
+ * @brief Configure the system to Stop power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @param  option Partial Stop mode option.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeStop(SMC_Type *base, smc_partial_stop_option_t option);
+
+/*!
+ * @brief Configure the system to VLPR power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeVlpr(SMC_Type *base);
+
+/*!
+ * @brief Configure the system to VLPW power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeVlpw(SMC_Type *base);
+
+/*!
+ * @brief Configure the system to VLPS power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeVlps(SMC_Type *base);
+/*!
+ * @brief Configure the system to LLS power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeLls(SMC_Type *base);
+
+#if (defined(FSL_FEATURE_SMC_HAS_SUB_STOP_MODE) && FSL_FEATURE_SMC_HAS_SUB_STOP_MODE)
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE0) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE0)
+/*!
+ * @brief Configure the system to VLLS0 power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeVlls0(SMC_Type *base);
+#endif /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE0 */
+#if (defined(FSL_FEATURE_SMC_HAS_STOP_SUBMODE2) && FSL_FEATURE_SMC_HAS_STOP_SUBMODE2)
+/*!
+ * @brief Configure the system to VLLS2 power mode.
+ *
+ * @param base SMC peripheral base address.
+ * @return SMC configuration error code.
+ */
+status_t SMC_SetPowerModeVlls2(SMC_Type *base);
+#endif /* FSL_FEATURE_SMC_HAS_STOP_SUBMODE2 */
+#else
+                        /*!
+                         * @brief Configure the system to VLLS power mode.
+                         *
+                         * @param base SMC peripheral base address.
+                         * @return SMC configuration error code.
+                         */
+status_t SMC_SetPowerModeVlls(SMC_Type *base);
+#endif /* FSL_FEATURE_SMC_HAS_SUB_STOP_MODE */
+
+/*!
+ * @brief Gets the reset source status which caused a previous reset.
+ *
+ * This function gets the current reset source status. Use source masks
+ * defined in the smc_reset_source_t to get the desired source status.
+ *
+ * Example:
+   @code
+   uint32_t resetStatus;
+
+   // To get all reset source statuses.
+   resetStatus = SMC_GetPreviousResetSources(SMC0) & kSMC_SourceAll;
+
+   // To test whether the MCU is reset using Watchdog.
+   resetStatus = SMC_GetPreviousResetSources(SMC0) & kSMC_SourceWdog;
+
+   // To test multiple reset sources.
+   resetStatus = SMC_GetPreviousResetSources(SMC0) & (kSMC_SourceWdog | kSMC_SourcePin);
+   @endcode
+ *
+ * @param base SMC peripheral base address.
+ * @return All reset source status bit map.
+ */
+static inline uint32_t SMC_GetPreviousResetSources(SMC_Type *base)
+{
+    return base->SRS;
+}
+
+/*!
+ * @brief Gets the sticky reset source status.
+ *
+ * This function gets the current reset source status that has not been cleared
+ * by software for some specific source.
+ *
+ * Example:
+   @code
+   uint32_t resetStatus;
+
+   // To get all reset source statuses.
+   resetStatus = SMC_GetStickyResetSources(SMC0) & kSMC_SourceAll;
+
+   // To test whether the MCU is reset using Watchdog.
+   resetStatus = SMC_GetStickyResetSources(SMC0) & kSMC_SourceWdog;
+
+   // To test multiple reset sources.
+   resetStatus = SMC_GetStickyResetSources(SMC0) & (kSMC_SourceWdog | kSMC_SourcePin);
+   @endcode
+ *
+ * @param base SMC peripheral base address.
+ * @return All reset source status bit map.
+ */
+static inline uint32_t SMC_GetStickyResetSources(SMC_Type *base)
+{
+    return base->SSRS;
+}
+
+/*!
+ * @brief Clears the sticky reset source status.
+ *
+ * This function clears the sticky system reset flags indicated by source masks.
+ *
+ * Example:
+   @code
+   // Clears multiple reset sources.
+   SMC_ClearStickyResetSources(SMC0, (kSMC_SourceWdog | kSMC_SourcePin));
+   @endcode
+ *
+ * @param base SMC peripheral base address.
+ * @param sourceMasks reset source status bit map
+ */
+static inline void SMC_ClearStickyResetSources(SMC_Type *base, uint32_t sourceMasks)
+{
+    base->SSRS = sourceMasks;
+}
+
+/*!
+ * @brief Configures the reset pin filter.
+ *
+ * This function sets the reset pin filter including the enablement/disablement and filter width.
+ *
+ * @param base SMC peripheral base address.
+ * @param config Pointer to the configuration structure.
+ */
+void SMC_ConfigureResetPinFilter(SMC_Type *base, const smc_reset_pin_filter_config_t *config);
+
+/*!
+ * @brief Sets the system reset interrupt configuration.
+ *
+ * For a graceful shut down, the MSMC supports delaying the assertion of the system
+ * reset for a period of time when the reset interrupt is generated. This function
+ * can be used to enable the interrupt.
+ * The interrupts are passed in as bit mask. See smc_interrupt_enable_t for details.
+ * For example, to delay a reset after the WDOG timeout or PIN reset occurs, configure as follows:
+ * SMC_SetSystemResetInterruptConfig(SMC0, (kSMC_IntWdog | kSMC_IntPin));
+ *
+ * @param base SMC peripheral base address.
+ * @param intMask   Bit mask of the system reset interrupts to enable. See
+ *                  smc_interrupt_enable_t for details.
+ */
+static inline void SMC_SetSystemResetInterruptConfig(SMC_Type *base, uint32_t intMask)
+{
+    base->SRIE = intMask;
+}
+
+/*!
+ * @brief Gets the source status of the system reset interrupt.
+ *
+ * This function gets the source status of the reset interrupt. Use source masks
+ * defined in the smc_interrupt_enable_t to get the desired source status.
+ *
+ * Example:
+   @code
+   uint32_t interruptStatus;
+
+   // To get all reset interrupt source statuses.
+   interruptStatus = SMC_GetResetInterruptSourcesStatus(SMC0) & kSMC_IntAll;
+
+   // To test whether the reset interrupt of Watchdog is pending.
+   interruptStatus = SMC_GetResetInterruptSourcesStatus(SMC0) & kSMC_IntWdog;
+
+   // To test multiple reset interrupt sources.
+   interruptStatus = SMC_GetResetInterruptSourcesStatus(SMC0) & (kSMC_IntWdog | kSMC_IntPin);
+   @endcode
+ *
+ * @param base SMC peripheral base address.
+ * @return All reset interrupt source status bit map.
+ */
+static inline uint32_t SMC_GetResetInterruptSourcesStatus(SMC_Type *base)
+{
+    return base->SRIF;
+}
+
+/*!
+ * @brief Clears the source status of the system reset interrupt.
+ *
+ * This function clears the source status of the reset interrupt. Use source masks
+ * defined in the smc_interrupt_enable_t to get the desired source status.
+ *
+ * Example:
+   @code
+   uint32_t interruptStatus;
+
+   // To clear all reset interrupt source statuses.
+   MMC_ClearResetInterruptSourcesStatus(SMC0, kSMC_IntAll);
+
+   // To clear the reset interrupt of Watchdog.
+   SMC_ClearResetInterruptSourcesStatus(SMC0, kSMC_IntWdog);
+
+   // To clear multiple reset interrupt sources status.
+   SMC_ClearResetInterruptSourcesStatus(SMC0, (kSMC_IntWdog | kSMC_IntPin));
+   @endcode
+ *
+ * @param base SMC peripheral base address.
+ * @param All reset interrupt source status bit map to clear.
+ */
+static inline void SMC_ClearResetInterruptSourcesStatus(SMC_Type *base, uint32_t intMask)
+{
+    base->SRIF = intMask;
+}
+
+#if (defined(FSL_FEATURE_SMC_HAS_CSRE) && FSL_FEATURE_SMC_HAS_CSRE)
+/*!
+ * @brief Sets the core software reset feature configuration.
+ *
+ * The MSMC supports delaying the assertion of the system reset for a period of time while a core
+ * software reset is generated. This allows software to recover without reseting the entire system.
+ * This function can be used to enable/disable the core software reset feature.
+ * The interrupts are passed in as bit mask. See smc_interrupt_enable_t for details.
+ * For example, to delay a system after the WDOG timeout or PIN core software reset occurs, configure as follows:
+ * SMC_SetCoreSoftwareResetConfig(SMC0, (kSMC_IntWdog | kSMC_IntPin));
+ *
+ * @param base SMC peripheral base address.
+ * @param intMask   Bit mask of the core software reset to enable. See
+ *                  smc_interrupt_enable_t for details.
+ */
+static inline void SMC_SetCoreSoftwareResetConfig(SMC_Type *base, uint32_t intMask)
+{
+    base->CSRE = intMask;
+}
+#endif /* FSL_FEATURE_SMC_HAS_CSRE */
+
+/*!
+ * @brief Gets the boot option configuration.
+ *
+ * This function gets the boot option configuration of MSMC.
+ *
+ * @param base SMC peripheral base address.
+ * @return The boot option configuration. 1 means boot option enabled. 0 means not.
+ */
+static inline uint32_t SMC_GetBootOptionConfig(SMC_Type *base)
+{
+    return base->MR;
+}
+
+#if (defined(FSL_FEATURE_SMC_HAS_FM) && FSL_FEATURE_SMC_HAS_FM)
+/*!
+ * @brief Sets the force boot option configuration.
+ *
+ * This function sets the focus boot option configuration of MSMC. It can force the corresponding
+ * boot option config to assert on next system reset.
+ *
+ * @param base SMC peripheral base address.
+ * @param val The boot option configuration for next system reset. 1 - boot option enabled. 0 - not.
+ */
+static inline void SMC_SetForceBootOptionConfig(SMC_Type *base, uint32_t val)
+{
+    base->FM = val;
+}
+
+#if (defined(FSL_FEATURE_SMC_HAS_SRAMLPR) && FSL_FEATURE_SMC_HAS_SRAMLPR)
+/*!
+ * @brief Enables the conresponding SRAM array in low power retention mode.
+ *
+ * This function enables the conresponding SRAM array in low power retention mode. By default, the SRAM low pwer is
+ * disabled, and only in RUN mode.
+ *
+ * @param base SMC peripheral base address.
+ * @param arrayIdx Index of responding SRAM array.
+ * @param enable Enable the SRAM array in low power retention mode.
+ */
+static inline void SMC_SRAMEnableLowPowerMode(SMC_Type *base, uint32_t arrayIdx, bool enable)
+{
+    if (enable)
+    {
+        base->SRAMLPR |= (1U << arrayIdx); /* Set to be placed in RUN modes. */
+    }
+    else
+    {
+        base->SRAMLPR &= ~(1U << arrayIdx); /* Clear to be placed in low power retention mode. */
+    }
+}
+#endif /* FSL_FEATURE_SMC_HAS_SRAMLPR */
+
+#if (defined(FSL_FEATURE_SMC_HAS_SRAMDSR) && FSL_FEATURE_SMC_HAS_SRAMDSR)
+/*!
+ * @brief Enables the conresponding SRAM array in STOP mode.
+ *
+ * This function enables the conresponding SRAM array in STOP modes. By default, the SRAM is retained in STOP modes.
+ * When disabled, the corresponding SRAM array is powered off in STOP modes.
+ *
+ * @param base SMC peripheral base address.
+ * @param arrayIdx Index of responding SRAM array.
+ * @param enable Enable the SRAM array in STOP modes.
+ */
+static inline void SMC_SRAMEnableDeepSleepMode(SMC_Type *base, uint32_t arrayIdx, bool enable)
+{
+    if (enable)
+    {
+        base->SRAMDSR &= ~(1U << arrayIdx); /* Clear to be retained in STOP modes. */
+    }
+    else
+    {
+        base->SRAMDSR |= (1U << arrayIdx); /* Set to be powered off in STOP modes. */
+    }
+}
+#endif /* FSL_FEATURE_SMC_HAS_SRAMDSR */
+
+#endif /* FSL_FEATURE_SMC_HAS_FM */
+
+/*@}*/
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus*/
+
+/*! @}*/
+
+#endif /* _FSL_MSMC_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_port.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_port.h
new file mode 100644 (file)
index 0000000..e0e808c
--- /dev/null
@@ -0,0 +1,464 @@
+/*
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _FSL_PORT_H_
+#define _FSL_PORT_H_
+
+#include "fsl_common.h"
+
+/*!
+ * @addtogroup port
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @name Driver version */
+/*@{*/
+/*! Version 2.0.2. */
+#define FSL_PORT_DRIVER_VERSION (MAKE_VERSION(2, 0, 2))
+/*@}*/
+
+#if defined(FSL_FEATURE_PORT_HAS_PULL_ENABLE) && FSL_FEATURE_PORT_HAS_PULL_ENABLE
+/*! @brief Internal resistor pull feature selection */
+enum _port_pull
+{
+    kPORT_PullDisable = 0U, /*!< Internal pull-up/down resistor is disabled. */
+    kPORT_PullDown = 2U,    /*!< Internal pull-down resistor is enabled. */
+    kPORT_PullUp = 3U,      /*!< Internal pull-up resistor is enabled. */
+};
+#endif /* FSL_FEATURE_PORT_HAS_PULL_ENABLE */
+
+#if defined(FSL_FEATURE_PORT_HAS_SLEW_RATE) && FSL_FEATURE_PORT_HAS_SLEW_RATE
+/*! @brief Slew rate selection */
+enum _port_slew_rate
+{
+    kPORT_FastSlewRate = 0U, /*!< Fast slew rate is configured. */
+    kPORT_SlowSlewRate = 1U, /*!< Slow slew rate is configured. */
+};
+#endif /* FSL_FEATURE_PORT_HAS_SLEW_RATE */
+
+#if defined(FSL_FEATURE_PORT_HAS_OPEN_DRAIN) && FSL_FEATURE_PORT_HAS_OPEN_DRAIN
+/*! @brief Open Drain feature enable/disable */
+enum _port_open_drain_enable
+{
+    kPORT_OpenDrainDisable = 0U, /*!< Open drain output is disabled. */
+    kPORT_OpenDrainEnable = 1U,  /*!< Open drain output is enabled. */
+};
+#endif /* FSL_FEATURE_PORT_HAS_OPEN_DRAIN */
+
+#if defined(FSL_FEATURE_PORT_HAS_PASSIVE_FILTER) && FSL_FEATURE_PORT_HAS_PASSIVE_FILTER
+/*! @brief Passive filter feature enable/disable */
+enum _port_passive_filter_enable
+{
+    kPORT_PassiveFilterDisable = 0U, /*!< Passive input filter is disabled. */
+    kPORT_PassiveFilterEnable = 1U,  /*!< Passive input filter is enabled. */
+};
+#endif
+
+#if defined(FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH) && FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
+/*! @brief Configures the drive strength. */
+enum _port_drive_strength
+{
+    kPORT_LowDriveStrength = 0U,  /*!< Low-drive strength is configured. */
+    kPORT_HighDriveStrength = 1U, /*!< High-drive strength is configured. */
+};
+#endif /* FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH */
+
+#if defined(FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK) && FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK
+/*! @brief Unlock/lock the pin control register field[15:0] */
+enum _port_lock_register
+{
+    kPORT_UnlockRegister = 0U, /*!< Pin Control Register fields [15:0] are not locked. */
+    kPORT_LockRegister = 1U,   /*!< Pin Control Register fields [15:0] are locked. */
+};
+#endif /* FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK */
+
+#if defined(FSL_FEATURE_PORT_PCR_MUX_WIDTH) && FSL_FEATURE_PORT_PCR_MUX_WIDTH
+/*! @brief Pin mux selection */
+typedef enum _port_mux
+{
+    kPORT_PinDisabledOrAnalog = 0U, /*!< Corresponding pin is disabled, but is used as an analog pin. */
+    kPORT_MuxAsGpio = 1U,           /*!< Corresponding pin is configured as GPIO. */
+    kPORT_MuxAlt2 = 2U,             /*!< Chip-specific */
+    kPORT_MuxAlt3 = 3U,             /*!< Chip-specific */
+    kPORT_MuxAlt4 = 4U,             /*!< Chip-specific */
+    kPORT_MuxAlt5 = 5U,             /*!< Chip-specific */
+    kPORT_MuxAlt6 = 6U,             /*!< Chip-specific */
+    kPORT_MuxAlt7 = 7U,             /*!< Chip-specific */
+    kPORT_MuxAlt8 = 8U,             /*!< Chip-specific */
+    kPORT_MuxAlt9 = 9U,             /*!< Chip-specific */
+    kPORT_MuxAlt10 = 10U,           /*!< Chip-specific */
+    kPORT_MuxAlt11 = 11U,           /*!< Chip-specific */
+    kPORT_MuxAlt12 = 12U,           /*!< Chip-specific */
+    kPORT_MuxAlt13 = 13U,           /*!< Chip-specific */
+    kPORT_MuxAlt14 = 14U,           /*!< Chip-specific */
+    kPORT_MuxAlt15 = 15U,           /*!< Chip-specific */
+} port_mux_t;
+#endif /* FSL_FEATURE_PORT_PCR_MUX_WIDTH */
+
+/*! @brief Configures the interrupt generation condition. */
+typedef enum _port_interrupt
+{
+    kPORT_InterruptOrDMADisabled = 0x0U, /*!< Interrupt/DMA request is disabled. */
+#if defined(FSL_FEATURE_PORT_HAS_DMA_REQUEST) && FSL_FEATURE_PORT_HAS_DMA_REQUEST
+    kPORT_DMARisingEdge = 0x1U,  /*!< DMA request on rising edge. */
+    kPORT_DMAFallingEdge = 0x2U, /*!< DMA request on falling edge. */
+    kPORT_DMAEitherEdge = 0x3U,  /*!< DMA request on either edge. */
+#endif
+#if defined(FSL_FEATURE_PORT_HAS_IRQC_FLAG) && FSL_FEATURE_PORT_HAS_IRQC_FLAG
+    kPORT_FlagRisingEdge = 0x05U,  /*!< Flag sets on rising edge. */
+    kPORT_FlagFallingEdge = 0x06U, /*!< Flag sets on falling edge. */
+    kPORT_FlagEitherEdge = 0x07U,  /*!< Flag sets on either edge. */
+#endif
+    kPORT_InterruptLogicZero = 0x8U,   /*!< Interrupt when logic zero. */
+    kPORT_InterruptRisingEdge = 0x9U,  /*!< Interrupt on rising edge. */
+    kPORT_InterruptFallingEdge = 0xAU, /*!< Interrupt on falling edge. */
+    kPORT_InterruptEitherEdge = 0xBU,  /*!< Interrupt on either edge. */
+    kPORT_InterruptLogicOne = 0xCU,    /*!< Interrupt when logic one. */
+#if defined(FSL_FEATURE_PORT_HAS_IRQC_TRIGGER) && FSL_FEATURE_PORT_HAS_IRQC_TRIGGER
+    kPORT_ActiveHighTriggerOutputEnable = 0xDU, /*!< Enable active high-trigger output. */
+    kPORT_ActiveLowTriggerOutputEnable = 0xEU,  /*!< Enable active low-trigger output. */
+#endif
+} port_interrupt_t;
+
+#if defined(FSL_FEATURE_PORT_HAS_DIGITAL_FILTER) && FSL_FEATURE_PORT_HAS_DIGITAL_FILTER
+/*! @brief Digital filter clock source selection */
+typedef enum _port_digital_filter_clock_source
+{
+    kPORT_BusClock = 0U, /*!< Digital filters are clocked by the bus clock. */
+    kPORT_LpoClock = 1U, /*!< Digital filters are clocked by the 1 kHz LPO clock. */
+} port_digital_filter_clock_source_t;
+
+/*! @brief PORT digital filter feature configuration definition */
+typedef struct _port_digital_filter_config
+{
+    uint32_t digitalFilterWidth;                    /*!< Set digital filter width */
+    port_digital_filter_clock_source_t clockSource; /*!< Set digital filter clockSource */
+} port_digital_filter_config_t;
+#endif /* FSL_FEATURE_PORT_HAS_DIGITAL_FILTER */
+
+#if defined(FSL_FEATURE_PORT_PCR_MUX_WIDTH) && FSL_FEATURE_PORT_PCR_MUX_WIDTH
+/*! @brief PORT pin configuration structure */
+typedef struct _port_pin_config
+{
+#if defined(FSL_FEATURE_PORT_HAS_PULL_ENABLE) && FSL_FEATURE_PORT_HAS_PULL_ENABLE
+    uint16_t pullSelect : 2; /*!< No-pull/pull-down/pull-up select */
+#else
+    uint16_t : 2;
+#endif /* FSL_FEATURE_PORT_HAS_PULL_ENABLE */
+
+#if defined(FSL_FEATURE_PORT_HAS_SLEW_RATE) && FSL_FEATURE_PORT_HAS_SLEW_RATE
+    uint16_t slewRate : 1; /*!< Fast/slow slew rate Configure */
+#else
+    uint16_t : 1;
+#endif /* FSL_FEATURE_PORT_HAS_SLEW_RATE */
+
+    uint16_t : 1;
+
+#if defined(FSL_FEATURE_PORT_HAS_PASSIVE_FILTER) && FSL_FEATURE_PORT_HAS_PASSIVE_FILTER
+    uint16_t passiveFilterEnable : 1; /*!< Passive filter enable/disable */
+#else
+    uint16_t : 1;
+#endif /* FSL_FEATURE_PORT_HAS_PASSIVE_FILTER */
+
+#if defined(FSL_FEATURE_PORT_HAS_OPEN_DRAIN) && FSL_FEATURE_PORT_HAS_OPEN_DRAIN
+    uint16_t openDrainEnable : 1; /*!< Open drain enable/disable */
+#else
+    uint16_t : 1;
+#endif /* FSL_FEATURE_PORT_HAS_OPEN_DRAIN */
+
+#if defined(FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH) && FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
+    uint16_t driveStrength : 1; /*!< Fast/slow drive strength configure */
+#else
+    uint16_t : 1;
+#endif
+
+    uint16_t : 1;
+
+#if defined(FSL_FEATURE_PORT_PCR_MUX_WIDTH) && (FSL_FEATURE_PORT_PCR_MUX_WIDTH == 3)
+    uint16_t mux : 3; /*!< Pin mux Configure */
+    uint16_t : 4;
+#elif defined(FSL_FEATURE_PORT_PCR_MUX_WIDTH) && (FSL_FEATURE_PORT_PCR_MUX_WIDTH == 4)
+    uint16_t mux : 4; /*!< Pin mux Configure */
+    uint16_t : 3;
+#else
+    uint16_t : 7,
+#endif
+
+#if defined(FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK) && FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK
+    uint16_t lockRegister : 1; /*!< Lock/unlock the PCR field[15:0] */
+#else
+    uint16_t : 1;
+#endif /* FSL_FEATURE_PORT_HAS_PIN_CONTROL_LOCK */
+} port_pin_config_t;
+#endif /* FSL_FEATURE_PORT_PCR_MUX_WIDTH */
+
+/*******************************************************************************
+* API
+******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#if defined(FSL_FEATURE_PORT_PCR_MUX_WIDTH) && FSL_FEATURE_PORT_PCR_MUX_WIDTH
+/*! @name Configuration */
+/*@{*/
+
+/*!
+ * @brief Sets the port PCR register.
+ *
+ * This is an example to define an input pin or output pin PCR configuration.
+ * @code
+ * // Define a digital input pin PCR configuration
+ * port_pin_config_t config = {
+ *      kPORT_PullUp,
+ *      kPORT_FastSlewRate,
+ *      kPORT_PassiveFilterDisable,
+ *      kPORT_OpenDrainDisable,
+ *      kPORT_LowDriveStrength,
+ *      kPORT_MuxAsGpio,
+ *      kPORT_UnLockRegister,
+ * };
+ * @endcode
+ *
+ * @param base   PORT peripheral base pointer.
+ * @param pin    PORT pin number.
+ * @param config PORT PCR register configuration structure.
+ */
+static inline void PORT_SetPinConfig(PORT_Type *base, uint32_t pin, const port_pin_config_t *config)
+{
+    assert(config);
+    uint32_t addr = (uint32_t)&base->PCR[pin];
+    *(volatile uint16_t *)(addr) = *((const uint16_t *)config);
+}
+
+/*!
+ * @brief Sets the port PCR register for multiple pins.
+ *
+ * This is an example to define input pins or output pins PCR configuration.
+ * @code
+ * // Define a digital input pin PCR configuration
+ * port_pin_config_t config = {
+ *      kPORT_PullUp ,
+ *      kPORT_PullEnable,
+ *      kPORT_FastSlewRate,
+ *      kPORT_PassiveFilterDisable,
+ *      kPORT_OpenDrainDisable,
+ *      kPORT_LowDriveStrength,
+ *      kPORT_MuxAsGpio,
+ *      kPORT_UnlockRegister,
+ * };
+ * @endcode
+ *
+ * @param base   PORT peripheral base pointer.
+ * @param mask   PORT pin number macro.
+ * @param config PORT PCR register configuration structure.
+ */
+static inline void PORT_SetMultiplePinsConfig(PORT_Type *base, uint32_t mask, const port_pin_config_t *config)
+{
+    assert(config);
+
+    uint16_t pcrl = *((const uint16_t *)config);
+
+    if (mask & 0xffffU)
+    {
+        base->GPCLR = ((mask & 0xffffU) << 16) | pcrl;
+    }
+    if (mask >> 16)
+    {
+        base->GPCHR = (mask & 0xffff0000U) | pcrl;
+    }
+}
+
+#if defined(FSL_FEATURE_PORT_HAS_MULTIPLE_IRQ_CONFIG) && FSL_FEATURE_PORT_HAS_MULTIPLE_IRQ_CONFIG
+/*!
+ * @brief Sets the port interrupt configuration in PCR register for multiple pins.
+ *
+ * @param base   PORT peripheral base pointer.
+ * @param mask   PORT pin number macro.
+ * @param config  PORT pin interrupt configuration.
+ *        - #kPORT_InterruptOrDMADisabled: Interrupt/DMA request disabled.
+ *        - #kPORT_DMARisingEdge : DMA request on rising edge(if the DMA requests exit).
+ *        - #kPORT_DMAFallingEdge: DMA request on falling edge(if the DMA requests exit).
+ *        - #kPORT_DMAEitherEdge : DMA request on either edge(if the DMA requests exit).
+ *        - #kPORT_FlagRisingEdge : Flag sets on rising edge(if the Flag states exit).
+ *        - #kPORT_FlagFallingEdge : Flag sets on falling edge(if the Flag states exit).
+ *        - #kPORT_FlagEitherEdge : Flag sets on either edge(if the Flag states exit).
+ *        - #kPORT_InterruptLogicZero  : Interrupt when logic zero.
+ *        - #kPORT_InterruptRisingEdge : Interrupt on rising edge.
+ *        - #kPORT_InterruptFallingEdge: Interrupt on falling edge.
+ *        - #kPORT_InterruptEitherEdge : Interrupt on either edge.
+ *        - #kPORT_InterruptLogicOne   : Interrupt when logic one.
+ *        - #kPORT_ActiveHighTriggerOutputEnable : Enable active high-trigger output (if the trigger states exit).
+ *        - #kPORT_ActiveLowTriggerOutputEnable  : Enable active low-trigger output (if the trigger states exit)..
+ */
+static inline void PORT_SetMultipleInterruptPinsConfig(PORT_Type *base, uint32_t mask, port_interrupt_t config)
+{
+    assert(config);
+
+    if (mask & 0xffffU)
+    {
+        base->GICLR = (config << 16) | (mask & 0xffffU);
+    }
+    if (mask >> 16)
+    {
+        base->GICHR = (config << 16) | (mask & 0xffff0000U);
+    }
+}
+#endif
+
+/*!
+ * @brief Configures the pin muxing.
+ *
+ * @param base  PORT peripheral base pointer.
+ * @param pin   PORT pin number.
+ * @param mux   pin muxing slot selection.
+ *        - #kPORT_PinDisabledOrAnalog: Pin disabled or work in analog function.
+ *        - #kPORT_MuxAsGpio          : Set as GPIO.
+ *        - #kPORT_MuxAlt2            : chip-specific.
+ *        - #kPORT_MuxAlt3            : chip-specific.
+ *        - #kPORT_MuxAlt4            : chip-specific.
+ *        - #kPORT_MuxAlt5            : chip-specific.
+ *        - #kPORT_MuxAlt6            : chip-specific.
+ *        - #kPORT_MuxAlt7            : chip-specific.
+ * @Note : This function is NOT recommended to use together with the PORT_SetPinsConfig, because
+ *         the PORT_SetPinsConfig need to configure the pin mux anyway (Otherwise the pin mux is
+ *         reset to zero : kPORT_PinDisabledOrAnalog).
+ *        This function is recommended to use to reset the pin mux
+ *
+ */
+static inline void PORT_SetPinMux(PORT_Type *base, uint32_t pin, port_mux_t mux)
+{
+    base->PCR[pin] = (base->PCR[pin] & ~PORT_PCR_MUX_MASK) | PORT_PCR_MUX(mux);
+}
+#endif /* FSL_FEATURE_PORT_PCR_MUX_WIDTH */
+
+#if defined(FSL_FEATURE_PORT_HAS_DIGITAL_FILTER) && FSL_FEATURE_PORT_HAS_DIGITAL_FILTER
+
+/*!
+ * @brief Enables the digital filter in one port, each bit of the 32-bit register represents one pin.
+ *
+ * @param base  PORT peripheral base pointer.
+ * @param mask  PORT pin number macro.
+ */
+static inline void PORT_EnablePinsDigitalFilter(PORT_Type *base, uint32_t mask, bool enable)
+{
+    if (enable == true)
+    {
+        base->DFER |= mask;
+    }
+    else
+    {
+        base->DFER &= ~mask;
+    }
+}
+
+/*!
+ * @brief Sets the digital filter in one port, each bit of the 32-bit register represents one pin.
+ *
+ * @param base   PORT peripheral base pointer.
+ * @param config PORT digital filter configuration structure.
+ */
+static inline void PORT_SetDigitalFilterConfig(PORT_Type *base, const port_digital_filter_config_t *config)
+{
+    assert(config);
+
+    base->DFCR = PORT_DFCR_CS(config->clockSource);
+    base->DFWR = PORT_DFWR_FILT(config->digitalFilterWidth);
+}
+
+#endif /* FSL_FEATURE_PORT_HAS_DIGITAL_FILTER */
+
+/*@}*/
+
+/*! @name Interrupt */
+/*@{*/
+
+/*!
+ * @brief Configures the port pin interrupt/DMA request.
+ *
+ * @param base    PORT peripheral base pointer.
+ * @param pin     PORT pin number.
+ * @param config  PORT pin interrupt configuration.
+ *        - #kPORT_InterruptOrDMADisabled: Interrupt/DMA request disabled.
+ *        - #kPORT_DMARisingEdge : DMA request on rising edge(if the DMA requests exit).
+ *        - #kPORT_DMAFallingEdge: DMA request on falling edge(if the DMA requests exit).
+ *        - #kPORT_DMAEitherEdge : DMA request on either edge(if the DMA requests exit).
+ *        - #kPORT_FlagRisingEdge : Flag sets on rising edge(if the Flag states exit).
+ *        - #kPORT_FlagFallingEdge : Flag sets on falling edge(if the Flag states exit).
+ *        - #kPORT_FlagEitherEdge : Flag sets on either edge(if the Flag states exit).
+ *        - #kPORT_InterruptLogicZero  : Interrupt when logic zero.
+ *        - #kPORT_InterruptRisingEdge : Interrupt on rising edge.
+ *        - #kPORT_InterruptFallingEdge: Interrupt on falling edge.
+ *        - #kPORT_InterruptEitherEdge : Interrupt on either edge.
+ *        - #kPORT_InterruptLogicOne   : Interrupt when logic one.
+ *        - #kPORT_ActiveHighTriggerOutputEnable : Enable active high-trigger output (if the trigger states exit).
+ *        - #kPORT_ActiveLowTriggerOutputEnable  : Enable active low-trigger output (if the trigger states exit).
+ */
+static inline void PORT_SetPinInterruptConfig(PORT_Type *base, uint32_t pin, port_interrupt_t config)
+{
+    base->PCR[pin] = (base->PCR[pin] & ~PORT_PCR_IRQC_MASK) | PORT_PCR_IRQC(config);
+}
+
+#if defined(FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH) && FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
+/*!
+ * @brief Configures the port pin drive strength.
+ *
+ * @param base    PORT peripheral base pointer.
+ * @param pin     PORT pin number.
+ * @param config  PORT pin drive strength
+ *        - #kPORT_LowDriveStrength = 0U - Low-drive strength is configured.
+ *        - #kPORT_HighDriveStrength = 1U - High-drive strength is configured.
+ */
+static inline void PORT_SetPinDriveStrength(PORT_Type* base, uint32_t pin, uint8_t strength)
+{
+    base->PCR[pin] = (base->PCR[pin] & ~PORT_PCR_DSE_MASK) |  PORT_PCR_DSE(strength);
+}
+#endif
+
+/*!
+ * @brief Reads the whole port status flag.
+ *
+ * If a pin is configured to generate the DMA request,  the corresponding flag
+ * is cleared automatically at the completion of the requested DMA transfer.
+ * Otherwise, the flag remains set until a logic one is written to that flag.
+ * If configured for a level sensitive interrupt that remains asserted, the flag
+ * is set again immediately.
+ *
+ * @param base PORT peripheral base pointer.
+ * @return Current port interrupt status flags, for example, 0x00010001 means the
+ *         pin 0 and 16 have the interrupt.
+ */
+static inline uint32_t PORT_GetPinsInterruptFlags(PORT_Type *base)
+{
+    return base->ISFR;
+}
+
+/*!
+ * @brief Clears the multiple pin interrupt status flag.
+ *
+ * @param base PORT peripheral base pointer.
+ * @param mask PORT pin number macro.
+ */
+static inline void PORT_ClearPinsInterruptFlags(PORT_Type *base, uint32_t mask)
+{
+    base->ISFR = mask;
+}
+
+/*@}*/
+
+#if defined(__cplusplus)
+}
+#endif
+
+/*! @}*/
+
+#endif /* _FSL_PORT_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/fsl_device_registers.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/fsl_device_registers.h
new file mode 100644 (file)
index 0000000..391d54f
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2014-2016 Freescale Semiconductor, Inc.
+ * Copyright 2016-2018 NXP
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef __FSL_DEVICE_REGISTERS_H__
+#define __FSL_DEVICE_REGISTERS_H__
+
+/*
+ * Include the cpu specific register header files.
+ *
+ * The CPU macro should be declared in the project or makefile.
+ */
+#if defined(CPU_RV32M1_cm0plus)
+
+#define RV32M1_cm0plus_SERIES
+
+/* CMSIS-style register definitions */
+#include "RV32M1_cm0plus.h"
+/* CPU specific feature definitions */
+#include "RV32M1_cm0plus_features.h"
+
+#elif defined(CPU_RV32M1_cm4)
+
+#define RV32M1_cm4_SERIES
+
+/* CMSIS-style register definitions */
+#include "RV32M1_cm4.h"
+/* CPU specific feature definitions */
+#include "RV32M1_cm4_features.h"
+
+#elif defined(CPU_RV32M1_zero_riscy)
+
+#define RV32M1_zero_riscy_SERIES
+
+/* CMSIS-style register definitions */
+#include "RV32M1_zero_riscy.h"
+/* CPU specific feature definitions */
+#include "RV32M1_zero_riscy_features.h"
+
+#elif defined(CPU_RV32M1_ri5cy)
+
+#define RV32M1_ri5cy_SERIES
+
+/* CMSIS-style register definitions */
+#include "RV32M1_ri5cy.h"
+/* CPU specific feature definitions */
+#include "RV32M1_ri5cy_features.h"
+
+#else
+    #error "No valid CPU defined!"
+#endif
+
+#endif /* __FSL_DEVICE_REGISTERS_H__ */
+
+/*******************************************************************************
+ * EOF
+ ******************************************************************************/
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_ri5cy.S b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_ri5cy.S
new file mode 100644 (file)
index 0000000..f6b382c
--- /dev/null
@@ -0,0 +1,228 @@
+/* ------------------------------------------------------------------------- */\r
+/*  @file:    startup_RV32M1_ri5cy.s                                         */\r
+/*  @purpose: RI5CY Core Device Startup File                                 */\r
+/*            RV32M1_ri5cy                                                   */\r
+/*  @version: 1.0                                                            */\r
+/*  @date:    2018-10-2                                                      */\r
+/*  @build:   b180926                                                        */\r
+/* ------------------------------------------------------------------------- */\r
+/*                                                                           */\r
+/* Copyright 1997-2016 Freescale Semiconductor, Inc.                         */\r
+/* Copyright 2016-2018 NXP                                                   */\r
+/* All rights reserved.                                                      */\r
+/*                                                                           */\r
+/* SPDX-License-Identifier: BSD-3-Clause                                     */\r
+\r
+\r
+// Copyright 2017 ETH Zurich and University of Bologna.\r
+// Copyright and related rights are licensed under the Solderpad Hardware\r
+// License, Version 0.51 (the "License"); you may not use this file except in\r
+// compliance with the License.  You may obtain a copy of the License at\r
+// http://solderpad.org/licenses/SHL-0.51. Unless required by applicable law\r
+// or agreed to in writing, software, hardware and materials distributed under\r
+// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR\r
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the\r
+// specific language governing permissions and limitations under the License.\r
+\r
+.extern freertos_risc_v_trap_handler\r
+\r
+#define EXCEPTION_STACK_SIZE 0x58\r
+\r
+    .text\r
+    .section .vectors, "ax"\r
+    .option norvc;\r
+\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+\r
+    // reset vector\r
+    jal x0, Reset_Handler\r
+\r
+    // Illegal instrution exception\r
+    jal x0, IllegalInstruction_Handler\r
+\r
+    // ecall handler\r
+    jal x0, freertos_risc_v_trap_handler\r
+\r
+    // LSU error\r
+    jal x0, LSU_Handler\r
+\r
+    .section .startup\r
+\r
+/* Reset Handler */\r
+Reset_Handler:\r
+\r
+    # Disable global interrupt. */\r
+    csrci mstatus, 8\r
+\r
+    # initialize stack pointer\r
+    la sp, __StackTop\r
+\r
+    # initialize global pointer\r
+    la gp, __global_pointer\r
+\r
+#ifndef __NO_SYSTEM_INIT\r
+    jal SystemInit\r
+#endif\r
+\r
+    call __libc_init_array\r
+\r
+    # Enable global interrupt. */\r
+    csrsi mstatus, 8\r
+\r
+    jal main\r
+    ebreak\r
+\r
+    .size Reset_Handler, . - Reset_Handler\r
+\r
+    .global _init\r
+    .global _fini\r
+_init:\r
+_fini:\r
+    ret\r
+\r
+  // saves all caller-saved registers (except return address)\r
+store_regs:\r
+    sw  x3, 0x00(x2)  // gp\r
+    sw  x4, 0x04(x2)  // tp\r
+    sw  x5, 0x08(x2)  // t0\r
+    sw  x6, 0x0c(x2)  // t1\r
+    sw  x7, 0x10(x2)  // t2\r
+    sw x10, 0x14(x2)  // a0\r
+    sw x11, 0x18(x2)  // a1\r
+    sw x12, 0x1c(x2)  // a2\r
+    sw x13, 0x20(x2)  // a3\r
+    sw x14, 0x24(x2)  // a4\r
+    sw x15, 0x28(x2)  // a5\r
+    sw x16, 0x2c(x2)  // a6\r
+    sw x17, 0x30(x2)  // a7\r
+\r
+    csrr a0, 0x7B0\r
+    csrr a1, 0x7B1\r
+    csrr a2, 0x7B2\r
+    sw a0, 0x34(x2)  // lpstart[0]\r
+    sw a1, 0x38(x2)  // lpend[0]\r
+    sw a2, 0x3c(x2)  // lpcount[0]\r
+    csrr a0, 0x7B4\r
+    csrr a1, 0x7B5\r
+    csrr a2, 0x7B6\r
+    sw a0, 0x40(x2)  // lpstart[1]\r
+    sw a1, 0x44(x2)  // lpend[1]\r
+    sw a2, 0x48(x2)  // lpcount[1]\r
+\r
+    csrr a0, 0x341\r
+    sw a0, 0x4c(x2)  // mepc\r
+    csrr a1, 0x300\r
+    sw a1, 0x50(x2)  // mstatus\r
+    jalr x0, x1\r
+\r
+    // load back registers from stack\r
+end_except:\r
+    lw a1, 0x50(x2)  // mstatus\r
+    csrrw x0, 0x300, a1\r
+    lw a0, 0x4c(x2)  // mepc\r
+    csrrw x0, 0x341, a0\r
+\r
+    lw a0, 0x40(x2)  // lpstart[1]\r
+    lw a1, 0x44(x2)  // lpend[1]\r
+    lw a2, 0x48(x2)  // lpcount[1]\r
+    csrrw x0, 0x7B4, a0\r
+    csrrw x0, 0x7B5, a1\r
+    csrrw x0, 0x7B6, a2\r
+    lw a0, 0x34(x2)  // lpstart[0]\r
+    lw a1, 0x38(x2)  // lpend[0]\r
+    lw a2, 0x3c(x2)  // lpcount[0]\r
+    csrrw x0, 0x7B0, a0\r
+    csrrw x0, 0x7B1, a1\r
+    csrrw x0, 0x7B2, a2\r
+\r
+    lw  x3, 0x00(x2)  // gp\r
+    lw  x4, 0x04(x2)  // tp\r
+    lw  x5, 0x08(x2)  // t0\r
+    lw  x6, 0x0c(x2)  // t1\r
+    lw  x7, 0x10(x2)  // t2\r
+    lw x10, 0x14(x2)  // a0\r
+    lw x11, 0x18(x2)  // a1\r
+    lw x12, 0x1c(x2)  // a2\r
+    lw x13, 0x20(x2)  // a3\r
+    lw x14, 0x24(x2)  // a4\r
+    lw x15, 0x28(x2)  // a5\r
+    lw x16, 0x2c(x2)  // a6\r
+    lw x17, 0x30(x2)  // a7\r
+\r
+    lw  x1, 0x54(x2)\r
+    addi x2, x2, EXCEPTION_STACK_SIZE\r
+    mret\r
+\r
+    .weak IRQ_Handler\r
+    .type IRQ_Handler, %function\r
+IRQ_Handler:\r
+    addi x2, x2, -EXCEPTION_STACK_SIZE\r
+    sw x1, 0x54(x2)\r
+    jal x1, store_regs\r
+    la x1, end_except\r
+    csrr a0, mcause\r
+    jal x0, SystemIrqHandler\r
+    .size IRQ_Handler, . - IRQ_Handler\r
+\r
+    .macro define_exception_entry entry_name handler_name\r
+    .weak \entry_name\r
+\entry_name:\r
+    addi x2, x2, -EXCEPTION_STACK_SIZE\r
+    sw x1, 0x54(x2)\r
+    jal x1, store_regs\r
+    la x1, end_except\r
+    jal x0, \handler_name\r
+    .endm\r
+\r
+define_exception_entry IllegalInstruction_Handler IllegalInstruction_HandlerFunc\r
+define_exception_entry Ecall_Handler Ecall_HandlerFunc\r
+define_exception_entry LSU_Handler LSU_HandlerFunc\r
+\r
+    .weak IllegalInstruction_HandlerFunc\r
+    .type IllegalInstruction_HandlerFunc, %function\r
+IllegalInstruction_HandlerFunc:\r
+    j .\r
+    .size IllegalInstruction_HandlerFunc, . - IllegalInstruction_HandlerFunc\r
+\r
+    .weak Ecall_HandlerFunc\r
+    .type Ecall_HandlerFunc, %function\r
+Ecall_HandlerFunc:\r
+    j .\r
+    .size Ecall_HandlerFunc, . - Ecall_HandlerFunc\r
+\r
+    .weak LSU_HandlerFunc\r
+    .type LSU_HandlerFunc, %function\r
+LSU_HandlerFunc:\r
+    j .\r
+    .size LSU_HandlerFunc, . - LSU_HandlerFunc\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_zero_riscy.S b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_zero_riscy.S
new file mode 100644 (file)
index 0000000..45bad81
--- /dev/null
@@ -0,0 +1,225 @@
+/* ------------------------------------------------------------------------- */
+/*  @file:    startup_RV32M1_zero_riscy.s                                    */
+/*  @purpose: ZERO_RISCY Core Device Startup File                            */
+/*            RV32M1_zero_riscy                                              */
+/*  @version: 1.0                                                            */
+/*  @date:    2018-10-2                                                      */
+/*  @build:   b180926                                                        */
+/* ------------------------------------------------------------------------- */
+/*                                                                           */
+/* Copyright 1997-2016 Freescale Semiconductor, Inc.                         */
+/* Copyright 2016-2018 NXP                                                   */
+/* All rights reserved.                                                      */
+/*                                                                           */
+/* SPDX-License-Identifier: BSD-3-Clause                                     */
+
+// Copyright 2017 ETH Zurich and University of Bologna.
+// Copyright and related rights are licensed under the Solderpad Hardware
+// License, Version 0.51 (the "License"); you may not use this file except in
+// compliance with the License.  You may obtain a copy of the License at
+// http://solderpad.org/licenses/SHL-0.51. Unless required by applicable law
+// or agreed to in writing, software, hardware and materials distributed under
+// this License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+// CONDITIONS OF ANY KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations under the License.
+
+#define EXCEPTION_STACK_SIZE 0x58
+
+    .text
+    .section .vectors, "ax"
+    .option norvc;
+
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+    jal x0, IRQ_Handler
+
+    // reset vector
+    jal x0, Reset_Handler
+
+    // Illegal instrution exception
+    jal x0, IllegalInstruction_Handler
+
+    // ecall handler
+    jal x0, Ecall_Handler
+
+    // LSU error
+    jal x0, LSU_Handler
+
+    .section .startup
+
+/* Reset Handler */
+Reset_Handler:
+
+    # Disable global interrupt. */
+    csrci mstatus, 8
+
+    # initialize stack pointer
+    la sp, __StackTop
+
+    # initialize global pointer
+    la gp, __global_pointer
+
+#ifndef __NO_SYSTEM_INIT
+    jal SystemInit
+#endif
+
+    call __libc_init_array
+
+    # Enable global interrupt. */
+    csrsi mstatus, 8
+
+    jal main
+    ebreak
+
+    .size Reset_Handler, . - Reset_Handler
+
+    .global _init
+    .global _fini
+_init:
+_fini:
+    ret
+
+  // saves all caller-saved registers (except return address)
+store_regs:
+    sw  x3, 0x00(x2)  // gp
+    sw  x4, 0x04(x2)  // tp
+    sw  x5, 0x08(x2)  // t0
+    sw  x6, 0x0c(x2)  // t1
+    sw  x7, 0x10(x2)  // t2
+    sw x10, 0x14(x2)  // a0
+    sw x11, 0x18(x2)  // a1
+    sw x12, 0x1c(x2)  // a2
+    sw x13, 0x20(x2)  // a3
+    sw x14, 0x24(x2)  // a4
+    sw x15, 0x28(x2)  // a5
+    sw x16, 0x2c(x2)  // a6
+    sw x17, 0x30(x2)  // a7
+
+    csrr a0, 0x7B0
+    csrr a1, 0x7B1
+    csrr a2, 0x7B2
+    sw a0, 0x34(x2)  // lpstart[0]
+    sw a1, 0x38(x2)  // lpend[0]
+    sw a2, 0x3c(x2)  // lpcount[0]
+    csrr a0, 0x7B4
+    csrr a1, 0x7B5
+    csrr a2, 0x7B6
+    sw a0, 0x40(x2)  // lpstart[1]
+    sw a1, 0x44(x2)  // lpend[1]
+    sw a2, 0x48(x2)  // lpcount[1]
+
+    csrr a0, 0x341
+    sw a0, 0x4c(x2)  // mepc
+    csrr a1, 0x300
+    sw a1, 0x50(x2)  // mstatus
+    jalr x0, x1
+
+    // load back registers from stack
+end_except:
+    lw a1, 0x50(x2)  // mstatus
+    csrrw x0, 0x300, a1
+    lw a0, 0x4c(x2)  // mepc
+    csrrw x0, 0x341, a0
+
+    lw a0, 0x40(x2)  // lpstart[1]
+    lw a1, 0x44(x2)  // lpend[1]
+    lw a2, 0x48(x2)  // lpcount[1]
+    csrrw x0, 0x7B4, a0
+    csrrw x0, 0x7B5, a1
+    csrrw x0, 0x7B6, a2
+    lw a0, 0x34(x2)  // lpstart[0]
+    lw a1, 0x38(x2)  // lpend[0]
+    lw a2, 0x3c(x2)  // lpcount[0]
+    csrrw x0, 0x7B0, a0
+    csrrw x0, 0x7B1, a1
+    csrrw x0, 0x7B2, a2
+
+    lw  x3, 0x00(x2)  // gp
+    lw  x4, 0x04(x2)  // tp
+    lw  x5, 0x08(x2)  // t0
+    lw  x6, 0x0c(x2)  // t1
+    lw  x7, 0x10(x2)  // t2
+    lw x10, 0x14(x2)  // a0
+    lw x11, 0x18(x2)  // a1
+    lw x12, 0x1c(x2)  // a2
+    lw x13, 0x20(x2)  // a3
+    lw x14, 0x24(x2)  // a4
+    lw x15, 0x28(x2)  // a5
+    lw x16, 0x2c(x2)  // a6
+    lw x17, 0x30(x2)  // a7
+
+    lw  x1, 0x54(x2)
+    addi x2, x2, EXCEPTION_STACK_SIZE
+    mret
+
+    .weak IRQ_Handler
+    .type IRQ_Handler, %function
+IRQ_Handler:
+    addi x2, x2, -EXCEPTION_STACK_SIZE
+    sw x1, 0x54(x2)
+    jal x1, store_regs
+    la x1, end_except
+    csrr a0, mcause
+    jal x0, SystemIrqHandler
+    .size IRQ_Handler, . - IRQ_Handler
+
+    .macro define_exception_entry entry_name handler_name
+    .weak \entry_name
+\entry_name:
+    addi x2, x2, -EXCEPTION_STACK_SIZE
+    sw x1, 0x54(x2)
+    jal x1, store_regs
+    la x1, end_except
+    jal x0, \handler_name
+    .endm
+
+define_exception_entry IllegalInstruction_Handler IllegalInstruction_HandlerFunc
+define_exception_entry Ecall_Handler Ecall_HandlerFunc
+define_exception_entry LSU_Handler LSU_HandlerFunc
+
+    .weak IllegalInstruction_HandlerFunc
+    .type IllegalInstruction_HandlerFunc, %function
+IllegalInstruction_HandlerFunc:
+    j .
+    .size IllegalInstruction_HandlerFunc, . - IllegalInstruction_HandlerFunc
+
+    .weak Ecall_HandlerFunc
+    .type Ecall_HandlerFunc, %function
+Ecall_HandlerFunc:
+    j .
+    .size Ecall_HandlerFunc, . - Ecall_HandlerFunc
+
+    .weak LSU_HandlerFunc
+    .type LSU_HandlerFunc, %function
+LSU_HandlerFunc:
+    j .
+    .size LSU_HandlerFunc, . - LSU_HandlerFunc
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.c
new file mode 100644 (file)
index 0000000..87838a8
--- /dev/null
@@ -0,0 +1,556 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_ri5cy
+**                          RV32M1_ri5cy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         Provides a system configuration function and a global variable that
+**         contains the system frequency. It configures the device and initializes
+**         the oscillator (PLL) that is part of the microcontroller device.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_ri5cy
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief Device specific configuration file for RV32M1_ri5cy
+ *        (implementation file)
+ *
+ * Provides a system configuration function and a global variable that contains
+ * the system frequency. It configures the device and initializes the oscillator
+ * (PLL) that is part of the microcontroller device.
+ */
+
+#include <stdint.h>
+#include "fsl_device_registers.h"
+#include "fsl_common.h"
+
+typedef void (*irq_handler_t)(void);
+
+extern void DMA0_0_4_8_12_DriverIRQHandler(void);
+extern void DMA0_1_5_9_13_DriverIRQHandler(void);
+extern void DMA0_2_6_10_14_DriverIRQHandler(void);
+extern void DMA0_3_7_11_15_DriverIRQHandler(void);
+extern void DMA0_Error_IRQHandler(void);
+extern void CMC0_IRQHandler(void);
+extern void EWM_IRQHandler(void);
+extern void FTFE_Command_Complete_IRQHandler(void);
+extern void FTFE_Read_Collision_IRQHandler(void);
+extern void LLWU0_IRQHandler(void);
+extern void MUA_IRQHandler(void);
+extern void SPM_IRQHandler(void);
+extern void WDOG0_IRQHandler(void);
+extern void SCG_IRQHandler(void);
+extern void LPIT0_IRQHandler(void);
+extern void RTC_IRQHandler(void);
+extern void LPTMR0_IRQHandler(void);
+extern void LPTMR1_IRQHandler(void);
+extern void TPM0_IRQHandler(void);
+extern void TPM1_IRQHandler(void);
+extern void TPM2_IRQHandler(void);
+extern void EMVSIM0_IRQHandler(void);
+extern void FLEXIO0_DriverIRQHandler(void);
+extern void LPI2C0_DriverIRQHandler(void);
+extern void LPI2C1_DriverIRQHandler(void);
+extern void LPI2C2_DriverIRQHandler(void);
+extern void I2S0_DriverIRQHandler(void);
+extern void USDHC0_DriverIRQHandler(void);
+extern void LPSPI0_DriverIRQHandler(void);
+extern void LPSPI1_DriverIRQHandler(void);
+extern void LPSPI2_DriverIRQHandler(void);
+extern void LPUART0_DriverIRQHandler(void);
+extern void LPUART1_DriverIRQHandler(void);
+extern void LPUART2_DriverIRQHandler(void);
+extern void USB0_IRQHandler(void);
+extern void PORTA_IRQHandler(void);
+extern void PORTB_IRQHandler(void);
+extern void PORTC_IRQHandler(void);
+extern void PORTD_IRQHandler(void);
+extern void ADC0_IRQHandler(void);
+extern void LPCMP0_IRQHandler(void);
+extern void LPDAC0_IRQHandler(void);
+extern void CAU3_Task_Complete_IRQHandler(void);
+extern void CAU3_Security_Violation_IRQHandler(void);
+extern void TRNG_IRQHandler(void);
+extern void LPIT1_IRQHandler(void);
+extern void LPTMR2_IRQHandler(void);
+extern void TPM3_IRQHandler(void);
+extern void LPI2C3_DriverIRQHandler(void);
+extern void LPSPI3_DriverIRQHandler(void);
+extern void LPUART3_DriverIRQHandler(void);
+extern void PORTE_IRQHandler(void);
+extern void LPCMP1_IRQHandler(void);
+extern void RF0_0_IRQHandler(void);
+extern void RF0_1_IRQHandler(void);
+extern void INTMUX0_0_DriverIRQHandler(void);
+extern void INTMUX0_1_DriverIRQHandler(void);
+extern void INTMUX0_2_DriverIRQHandler(void);
+extern void INTMUX0_3_DriverIRQHandler(void);
+extern void INTMUX0_4_DriverIRQHandler(void);
+extern void INTMUX0_5_DriverIRQHandler(void);
+extern void INTMUX0_6_DriverIRQHandler(void);
+extern void INTMUX0_7_DriverIRQHandler(void);
+extern void INTMUX0_8_DriverIRQHandler(void);
+extern void DMA0_0_4_8_12_IRQHandler(void);
+extern void DMA0_1_5_9_13_IRQHandler(void);
+extern void DMA0_2_6_10_14_IRQHandler(void);
+extern void DMA0_3_7_11_15_IRQHandler(void);
+extern void FLEXIO0_IRQHandler(void);
+extern void LPI2C0_IRQHandler(void);
+extern void LPI2C1_IRQHandler(void);
+extern void LPI2C2_IRQHandler(void);
+extern void I2S0_IRQHandler(void);
+extern void USDHC0_IRQHandler(void);
+extern void LPSPI0_IRQHandler(void);
+extern void LPSPI1_IRQHandler(void);
+extern void LPSPI2_IRQHandler(void);
+extern void LPUART0_IRQHandler(void);
+extern void LPUART1_IRQHandler(void);
+extern void LPUART2_IRQHandler(void);
+extern void LPI2C3_IRQHandler(void);
+extern void LPSPI3_IRQHandler(void);
+extern void LPUART3_IRQHandler(void);
+extern void INTMUX0_0_IRQHandler(void);
+extern void INTMUX0_1_IRQHandler(void);
+extern void INTMUX0_2_IRQHandler(void);
+extern void INTMUX0_3_IRQHandler(void);
+extern void INTMUX0_4_IRQHandler(void);
+extern void INTMUX0_5_IRQHandler(void);
+extern void INTMUX0_6_IRQHandler(void);
+extern void INTMUX0_7_IRQHandler(void);
+
+/* ----------------------------------------------------------------------------
+   -- Core clock
+   ---------------------------------------------------------------------------- */
+uint32_t SystemCoreClock = DEFAULT_SYSTEM_CLOCK;
+
+extern uint32_t __etext;
+extern uint32_t __data_start__;
+extern uint32_t __data_end__;
+
+extern uint32_t __bss_start__;
+extern uint32_t __bss_end__;
+
+static void copy_section(uint32_t * p_load, uint32_t * p_vma, uint32_t * p_vma_end)
+{
+    while(p_vma <= p_vma_end)
+    {
+        *p_vma = *p_load;
+        ++p_load;
+        ++p_vma;
+    }
+}
+
+static void zero_section(uint32_t * start, uint32_t * end)
+{
+    uint32_t * p_zero = start;
+
+    while(p_zero <= end)
+    {
+        *p_zero = 0;
+        ++p_zero;
+    }
+}
+
+#define DEFINE_IRQ_HANDLER(irq_handler, driver_irq_handler) \
+    void __attribute__((weak)) irq_handler(void) { driver_irq_handler();}
+
+#define DEFINE_DEFAULT_IRQ_HANDLER(irq_handler) void irq_handler() __attribute__((weak, alias("DefaultIRQHandler")))
+
+DEFINE_DEFAULT_IRQ_HANDLER(DMA0_0_4_8_12_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA0_1_5_9_13_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA0_2_6_10_14_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA0_3_7_11_15_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA0_Error_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CMC0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(EWM_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FTFE_Command_Complete_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FTFE_Read_Collision_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LLWU0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(MUA_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(SPM_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(WDOG0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(SCG_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPIT0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RTC_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM2_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(EMVSIM0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FLEXIO0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(I2S0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(USDHC0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(USB0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTA_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTB_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTC_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTD_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(ADC0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPCMP0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPDAC0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CAU3_Task_Complete_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CAU3_Security_Violation_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TRNG_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPIT1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR2_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM3_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTE_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPCMP1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RF0_0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RF0_1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_4_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_5_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_6_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_7_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX0_8_DriverIRQHandler);
+
+DEFINE_IRQ_HANDLER(DMA0_0_4_8_12_IRQHandler, DMA0_0_4_8_12_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA0_1_5_9_13_IRQHandler, DMA0_1_5_9_13_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA0_2_6_10_14_IRQHandler, DMA0_2_6_10_14_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA0_3_7_11_15_IRQHandler, DMA0_3_7_11_15_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(FLEXIO0_IRQHandler, FLEXIO0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C0_IRQHandler, LPI2C0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C1_IRQHandler, LPI2C1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C2_IRQHandler, LPI2C2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(I2S0_IRQHandler, I2S0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(USDHC0_IRQHandler, USDHC0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI0_IRQHandler, LPSPI0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI1_IRQHandler, LPSPI1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI2_IRQHandler, LPSPI2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART0_IRQHandler, LPUART0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART1_IRQHandler, LPUART1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART2_IRQHandler, LPUART2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C3_IRQHandler, LPI2C3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI3_IRQHandler, LPSPI3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART3_IRQHandler, LPUART3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_0_IRQHandler, INTMUX0_0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_1_IRQHandler, INTMUX0_1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_2_IRQHandler, INTMUX0_2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_3_IRQHandler, INTMUX0_3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_4_IRQHandler, INTMUX0_4_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_5_IRQHandler, INTMUX0_5_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_6_IRQHandler, INTMUX0_6_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX0_7_IRQHandler, INTMUX0_7_DriverIRQHandler);
+
+__attribute__((section("user_vectors"))) const irq_handler_t isrTable[] =
+{
+    DMA0_0_4_8_12_IRQHandler,
+    DMA0_1_5_9_13_IRQHandler,
+    DMA0_2_6_10_14_IRQHandler,
+    DMA0_3_7_11_15_IRQHandler,
+    DMA0_Error_IRQHandler,
+    CMC0_IRQHandler,
+    MUA_IRQHandler,
+    USB0_IRQHandler,
+    USDHC0_IRQHandler,
+    I2S0_IRQHandler,
+    FLEXIO0_IRQHandler,
+    EMVSIM0_IRQHandler,
+    LPIT0_IRQHandler,
+    LPSPI0_IRQHandler,
+    LPSPI1_IRQHandler,
+    LPI2C0_IRQHandler,
+    LPI2C1_IRQHandler,
+    LPUART0_IRQHandler,
+    PORTA_IRQHandler,
+    TPM0_IRQHandler,
+    LPDAC0_IRQHandler,
+    ADC0_IRQHandler,
+    LPCMP0_IRQHandler,
+    RTC_IRQHandler,
+    INTMUX0_0_IRQHandler,
+    INTMUX0_1_IRQHandler,
+    INTMUX0_2_IRQHandler,
+    INTMUX0_3_IRQHandler,
+    INTMUX0_4_IRQHandler,
+    INTMUX0_5_IRQHandler,
+    INTMUX0_6_IRQHandler,
+    INTMUX0_7_IRQHandler,
+    EWM_IRQHandler,
+    FTFE_Command_Complete_IRQHandler,
+    FTFE_Read_Collision_IRQHandler,
+    LLWU0_IRQHandler,
+    SPM_IRQHandler,
+    WDOG0_IRQHandler,
+    SCG_IRQHandler,
+    LPTMR0_IRQHandler,
+    LPTMR1_IRQHandler,
+    TPM1_IRQHandler,
+    TPM2_IRQHandler,
+    LPI2C2_IRQHandler,
+    LPSPI2_IRQHandler,
+    LPUART1_IRQHandler,
+    LPUART2_IRQHandler,
+    PORTB_IRQHandler,
+    PORTC_IRQHandler,
+    PORTD_IRQHandler,
+    CAU3_Task_Complete_IRQHandler,
+    CAU3_Security_Violation_IRQHandler,
+    TRNG_IRQHandler,
+    LPIT1_IRQHandler,
+    LPTMR2_IRQHandler,
+    TPM3_IRQHandler,
+    LPI2C3_IRQHandler,
+    LPSPI3_IRQHandler,
+    LPUART3_IRQHandler,
+    PORTE_IRQHandler,
+    LPCMP1_IRQHandler,
+    RF0_0_IRQHandler,
+    RF0_1_IRQHandler,
+};
+
+extern uint32_t __VECTOR_TABLE[];
+
+static uint32_t irqNesting = 0;
+
+static void DefaultIRQHandler(void)
+{
+    for (;;)
+    {
+    }
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemInit()
+   ---------------------------------------------------------------------------- */
+
+void SystemInit (void) {
+#if (DISABLE_WDOG)
+  WDOG0->CNT = 0xD928C520U;
+  WDOG0->TOVAL = 0xFFFF;
+  WDOG0->CS = (uint32_t) ((WDOG0->CS) & ~WDOG_CS_EN_MASK) | WDOG_CS_UPDATE_MASK;
+#endif /* (DISABLE_WDOG) */
+
+  SystemInitHook();
+
+  copy_section(&__etext, &__data_start__, &__data_end__);
+  zero_section(&__bss_start__, &__bss_end__);
+
+  /* Setup the vector table address. */
+  irqNesting = 0;
+
+  __ASM volatile("csrw 0x305, %0" :: "r"((uint32_t)__VECTOR_TABLE)); /* MTVEC */
+  __ASM volatile("csrw 0x005, %0" :: "r"((uint32_t)__VECTOR_TABLE)); /* UTVEC */
+
+  /* Clear all pending flags. */
+  EVENT_UNIT->INTPTPENDCLEAR = 0xFFFFFFFF;
+  EVENT_UNIT->EVTPENDCLEAR = 0xFFFFFFFF;
+  /* Set all interrupt as secure interrupt. */
+  EVENT_UNIT->INTPTSECURE = 0xFFFFFFFF;
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemCoreClockUpdate()
+   ---------------------------------------------------------------------------- */
+
+void SystemCoreClockUpdate (void) {
+
+  uint32_t SCGOUTClock;                                 /* Variable to store output clock frequency of the SCG module */
+  uint16_t Divider;
+  Divider = ((SCG->CSR & SCG_CSR_DIVCORE_MASK) >> SCG_CSR_DIVCORE_SHIFT) + 1;
+
+  switch ((SCG->CSR & SCG_CSR_SCS_MASK) >> SCG_CSR_SCS_SHIFT) {
+    case 0x1:
+      /* System OSC */
+      SCGOUTClock = CPU_XTAL_CLK_HZ;
+      break;
+    case 0x2:
+      /* Slow IRC */
+      SCGOUTClock = (((SCG->SIRCCFG & SCG_SIRCCFG_RANGE_MASK) >> SCG_SIRCCFG_RANGE_SHIFT) ? 8000000 : 2000000);
+      break;
+    case 0x3:
+      /* Fast IRC */
+      SCGOUTClock = 48000000 + ((SCG->FIRCCFG & SCG_FIRCCFG_RANGE_MASK) >> SCG_FIRCCFG_RANGE_SHIFT) * 4000000;
+      break;
+    case 0x5:
+      /* Low Power FLL */
+      SCGOUTClock = 48000000 + ((SCG->LPFLLCFG & SCG_LPFLLCFG_FSEL_MASK) >> SCG_LPFLLCFG_FSEL_SHIFT) * 24000000;
+      break;
+    default:
+      return;
+  }
+  SystemCoreClock = (SCGOUTClock / Divider);
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemInitHook()
+   ---------------------------------------------------------------------------- */
+
+__attribute__ ((weak)) void SystemInitHook (void) {
+  /* Void implementation of the weak function. */
+}
+
+#if defined(__IAR_SYSTEMS_ICC__)
+#pragma weak SystemIrqHandler
+void SystemIrqHandler(uint32_t mcause) {
+#elif defined(__GNUC__)
+__attribute__((weak)) void SystemIrqHandler(uint32_t mcause) {
+#else
+  #error Not supported compiler type
+#endif
+    uint32_t intNum;
+
+    if (mcause & 0x80000000) /* For external interrupt. */
+    {
+        intNum = mcause & 0x1FUL;
+
+        irqNesting++;
+
+        /* Clear pending flag in EVENT unit .*/
+        EVENT_UNIT->INTPTPENDCLEAR = (1U << intNum);
+
+        /* Read back to make sure write finished. */
+        (void)(EVENT_UNIT->INTPTPENDCLEAR);
+
+        __enable_irq();      /* Support nesting interrupt */
+
+        /* Now call the real irq handler for intNum */
+        isrTable[intNum]();
+
+        __disable_irq();
+
+        irqNesting--;
+    }
+}
+
+/* Use LIPT0 channel 0 for systick. */
+#define SYSTICK_LPIT LPIT0
+#define SYSTICK_LPIT_CH 0
+#define SYSTICK_LPIT_IRQn LPIT0_IRQn
+
+/* Leverage LPIT0 to provide Systick */
+void SystemSetupSystick(uint32_t tickRateHz, uint32_t intPriority)
+{
+    /* Init pit module */
+    CLOCK_EnableClock(kCLOCK_Lpit0);
+
+    /* Reset the timer channels and registers except the MCR register */
+    SYSTICK_LPIT->MCR |= LPIT_MCR_SW_RST_MASK;
+    SYSTICK_LPIT->MCR &= ~LPIT_MCR_SW_RST_MASK;
+
+    /* Setup timer operation in debug and doze modes and enable the module */
+    SYSTICK_LPIT->MCR = LPIT_MCR_DBG_EN_MASK | LPIT_MCR_DOZE_EN_MASK | LPIT_MCR_M_CEN_MASK;
+
+    /* Set timer period for channel 0 */
+    SYSTICK_LPIT->CHANNEL[SYSTICK_LPIT_CH].TVAL = (CLOCK_GetIpFreq(kCLOCK_Lpit0) / tickRateHz) - 1;
+
+    /* Enable timer interrupts for channel 0 */
+    SYSTICK_LPIT->MIER |= (1U << SYSTICK_LPIT_CH);
+
+    /* Set interrupt priority. */
+    EVENT_SetIRQPriority(SYSTICK_LPIT_IRQn, intPriority);
+
+    /* Enable interrupt at the EVENT unit */
+    EnableIRQ(SYSTICK_LPIT_IRQn);
+
+    /* Start channel 0 */
+    SYSTICK_LPIT->SETTEN |= (LPIT_SETTEN_SET_T_EN_0_MASK << SYSTICK_LPIT_CH);
+}
+
+uint32_t SystemGetIRQNestingLevel(void)
+{
+    return irqNesting;
+}
+
+void SystemClearSystickFlag(void)
+{
+    /* Channel 0. */
+    SYSTICK_LPIT->MSR = (1U << SYSTICK_LPIT_CH);
+}
+
+void EVENT_SetIRQPriority(IRQn_Type IRQn, uint8_t intPriority)
+{
+    uint8_t regIdx;
+    uint8_t regOffset;
+
+    if ((IRQn < 32) && (intPriority < 8))
+    {
+        /*
+         * 4 priority control registers, each register controls 8 interrupts.
+         * Bit 0-2: interrupt 0
+         * Bit 4-7: interrupt 1
+         * ...
+         * Bit 28-30: interrupt 7
+         */
+        regIdx = IRQn >> 3U;
+        regOffset = (IRQn & 0x07U) * 4U;
+
+        EVENT_UNIT->INTPTPRI[regIdx] = (EVENT_UNIT->INTPTPRI[regIdx] & ~(0x0F << regOffset)) | (intPriority << regOffset);
+    }
+}
+
+uint8_t EVENT_GetIRQPriority(IRQn_Type IRQn)
+{
+    uint8_t regIdx;
+    uint8_t regOffset;
+    int32_t intPriority;
+
+    if ((IRQn < 32))
+    {
+        /*
+         * 4 priority control registers, each register controls 8 interrupts.
+         * Bit 0-2: interrupt 0
+         * Bit 4-7: interrupt 1
+         * ...
+         * Bit 28-30: interrupt 7
+         */
+        regIdx = IRQn >> 3U;
+        regOffset = (IRQn & 0x07U) << 2U;
+
+        intPriority = (EVENT_UNIT->INTPTPRI[regIdx] >> regOffset) & 0xF;
+        return (uint8_t)intPriority;
+    }
+    return 0;
+}
+
+bool SystemInISR(void)
+{
+    return ((EVENT_UNIT->INTPTENACTIVE) != 0);;
+}
+
+void EVENT_SystemReset(void)
+{
+    EVENT_UNIT->SLPCTRL |= EVENT_SLPCTRL_SYSRSTREQST_MASK;
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.h
new file mode 100644 (file)
index 0000000..c46b2e7
--- /dev/null
@@ -0,0 +1,182 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_ri5cy
+**                          RV32M1_ri5cy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         Provides a system configuration function and a global variable that
+**         contains the system frequency. It configures the device and initializes
+**         the oscillator (PLL) that is part of the microcontroller device.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_ri5cy
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief Device specific configuration file for RV32M1_ri5cy (header file)
+ *
+ * Provides a system configuration function and a global variable that contains
+ * the system frequency. It configures the device and initializes the oscillator
+ * (PLL) that is part of the microcontroller device.
+ */
+
+#ifndef _SYSTEM_RV32M1_ri5cy_H_
+#define _SYSTEM_RV32M1_ri5cy_H_             /**< Symbol preventing repeated inclusion */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stdbool.h>
+
+
+#ifndef DISABLE_WDOG
+  #define DISABLE_WDOG  1
+#endif
+
+/* Define clock source values */
+#define CPU_XTAL_CLK_HZ                 8000000u            /* Value of the external crystal or oscillator clock frequency in Hz */
+
+/* Low power mode enable */
+/* SMC_PMPROT: AHSRUN=1, AVLP=1,ALLS=1,AVLLS=0x3 */
+#define SYSTEM_SMC_PMPROT_VALUE        0xABu               /* SMC_PMPROT */
+#define SYSTEM_SMC_PMCTRL_VALUE        0x0u                /* SMC_PMCTRL */
+
+#define DEFAULT_SYSTEM_CLOCK           48000000u           /* Default System clock value */
+
+
+
+/**
+ * @brief System clock frequency (core clock)
+ *
+ * The system clock frequency supplied to the SysTick timer and the processor
+ * core clock. This variable can be used by the user application to setup the
+ * SysTick timer or configure other parameters. It may also be used by debugger to
+ * query the frequency of the debug timer or configure the trace clock speed
+ * SystemCoreClock is initialized with a correct predefined value.
+ */
+extern uint32_t SystemCoreClock;
+
+/**
+ * @brief Setup the microcontroller system.
+ *
+ * Typically this function configures the oscillator (PLL) that is part of the
+ * microcontroller device. For systems with variable clock speed it also updates
+ * the variable SystemCoreClock. SystemInit is called from startup_device file.
+ */
+void SystemInit (void);
+
+/**
+ * @brief Updates the SystemCoreClock variable.
+ *
+ * It must be called whenever the core clock is changed during program
+ * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates
+ * the current core clock.
+ */
+void SystemCoreClockUpdate (void);
+
+/**
+ * @brief SystemInit function hook.
+ *
+ * This weak function allows to call specific initialization code during the
+ * SystemInit() execution.This can be used when an application specific code needs
+ * to be called as close to the reset entry as possible (for example the Multicore
+ * Manager MCMGR_EarlyInit() function call).
+ * NOTE: No global r/w variables can be used in this hook function because the
+ * initialization of these variables happens after this function.
+ */
+void SystemInitHook (void);
+
+/**
+ * @brief System IRQ handler which dispatches specific IRQ to corresponding registered handler.
+ *
+ * It is called from IRQ exception context and dispatches to registered handler according to
+ * MCAUSE interrupt number.
+ *
+ * @param mcause IRQ acknowledge value read from MCAUSE
+ */
+void SystemIrqHandler(uint32_t mcause);
+
+/**
+ * @brief Get IRQ nesting level of current context.
+ *
+ * If the return value is 0, then the context is not ISR, otherwise the context is ISR.
+ *
+ * @return IRQ nesting level
+ */
+uint32_t SystemGetIRQNestingLevel (void);
+
+/**
+ * @brief Setup systick for RTOS system.
+ *
+ * @param tickRateHz Tick number per second
+ * @param intPriority IRQ interrupt priority (the smaller, the higher priority)
+ */
+void SystemSetupSystick (uint32_t tickRateHz, uint32_t intPriority);
+
+/**
+ * @brief Clear systick flag status so that next tick interrupt may occur.
+ */
+void SystemClearSystickFlag (void);
+
+/**
+ * @brief Sysem is in ISR or not.
+ */
+bool SystemInISR(void);
+
+#define SysTick_Handler LPIT0_IRQHandler
+
+/**
+ * @brief Set interrupt priority in Event unit.
+ */
+void EVENT_SetIRQPriority(IRQn_Type IRQn, uint8_t intPriority);
+
+/**
+ * @brief Get interrupt priority in Event unit.
+ */
+uint8_t EVENT_GetIRQPriority(IRQn_Type IRQn);
+
+/**
+ * @brief Reset the system.
+ */
+void EVENT_SystemReset(void);
+
+#define NVIC_SystemReset EVENT_SystemReset
+
+/* Priority setting macro remap. */
+#define NVIC_SetPriority EVENT_SetIRQPriority
+
+/* Priority getting macro remap. */
+#define NVIC_GetPriority EVENT_GetIRQPriority
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* _SYSTEM_RV32M1_ri5cy_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.c
new file mode 100644 (file)
index 0000000..0370097
--- /dev/null
@@ -0,0 +1,535 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_zero_riscy
+**                          RV32M1_zero_riscy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         Provides a system configuration function and a global variable that
+**         contains the system frequency. It configures the device and initializes
+**         the oscillator (PLL) that is part of the microcontroller device.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_zero_riscy
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief Device specific configuration file for RV32M1_zero_riscy
+ *        (implementation file)
+ *
+ * Provides a system configuration function and a global variable that contains
+ * the system frequency. It configures the device and initializes the oscillator
+ * (PLL) that is part of the microcontroller device.
+ */
+
+#include <stdint.h>
+#include "fsl_device_registers.h"
+#include "fsl_common.h"
+
+typedef void (*irq_handler_t)(void);
+
+extern void CTI1_IRQHandler(void);
+extern void DMA1_04_DriverIRQHandler(void);
+extern void DMA1_15_DriverIRQHandler(void);
+extern void DMA1_26_DriverIRQHandler(void);
+extern void DMA1_37_DriverIRQHandler(void);
+extern void DMA1_Error_DriverIRQHandler(void);
+extern void CMC1_IRQHandler(void);
+extern void LLWU1_IRQHandler(void);
+extern void MUB_IRQHandler(void);
+extern void WDOG1_IRQHandler(void);
+extern void CAU3_Task_Complete_IRQHandler(void);
+extern void CAU3_Security_Violation_IRQHandler(void);
+extern void TRNG_IRQHandler(void);
+extern void LPIT1_IRQHandler(void);
+extern void LPTMR2_IRQHandler(void);
+extern void TPM3_IRQHandler(void);
+extern void LPI2C3_DriverIRQHandler(void);
+extern void RF0_0_IRQHandler(void);
+extern void RF0_1_IRQHandler(void);
+extern void LPSPI3_DriverIRQHandler(void);
+extern void LPUART3_DriverIRQHandler(void);
+extern void PORTE_IRQHandler(void);
+extern void LPCMP1_IRQHandler(void);
+extern void RTC_IRQHandler(void);
+extern void INTMUX1_0_DriverIRQHandler(void);
+extern void INTMUX1_1_DriverIRQHandler(void);
+extern void INTMUX1_2_DriverIRQHandler(void);
+extern void INTMUX1_3_DriverIRQHandler(void);
+extern void INTMUX1_4_DriverIRQHandler(void);
+extern void INTMUX1_5_DriverIRQHandler(void);
+extern void INTMUX1_6_DriverIRQHandler(void);
+extern void INTMUX1_7_DriverIRQHandler(void);
+extern void EWM_IRQHandler(void);
+extern void FTFE_Command_Complete_IRQHandler(void);
+extern void FTFE_Read_Collision_IRQHandler(void);
+extern void SPM_IRQHandler(void);
+extern void SCG_IRQHandler(void);
+extern void LPIT0_IRQHandler(void);
+extern void LPTMR0_IRQHandler(void);
+extern void LPTMR1_IRQHandler(void);
+extern void TPM0_IRQHandler(void);
+extern void TPM1_IRQHandler(void);
+extern void TPM2_IRQHandler(void);
+extern void EMVSIM0_IRQHandler(void);
+extern void FLEXIO0_DriverIRQHandler(void);
+extern void LPI2C0_DriverIRQHandler(void);
+extern void LPI2C1_DriverIRQHandler(void);
+extern void LPI2C2_DriverIRQHandler(void);
+extern void I2S0_DriverIRQHandler(void);
+extern void USDHC0_DriverIRQHandler(void);
+extern void LPSPI0_DriverIRQHandler(void);
+extern void LPSPI1_DriverIRQHandler(void);
+extern void LPSPI2_DriverIRQHandler(void);
+extern void LPUART0_DriverIRQHandler(void);
+extern void LPUART1_DriverIRQHandler(void);
+extern void LPUART2_DriverIRQHandler(void);
+extern void USB0_IRQHandler(void);
+extern void PORTA_IRQHandler(void);
+extern void PORTB_IRQHandler(void);
+extern void PORTC_IRQHandler(void);
+extern void PORTD_IRQHandler(void);
+extern void ADC0_IRQHandler(void);
+extern void LPCMP0_IRQHandler(void);
+extern void LPDAC0_IRQHandler(void);
+extern void DMA1_15_IRQHandler(void);
+extern void DMA1_26_IRQHandler(void);
+extern void DMA1_37_IRQHandler(void);
+extern void DMA1_Error_IRQHandler(void);
+extern void LPI2C3_IRQHandler(void);
+extern void LPSPI3_IRQHandler(void);
+extern void LPUART3_IRQHandler(void);
+extern void INTMUX1_0_IRQHandler(void);
+extern void INTMUX1_1_IRQHandler(void);
+extern void INTMUX1_2_IRQHandler(void);
+extern void INTMUX1_3_IRQHandler(void);
+extern void INTMUX1_4_IRQHandler(void);
+extern void INTMUX1_5_IRQHandler(void);
+extern void INTMUX1_6_IRQHandler(void);
+extern void INTMUX1_7_IRQHandler(void);
+extern void FLEXIO0_IRQHandler(void);
+extern void LPI2C0_IRQHandler(void);
+extern void LPI2C1_IRQHandler(void);
+extern void LPI2C2_IRQHandler(void);
+extern void I2S0_IRQHandler(void);
+extern void USDHC0_IRQHandler(void);
+extern void LPSPI0_IRQHandler(void);
+extern void LPSPI1_IRQHandler(void);
+extern void LPSPI2_IRQHandler(void);
+extern void LPUART0_IRQHandler(void);
+extern void LPUART1_IRQHandler(void);
+extern void LPUART2_IRQHandler(void);
+
+/* ----------------------------------------------------------------------------
+   -- Core clock
+   ---------------------------------------------------------------------------- */
+
+uint32_t SystemCoreClock = DEFAULT_SYSTEM_CLOCK;
+
+extern uint32_t __etext;
+extern uint32_t __data_start__;
+extern uint32_t __data_end__;
+
+extern uint32_t __bss_start__;
+extern uint32_t __bss_end__;
+
+static void copy_section(uint32_t * p_load, uint32_t * p_vma, uint32_t * p_vma_end)
+{
+    while(p_vma <= p_vma_end)
+    {
+        *p_vma = *p_load;
+        ++p_load;
+        ++p_vma;
+    }
+}
+
+static void zero_section(uint32_t * start, uint32_t * end)
+{
+    uint32_t * p_zero = start;
+
+    while(p_zero <= end)
+    {
+        *p_zero = 0;
+        ++p_zero;
+    }
+}
+
+#define DEFINE_IRQ_HANDLER(irq_handler, driver_irq_handler) \
+    void __attribute__((weak)) irq_handler(void) { driver_irq_handler();}
+
+#define DEFINE_DEFAULT_IRQ_HANDLER(irq_handler) void irq_handler() __attribute__((weak, alias("DefaultIRQHandler")))
+
+DEFINE_DEFAULT_IRQ_HANDLER(CTI1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA1_04_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA1_15_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA1_26_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA1_37_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(DMA1_Error_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CMC1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LLWU1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(MUB_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(WDOG1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CAU3_Task_Complete_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(CAU3_Security_Violation_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TRNG_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPIT1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR2_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM3_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RF0_0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RF0_1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTE_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPCMP1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(RTC_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_3_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_4_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_5_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_6_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(INTMUX1_7_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(EWM_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FTFE_Command_Complete_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FTFE_Read_Collision_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(SPM_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(SCG_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPIT0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPTMR1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM1_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(TPM2_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(EMVSIM0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(FLEXIO0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPI2C2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(I2S0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(USDHC0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPSPI2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART0_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART1_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPUART2_DriverIRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(USB0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTA_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTB_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTC_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(PORTD_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(ADC0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPCMP0_IRQHandler);
+DEFINE_DEFAULT_IRQ_HANDLER(LPDAC0_IRQHandler);
+
+DEFINE_IRQ_HANDLER(DMA1_04_IRQHandler, DMA1_04_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA1_15_IRQHandler, DMA1_15_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA1_26_IRQHandler, DMA1_26_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA1_37_IRQHandler, DMA1_37_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(DMA1_Error_IRQHandler, DMA1_Error_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C3_IRQHandler, LPI2C3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI3_IRQHandler, LPSPI3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART3_IRQHandler, LPUART3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_0_IRQHandler, INTMUX1_0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_1_IRQHandler, INTMUX1_1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_2_IRQHandler, INTMUX1_2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_3_IRQHandler, INTMUX1_3_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_4_IRQHandler, INTMUX1_4_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_5_IRQHandler, INTMUX1_5_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_6_IRQHandler, INTMUX1_6_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(INTMUX1_7_IRQHandler, INTMUX1_7_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(FLEXIO0_IRQHandler, FLEXIO0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C0_IRQHandler, LPI2C0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C1_IRQHandler, LPI2C1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPI2C2_IRQHandler, LPI2C2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(I2S0_IRQHandler, I2S0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(USDHC0_IRQHandler, USDHC0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI0_IRQHandler, LPSPI0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI1_IRQHandler, LPSPI1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPSPI2_IRQHandler, LPSPI2_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART0_IRQHandler, LPUART0_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART1_IRQHandler, LPUART1_DriverIRQHandler);
+DEFINE_IRQ_HANDLER(LPUART2_IRQHandler, LPUART2_DriverIRQHandler);
+
+__attribute__((section("user_vectors"))) const irq_handler_t isrTable[] =
+{
+       CTI1_IRQHandler,
+       DMA1_04_IRQHandler,
+       DMA1_15_IRQHandler,
+       DMA1_26_IRQHandler,
+       DMA1_37_IRQHandler,
+       DMA1_Error_IRQHandler,
+       CMC1_IRQHandler,
+       LLWU1_IRQHandler,
+       MUB_IRQHandler,
+       WDOG1_IRQHandler,
+       CAU3_Task_Complete_IRQHandler,
+       CAU3_Security_Violation_IRQHandler,
+       TRNG_IRQHandler,
+       LPIT1_IRQHandler,
+       LPTMR2_IRQHandler,
+       TPM3_IRQHandler,
+       LPI2C3_IRQHandler,
+       RF0_0_IRQHandler,
+       RF0_1_IRQHandler,
+       LPSPI3_IRQHandler,
+       LPUART3_IRQHandler,
+       PORTE_IRQHandler,
+       LPCMP1_IRQHandler,
+       RTC_IRQHandler,
+       INTMUX1_0_IRQHandler,
+       INTMUX1_1_IRQHandler,
+       INTMUX1_2_IRQHandler,
+       INTMUX1_3_IRQHandler,
+       INTMUX1_4_IRQHandler,
+       INTMUX1_5_IRQHandler,
+       INTMUX1_6_IRQHandler,
+       INTMUX1_7_IRQHandler,
+       EWM_IRQHandler,
+       FTFE_Command_Complete_IRQHandler,
+       FTFE_Read_Collision_IRQHandler,
+       SPM_IRQHandler,
+       SCG_IRQHandler,
+       LPIT0_IRQHandler,
+       LPTMR0_IRQHandler,
+       LPTMR1_IRQHandler,
+       TPM0_IRQHandler,
+       TPM1_IRQHandler,
+       TPM2_IRQHandler,
+       EMVSIM0_IRQHandler,
+       FLEXIO0_IRQHandler,
+       LPI2C0_IRQHandler,
+       LPI2C1_IRQHandler,
+       LPI2C2_IRQHandler,
+       I2S0_IRQHandler,
+       USDHC0_IRQHandler,
+       LPSPI0_IRQHandler,
+       LPSPI1_IRQHandler,
+       LPSPI2_IRQHandler,
+       LPUART0_IRQHandler,
+       LPUART1_IRQHandler,
+       LPUART2_IRQHandler,
+       USB0_IRQHandler,
+       PORTA_IRQHandler,
+       PORTB_IRQHandler,
+       PORTC_IRQHandler,
+       PORTD_IRQHandler,
+       ADC0_IRQHandler,
+       LPCMP0_IRQHandler,
+       LPDAC0_IRQHandler,
+};
+
+extern uint32_t __VECTOR_TABLE[];
+
+static uint32_t irqNesting = 0;
+
+static void DefaultIRQHandler(void)
+{
+    for (;;)
+    {
+    }
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemInit()
+   ---------------------------------------------------------------------------- */
+
+void SystemInit (void) {
+#if (DISABLE_WDOG)
+  WDOG1->CNT = 0xD928C520U;
+  WDOG1->TOVAL = 0xFFFF;
+  WDOG1->CS = (uint32_t) ((WDOG1->CS) & ~WDOG_CS_EN_MASK) | WDOG_CS_UPDATE_MASK;
+#endif /* (DISABLE_WDOG) */
+
+  SystemInitHook();
+
+  copy_section(&__etext, &__data_start__, &__data_end__);
+  zero_section(&__bss_start__, &__bss_end__);
+
+  /* Setup the vector table address. */
+  irqNesting = 0;
+
+  __ASM volatile("csrw 0x305, %0" :: "r"((uint32_t)__VECTOR_TABLE)); /* MTVEC */
+  __ASM volatile("csrw 0x005, %0" :: "r"((uint32_t)__VECTOR_TABLE)); /* UTVEC */
+
+  /* Clear all pending flags. */
+  EVENT_UNIT->INTPTPENDCLEAR = 0xFFFFFFFF;
+  EVENT_UNIT->EVTPENDCLEAR = 0xFFFFFFFF;
+  /* Set all interrupt as secure interrupt. */
+  EVENT_UNIT->INTPTSECURE = 0xFFFFFFFF;
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemCoreClockUpdate()
+   ---------------------------------------------------------------------------- */
+
+void SystemCoreClockUpdate (void) {
+
+  uint32_t SCGOUTClock;                                 /* Variable to store output clock frequency of the SCG module */
+  uint16_t Divider;
+  Divider = ((SCG->CSR & SCG_CSR_DIVCORE_MASK) >> SCG_CSR_DIVCORE_SHIFT) + 1;
+
+  switch ((SCG->CSR & SCG_CSR_SCS_MASK) >> SCG_CSR_SCS_SHIFT) {
+    case 0x1:
+      /* System OSC */
+      SCGOUTClock = CPU_XTAL_CLK_HZ;
+      break;
+    case 0x2:
+      /* Slow IRC */
+      SCGOUTClock = (((SCG->SIRCCFG & SCG_SIRCCFG_RANGE_MASK) >> SCG_SIRCCFG_RANGE_SHIFT) ? 8000000 : 2000000);
+      break;
+    case 0x3:
+      /* Fast IRC */
+      SCGOUTClock = 48000000 + ((SCG->FIRCCFG & SCG_FIRCCFG_RANGE_MASK) >> SCG_FIRCCFG_RANGE_SHIFT) * 4000000;
+      break;
+    case 0x5:
+      /* Low Power FLL */
+      SCGOUTClock = 48000000 + ((SCG->LPFLLCFG & SCG_LPFLLCFG_FSEL_MASK) >> SCG_LPFLLCFG_FSEL_SHIFT) * 24000000;
+      break;
+    default:
+      return;
+  }
+  SystemCoreClock = (SCGOUTClock / Divider);
+}
+
+/* ----------------------------------------------------------------------------
+   -- SystemInitHook()
+   ---------------------------------------------------------------------------- */
+
+__attribute__ ((weak)) void SystemInitHook (void) {
+  /* Void implementation of the weak function. */
+}
+
+#if defined(__IAR_SYSTEMS_ICC__)
+#pragma weak SystemIrqHandler
+void SystemIrqHandler(uint32_t mcause) {
+#elif defined(__GNUC__)
+__attribute__((weak)) void SystemIrqHandler(uint32_t mcause) {
+#else
+  #error Not supported compiler type
+#endif
+    uint32_t intNum;
+
+    if (mcause & 0x80000000) /* For external interrupt. */
+    {
+        intNum = mcause & 0x1FUL;
+
+        irqNesting++;
+
+        /* Clear pending flag in EVENT unit .*/
+        EVENT_UNIT->INTPTPENDCLEAR = (1U << intNum);
+
+        /* Read back to make sure write finished. */
+        (void)(EVENT_UNIT->INTPTPENDCLEAR);
+
+        __enable_irq();      /* Support nesting interrupt */
+
+        /* Now call the real irq handler for intNum */
+        isrTable[intNum]();
+
+        __disable_irq();
+
+        irqNesting--;
+    }
+}
+
+/* Use LIPT1 channel 0 for systick. */
+#define SYSTICK_LPIT LPIT1
+#define SYSTICK_LPIT_CH 0
+#define SYSTICK_LPIT_IRQn LPIT1_IRQn
+
+/* Leverage LPIT0 to provide Systick */
+void SystemSetupSystick(uint32_t tickRateHz, uint32_t intPriority)
+{
+    /* Init pit module */
+    CLOCK_EnableClock(kCLOCK_Lpit1);
+
+    /* Reset the timer channels and registers except the MCR register */
+    SYSTICK_LPIT->MCR |= LPIT_MCR_SW_RST_MASK;
+    SYSTICK_LPIT->MCR &= ~LPIT_MCR_SW_RST_MASK;
+
+    /* Setup timer operation in debug and doze modes and enable the module */
+    SYSTICK_LPIT->MCR = LPIT_MCR_DBG_EN_MASK | LPIT_MCR_DOZE_EN_MASK | LPIT_MCR_M_CEN_MASK;
+
+    /* Set timer period for channel 0 */
+    SYSTICK_LPIT->CHANNEL[SYSTICK_LPIT_CH].TVAL = (CLOCK_GetIpFreq(kCLOCK_Lpit1) / tickRateHz) - 1;
+
+    /* Enable timer interrupts for channel 0 */
+    SYSTICK_LPIT->MIER |= (1U << SYSTICK_LPIT_CH);
+
+    /* Set interrupt priority. */
+    EVENT_SetIRQPriority(SYSTICK_LPIT_IRQn, intPriority);
+
+    /* Enable interrupt at the EVENT unit */
+    EnableIRQ(SYSTICK_LPIT_IRQn);
+
+    /* Start channel 0 */
+    SYSTICK_LPIT->SETTEN |= (LPIT_SETTEN_SET_T_EN_0_MASK << SYSTICK_LPIT_CH);
+}
+
+uint32_t SystemGetIRQNestingLevel(void)
+{
+    return irqNesting;
+}
+
+void SystemClearSystickFlag(void)
+{
+    /* Channel 0. */
+    SYSTICK_LPIT->MSR = (1U << SYSTICK_LPIT_CH);
+}
+
+void EVENT_SetIRQPriority(IRQn_Type IRQn, uint8_t intPriority)
+{
+    uint8_t regIdx;
+    uint8_t regOffset;
+
+    if ((IRQn < 32) && (intPriority < 8))
+    {
+        /*
+         * 4 priority control registers, each register controls 8 interrupts.
+         * Bit 0-2: interrupt 0
+         * Bit 4-7: interrupt 1
+         * ...
+         * Bit 28-30: interrupt 7
+         */
+        regIdx = IRQn >> 3U;
+        regOffset = (IRQn & 0x07U) * 4U;
+
+        EVENT_UNIT->INTPTPRI[regIdx] = (EVENT_UNIT->INTPTPRI[regIdx] & ~(0x0F << regOffset)) | (intPriority << regOffset);
+    }
+}
+
+bool SystemInISR(void)
+{
+    return ((EVENT_UNIT->INTPTENACTIVE) != 0);;
+}
+
+void EVENT_SystemReset(void)
+{
+    EVENT_UNIT->SLPCTRL |= EVENT_SLPCTRL_SYSRSTREQST_MASK;
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_zero_riscy.h
new file mode 100644 (file)
index 0000000..733ac53
--- /dev/null
@@ -0,0 +1,174 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_zero_riscy
+**                          RV32M1_zero_riscy
+**
+**     Compilers:           Keil ARM C/C++ Compiler
+**                          GNU C Compiler
+**                          IAR ANSI C/C++ Compiler for ARM
+**                          MCUXpresso Compiler
+**
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b180926
+**
+**     Abstract:
+**         Provides a system configuration function and a global variable that
+**         contains the system frequency. It configures the device and initializes
+**         the oscillator (PLL) that is part of the microcontroller device.
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2018 NXP
+**     All rights reserved.
+**
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+**     Revisions:
+**     - rev. 1.0 (2018-10-02)
+**         Initial version.
+**
+** ###################################################################
+*/
+
+/*!
+ * @file RV32M1_zero_riscy
+ * @version 1.0
+ * @date 2018-10-02
+ * @brief Device specific configuration file for RV32M1_zero_riscy (header
+ *        file)
+ *
+ * Provides a system configuration function and a global variable that contains
+ * the system frequency. It configures the device and initializes the oscillator
+ * (PLL) that is part of the microcontroller device.
+ */
+
+#ifndef _SYSTEM_RV32M1_zero_riscy_H_
+#define _SYSTEM_RV32M1_zero_riscy_H_        /**< Symbol preventing repeated inclusion */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stdbool.h>
+
+
+#ifndef DISABLE_WDOG
+  #define DISABLE_WDOG  1
+#endif
+
+/* Define clock source values */
+#define CPU_XTAL_CLK_HZ                 8000000u            /* Value of the external crystal or oscillator clock frequency in Hz */
+
+/* Low power mode enable */
+/* SMC_PMPROT: AHSRUN=1, AVLP=1,ALLS=1,AVLLS=0x3 */
+#define SYSTEM_SMC_PMPROT_VALUE        0xABu               /* SMC_PMPROT */
+#define SYSTEM_SMC_PMCTRL_VALUE        0x0u                /* SMC_PMCTRL */
+
+#define DEFAULT_SYSTEM_CLOCK           48000000u           /* Default System clock value */
+
+
+
+/**
+ * @brief System clock frequency (core clock)
+ *
+ * The system clock frequency supplied to the SysTick timer and the processor
+ * core clock. This variable can be used by the user application to setup the
+ * SysTick timer or configure other parameters. It may also be used by debugger to
+ * query the frequency of the debug timer or configure the trace clock speed
+ * SystemCoreClock is initialized with a correct predefined value.
+ */
+extern uint32_t SystemCoreClock;
+
+/**
+ * @brief Setup the microcontroller system.
+ *
+ * Typically this function configures the oscillator (PLL) that is part of the
+ * microcontroller device. For systems with variable clock speed it also updates
+ * the variable SystemCoreClock. SystemInit is called from startup_device file.
+ */
+void SystemInit (void);
+
+/**
+ * @brief Updates the SystemCoreClock variable.
+ *
+ * It must be called whenever the core clock is changed during program
+ * execution. SystemCoreClockUpdate() evaluates the clock register settings and calculates
+ * the current core clock.
+ */
+void SystemCoreClockUpdate (void);
+
+/**
+ * @brief SystemInit function hook.
+ *
+ * This weak function allows to call specific initialization code during the
+ * SystemInit() execution.This can be used when an application specific code needs
+ * to be called as close to the reset entry as possible (for example the Multicore
+ * Manager MCMGR_EarlyInit() function call).
+ * NOTE: No global r/w variables can be used in this hook function because the
+ * initialization of these variables happens after this function.
+ */
+void SystemInitHook (void);
+
+/**
+ * @brief System IRQ handler which dispatches specific IRQ to corresponding registered handler.
+ *
+ * It is called from IRQ exception context and dispatches to registered handler according to
+ * MCAUSE interrupt number.
+ *
+ * @param mcause IRQ acknowledge value read from MCAUSE
+ */
+void SystemIrqHandler(uint32_t mcause);
+
+/**
+ * @brief Get IRQ nesting level of current context.
+ *
+ * If the return value is 0, then the context is not ISR, otherwise the context is ISR.
+ *
+ * @return IRQ nesting level
+ */
+uint32_t SystemGetIRQNestingLevel (void);
+
+/**
+ * @brief Setup systick for RTOS system.
+ *
+ * @param tickRateHz Tick number per second
+ * @param intPriority IRQ interrupt priority (the smaller, the higher priority)
+ */
+void SystemSetupSystick (uint32_t tickRateHz, uint32_t intPriority);
+
+/**
+ * @brief Clear systick flag status so that next tick interrupt may occur.
+ */
+void SystemClearSystickFlag (void);
+
+#define SysTick_Handler LPIT1_IRQHandler
+
+/**
+ * @brief Sysem is in ISR or not.
+ */
+bool SystemInISR(void);
+
+/**
+ * @brief Set interrupt priority in Event unit.
+ */
+void EVENT_SetIRQPriority(IRQn_Type IRQn, uint8_t intPriority);
+
+/* Priority setting macro remap. */
+#define NVIC_SetPriority EVENT_SetIRQPriority
+
+/**
+ * @brief Reset the system.
+ */
+void EVENT_SystemReset(void);
+
+#define NVIC_SystemReset EVENT_SystemReset
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  /* _SYSTEM_RV32M1_zero_riscy_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.c
new file mode 100644 (file)
index 0000000..f4b3fb0
--- /dev/null
@@ -0,0 +1,386 @@
+/*
+ * This is a modified version of the file printf.c, which was distributed
+ * by Motorola as part of the M5407C3BOOT.zip package used to initialize
+ * the M5407C3 evaluation board.
+ *
+ * Copyright:
+ *      1999-2000 MOTOROLA, INC. All Rights Reserved.
+ *  You are hereby granted a copyright license to use, modify, and
+ *  distribute the SOFTWARE so long as this entire notice is
+ *  retained without alteration in any modified and/or redistributed
+ *  versions, and that such modified versions are clearly identified
+ *  as such. No licenses are granted by implication, estoppel or
+ *  otherwise under any patents or trademarks of Motorola, Inc. This
+ *  software is provided on an "AS IS" basis and without warranty.
+ *
+ *  To the maximum extent permitted by applicable law, MOTOROLA
+ *  DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING
+ *  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+ *  PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH REGARD TO THE
+ *  SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF) AND ANY
+ *  ACCOMPANYING WRITTEN MATERIALS.
+ *
+ *  To the maximum extent permitted by applicable law, IN NO EVENT
+ *  SHALL MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING
+ *  WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
+ *  INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY
+ *  LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
+ *
+ *  Motorola assumes no responsibility for the maintenance and support
+ *  of this software
+
+ * Copyright (c) 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <stdarg.h>
+#include <stdlib.h>
+#if defined(__CC_ARM)
+#include <stdio.h>
+#endif
+
+#include "fsl_debug_console.h"
+#include "fsl_debug_console_conf.h"
+#include "fsl_log.h"
+#include "fsl_str.h"
+
+#if defined(__riscv)
+#include <sys/stat.h>
+#include <sys/types.h>
+#endif
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+/*!
+ * @brief This is a printf call back function which is used to relocate the log to buffer
+ * or print the log immediately when the local buffer is full.
+ *
+ * @param[in] buf   Buffer to store log.
+ * @param[in] indicator Buffer index.
+ * @param[in] val Target character to store.
+ * @param[in] len length of the character
+ *
+ */
+#if SDK_DEBUGCONSOLE
+static void DbgConsole_RelocateLog(char *buf, int32_t *indicator, char val, int len);
+#endif
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+
+/*************Code for DbgConsole Init, Deinit, Printf, Scanf *******************************/
+
+/* See fsl_debug_console.h for documentation of this function. */
+status_t DbgConsole_Init(uint32_t baseAddr, uint32_t baudRate, uint8_t device, uint32_t clkSrcFreq)
+{
+    assert(device != DEBUG_CONSOLE_DEVICE_TYPE_NONE);
+
+    return LOG_Init(baseAddr, device, baudRate, clkSrcFreq);
+}
+
+/* See fsl_debug_console.h for documentation of this function. */
+status_t DbgConsole_Deinit(void)
+{
+    /* LOG deinit */
+    LOG_Deinit();
+
+    return kStatus_Success;
+}
+
+status_t DbgConsole_Flush(void)
+{
+    /* wait log and io idle */
+    return LOG_WaitIdle();
+}
+
+#if SDK_DEBUGCONSOLE
+/* See fsl_debug_console.h for documentation of this function. */
+int DbgConsole_Printf(const char *fmt_s, ...)
+{
+    va_list ap;
+    int logLength = 0U, result = 0U;
+    char printBuf[DEBUG_CONSOLE_PRINTF_MAX_LOG_LEN] = {0U};
+
+    va_start(ap, fmt_s);
+    /* format print log first */
+    logLength = StrFormatPrintf(fmt_s, ap, printBuf, DbgConsole_RelocateLog);
+    /* print log */
+    result = LOG_Push((uint8_t *)printBuf, logLength);
+
+    va_end(ap);
+
+    return result;
+}
+
+/* See fsl_debug_console.h for documentation of this function. */
+int DbgConsole_Putchar(int ch)
+{
+    /* print char */
+    return LOG_Push((uint8_t *)&ch, 1U);
+}
+
+/* See fsl_debug_console.h for documentation of this function. */
+int DbgConsole_Scanf(char *fmt_ptr, ...)
+{
+    va_list ap;
+    int result;
+    char scanfBuf[DEBUG_CONSOLE_SCANF_MAX_LOG_LEN + 1U] = {0U};
+
+    /* scanf log */
+    LOG_ReadLine((uint8_t *)scanfBuf, DEBUG_CONSOLE_SCANF_MAX_LOG_LEN);
+    /* get va_list */
+    va_start(ap, fmt_ptr);
+    /* format scanf log */
+    result = StrFormatScanf(scanfBuf, fmt_ptr, ap);
+
+    va_end(ap);
+
+    return result;
+}
+
+/* See fsl_debug_console.h for documentation of this function. */
+int DbgConsole_Getchar(void)
+{
+    uint8_t ch;
+
+    /* Get char */
+    LOG_ReadCharacter(&ch);
+
+    return ch;
+}
+
+static void DbgConsole_RelocateLog(char *buf, int32_t *indicator, char val, int len)
+{
+    int i = 0;
+
+    for (i = 0; i < len; i++)
+    {
+        if ((*indicator + 1) >= DEBUG_CONSOLE_PRINTF_MAX_LOG_LEN)
+        {
+            LOG_Push((uint8_t *)buf, *indicator);
+            *indicator = 0U;
+        }
+
+        buf[*indicator] = val;
+        (*indicator)++;
+    }
+}
+
+#endif /* SDK_DEBUGCONSOLE */
+/*************Code to support toolchain's printf, scanf *******************************/
+/* These function __write and __read is used to support IAR toolchain to printf and scanf*/
+#if (defined(__ICCARM__))
+#pragma weak __write
+size_t __write(int handle, const unsigned char *buffer, size_t size)
+{
+    if (buffer == 0)
+    {
+        /*
+         * This means that we should flush internal buffers.  Since we don't we just return.
+         * (Remember, "handle" == -1 means that all handles should be flushed.)
+         */
+        return 0;
+    }
+
+    /* This function only writes to "standard out" and "standard err" for all other file handles it returns failure. */
+    if ((handle != 1) && (handle != 2))
+    {
+        return ((size_t)-1);
+    }
+
+    /* Send data. */
+    LOG_Push((uint8_t *)buffer, 1U);
+
+    return size;
+}
+
+#pragma weak __read
+size_t __read(int handle, unsigned char *buffer, size_t size)
+{
+    /* This function only reads from "standard in", for all other file  handles it returns failure. */
+    if (handle != 0)
+    {
+        return ((size_t)-1);
+    }
+
+    /* Receive data.*/
+    LOG_ReadLine(buffer, size);
+
+    return size;
+}
+
+/* support LPC Xpresso with RedLib */
+#elif(defined(__REDLIB__))
+
+#if (!SDK_DEBUGCONSOLE) && (defined(SDK_DEBUGCONSOLE_UART))
+int __attribute__((weak)) __sys_write(int handle, char *buffer, int size)
+{
+    if (buffer == 0)
+    {
+        /* return -1 if error. */
+        return -1;
+    }
+
+    /* This function only writes to "standard out" and "standard err" for all other file handles it returns failure. */
+    if ((handle != 1) && (handle != 2))
+    {
+        return -1;
+    }
+
+    /* Send data. */
+    LOG_Push((uint8_t *)buffer, size);
+
+    return 0;
+}
+
+int __attribute__((weak)) __sys_readc(void)
+{
+    char tmp;
+
+    /* Receive data. */
+    LOG_ReadCharacter((uint8_t *)&tmp);
+
+    return tmp;
+}
+#endif
+
+/* These function __write and __read is used to support ARM_GCC, KDS, Atollic toolchains to printf and scanf*/
+#elif(defined(__GNUC__))
+
+#if ((defined(__GNUC__) && (!defined(__MCUXPRESSO))) || \
+     (defined(__MCUXPRESSO) && (!SDK_DEBUGCONSOLE) && (defined(SDK_DEBUGCONSOLE_UART))))
+
+int __attribute__((weak)) _write(int handle, char *buffer, int size)
+{
+    if (buffer == 0)
+    {
+        /* return -1 if error. */
+        return -1;
+    }
+
+    /* This function only writes to "standard out" and "standard err" for all other file handles it returns failure. */
+    if ((handle != 1) && (handle != 2))
+    {
+        return -1;
+    }
+
+    /* Send data. */
+    LOG_Push((uint8_t *)buffer, size);
+
+    return size;
+}
+
+int __attribute__((weak)) _read(int handle, char *buffer, int size)
+{
+    /* This function only reads from "standard in", for all other file handles it returns failure. */
+    if (handle != 0)
+    {
+        return -1;
+    }
+
+    /* Receive data. */
+    return LOG_ReadLine((uint8_t *)buffer, size);
+}
+#endif
+
+/* These function fputc and fgetc is used to support KEIL toolchain to printf and scanf*/
+#elif defined(__CC_ARM)
+struct __FILE
+{
+    int handle;
+    /*
+     * Whatever you require here. If the only file you are using is standard output using printf() for debugging,
+     * no file handling is required.
+     */
+};
+
+/* FILE is typedef in stdio.h. */
+#pragma weak __stdout
+#pragma weak __stdin
+FILE __stdout;
+FILE __stdin;
+
+#pragma weak fputc
+int fputc(int ch, FILE *f)
+{
+    /* Send data. */
+    return LOG_Push((uint8_t *)(&ch), 1);
+}
+
+#pragma weak fgetc
+int fgetc(FILE *f)
+{
+    char ch;
+
+    /* Receive data. */
+    LOG_ReadCharacter((uint8_t *)&ch);
+
+    return ch;
+}
+#endif /* __ICCARM__ */
+
+#if defined(__riscv)
+int isatty(int fd)
+{
+    return 1;
+}
+
+int fstat(int fd, struct stat *st)
+{
+    st->st_mode = S_IFCHR;
+    return 0;
+}
+
+int lseek(int fd, off_t ptr, int dir)
+{
+    return 0;
+}
+
+int close(int fd)
+{
+    return -1;
+}
+
+int read(int fd, void* ptr, size_t len)
+{
+    /* This function only reads from "standard in", for all other file handles it returns failure. */
+    if (fd != 0)
+    {
+        return -1;
+    }
+
+    /* Receive data. */
+    return LOG_ReadLine((uint8_t *)ptr, len);
+}
+
+int write(int fd, const void* ptr, size_t len)
+{
+    if (ptr == 0)
+    {
+        /* return -1 if error. */
+        return -1;
+    }
+
+    /* This function only writes to "standard out" and "standard err" for all other file handles it returns failure. */
+    if ((fd != 1) && (fd != 2))
+    {
+        return -1;
+    }
+
+    /* Send data. */
+    LOG_Push((uint8_t *)ptr, len);
+
+    return len;
+}
+#endif
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.h
new file mode 100644 (file)
index 0000000..0dadeaa
--- /dev/null
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2013 - 2015, Freescale Semiconductor, Inc.
+ * Copyright 2016-2017 NXP
+ * All rights reserved.
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Debug console shall provide input and output functions to scan and print formatted data.
+ * o Support a format specifier for PRINTF follows this prototype "%[flags][width][.precision][length]specifier"
+ *   - [flags] :'-', '+', '#', ' ', '0'
+ *   - [width]:  number (0,1...)
+ *   - [.precision]: number (0,1...)
+ *   - [length]: do not support
+ *   - [specifier]: 'd', 'i', 'f', 'F', 'x', 'X', 'o', 'p', 'u', 'c', 's', 'n'
+ * o Support a format specifier for SCANF follows this prototype " %[*][width][length]specifier"
+ *   - [*]: is supported.
+ *   - [width]: number (0,1...)
+ *   - [length]: 'h', 'hh', 'l','ll','L'. ignore ('j','z','t')
+ *   - [specifier]: 'd', 'i', 'u', 'f', 'F', 'e', 'E', 'g', 'G', 'a', 'A', 'o', 'c', 's'
+ */
+
+#ifndef _FSL_DEBUGCONSOLE_H_
+#define _FSL_DEBUGCONSOLE_H_
+
+#include "fsl_common.h"
+/*
+ * @addtogroup debugconsole
+ * @{
+ */
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @brief Definition to select sdk or toolchain printf, scanf. */
+#ifndef SDK_DEBUGCONSOLE
+#define SDK_DEBUGCONSOLE 1U
+#endif
+
+#if defined(SDK_DEBUGCONSOLE) && !(SDK_DEBUGCONSOLE)
+#include <stdio.h>
+#endif
+
+#if SDK_DEBUGCONSOLE /* Select printf, scanf, putchar, getchar of SDK version. */
+#define PRINTF DbgConsole_Printf
+#define SCANF DbgConsole_Scanf
+#define PUTCHAR DbgConsole_Putchar
+#define GETCHAR DbgConsole_Getchar
+#else /* Select printf, scanf, putchar, getchar of toolchain. */
+#define PRINTF printf
+#define SCANF scanf
+#define PUTCHAR putchar
+#define GETCHAR getchar
+#endif /* SDK_DEBUGCONSOLE */
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*! @name Initialization*/
+/* @{ */
+
+/*!
+ * @brief Initializes the the peripheral used for debug messages.
+ *
+ * Call this function to enable debug log messages to be output via the specified peripheral,
+ * frequency of peripheral source clock, and base address at the specified baud rate.
+ * After this function has returned, stdout and stdin are connected to the selected peripheral.
+ *
+ * @param baseAddr      Indicates the address of the peripheral used to send debug messages.
+ * @param baudRate      The desired baud rate in bits per second.
+ * @param device        Low level device type for the debug console, can be one of the following.
+ *                      @arg DEBUG_CONSOLE_DEVICE_TYPE_UART,
+ *                      @arg DEBUG_CONSOLE_DEVICE_TYPE_LPUART,
+ *                      @arg DEBUG_CONSOLE_DEVICE_TYPE_LPSCI,
+ *                      @arg DEBUG_CONSOLE_DEVICE_TYPE_USBCDC.
+ * @param clkSrcFreq    Frequency of peripheral source clock.
+ *
+ * @return              Indicates whether initialization was successful or not.
+ * @retval kStatus_Success          Execution successfully
+ * @retval kStatus_Fail             Execution failure
+ * @retval kStatus_InvalidArgument  Invalid argument existed
+ */
+status_t DbgConsole_Init(uint32_t baseAddr, uint32_t baudRate, uint8_t device, uint32_t clkSrcFreq);
+
+/*!
+ * @brief De-initializes the peripheral used for debug messages.
+ *
+ * Call this function to disable debug log messages to be output via the specified peripheral
+ * base address and at the specified baud rate.
+ *
+ * @return Indicates whether de-initialization was successful or not.
+ */
+status_t DbgConsole_Deinit(void);
+
+/*!
+ * @brief Debug console flush log.
+ *
+ * Call this function to wait the buffer empty and io idle before.
+ * If interrupt transfer is using, make sure the global IRQ is enable before call this function
+ * This function should be called when
+ * 1, before enter power down mode
+ * 2, log is required to print to terminal immediately
+ * @return Indicates whether wait idle was successful or not.
+ */
+status_t DbgConsole_Flush(void);
+
+#if SDK_DEBUGCONSOLE
+/*!
+ * @brief Writes formatted output to the standard output stream.
+ *
+ * Call this function to write a formatted output to the standard output stream.
+ *
+ * @param   fmt_s Format control string.
+ * @return  Returns the number of characters printed or a negative value if an error occurs.
+ */
+int DbgConsole_Printf(const char *fmt_s, ...);
+
+/*!
+ * @brief Writes a character to stdout.
+ *
+ * Call this function to write a character to stdout.
+ *
+ * @param   ch Character to be written.
+ * @return  Returns the character written.
+ */
+int DbgConsole_Putchar(int ch);
+
+/*!
+ * @brief Reads formatted data from the standard input stream.
+ *
+ * Call this function to read formatted data from the standard input stream.
+ *
+ * @param   fmt_ptr Format control string.
+ * @return  Returns the number of fields successfully converted and assigned.
+ */
+int DbgConsole_Scanf(char *fmt_ptr, ...);
+
+/*!
+ * @brief Reads a character from standard input.
+ *
+ * Call this function to read a character from standard input.
+ *
+ * @return Returns the character read.
+ */
+int DbgConsole_Getchar(void);
+
+#endif /* SDK_DEBUGCONSOLE */
+
+/*! @} */
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+/*! @} */
+
+#endif /* _FSL_DEBUGCONSOLE_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console_conf.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console_conf.h
new file mode 100644 (file)
index 0000000..de62234
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+#ifndef _FSL_DEBUG_CONSOLE_CONF_H_
+#define _FSL_DEBUG_CONSOLE_CONF_H_
+
+/****************Debug console configuration********************/
+
+/*! @brief If Non-blocking mode is needed, please define it at project setting,
+* otherwise blocking mode is the default transfer mode.
+* Warning: If you want to use non-blocking transfer,please make sure the corresponding
+* IO interrupt is enable, otherwise there is no output.
+* And non-blocking is combine with buffer, no matter bare-metal or rtos.
+*/
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+/*! @brief define the transmit buffer length which is used to store the multi task log, buffer is enabled automatically
+* when
+* non-blocking transfer is using,
+* This value will affect the RAM's ultilization, should be set per paltform's capability and software requirement.
+* If it is configured too small, log maybe missed , because the log will not be
+* buffered if the buffer is full, and the print will return immediately with -1.
+* And this value should be multiple of 4 to meet memory alignment.
+*
+*/
+#ifndef DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN
+#define DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN (512U)
+#endif /* DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN */
+
+/*! @brief define the receive buffer length which is used to store the user input, buffer is enabled automatically when
+* non-blocking transfer is using,
+* This value will affect the RAM's ultilization, should be set per paltform's capability and software requirement.
+* If it is configured too small, log maybe missed, because buffer will be overwrited if buffer is too small.
+* And this value should be multiple of 4 to meet memory alignment.
+*
+*/
+#ifndef DEBUG_CONSOLE_RECEIVE_BUFFER_LEN
+#define DEBUG_CONSOLE_RECEIVE_BUFFER_LEN (512U)
+#endif /* DEBUG_CONSOLE_RECEIVE_BUFFER_LEN */
+
+#else
+#define DEBUG_CONSOLE_TRANSFER_BLOCKING
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/*!@ brief define the MAX log length debug console support , that is when you call printf("log", x);, the log
+* length can not bigger than this value.
+* This macro decide the local log buffer length, the buffer locate at stack, the stack maybe overflow if
+* the buffer is too big and current task stack size not big enough.
+*/
+#ifndef DEBUG_CONSOLE_PRINTF_MAX_LOG_LEN
+#define DEBUG_CONSOLE_PRINTF_MAX_LOG_LEN (128U)
+#endif /* DEBUG_CONSOLE_PRINTF_MAX_LOG_LEN */
+
+/*!@ brief define the buffer support buffer scanf log length, that is when you call scanf("log", &x);, the log
+* length can not bigger than this value.
+* As same as the DEBUG_CONSOLE_BUFFER_PRINTF_MAX_LOG_LEN.
+*/
+#ifndef DEBUG_CONSOLE_SCANF_MAX_LOG_LEN
+#define DEBUG_CONSOLE_SCANF_MAX_LOG_LEN (20U)
+#endif /* DEBUG_CONSOLE_SCANF_MAX_LOG_LEN */
+
+/*! @brief Debug console synchronization
+* User should not change these macro for synchronization mode, but add the
+* corresponding synchronization mechanism per different software environment.
+* Such as, if another RTOS is used,
+* add:
+*  #define DEBUG_CONSOLE_SYNCHRONIZATION_XXXX 3
+* in this configuration file and implement the synchronization in fsl.log.c.
+*/
+/*! @brief synchronization for baremetal software */
+#define DEBUG_CONSOLE_SYNCHRONIZATION_BM 0
+/*! @brief synchronization for freertos software */
+#define DEBUG_CONSOLE_SYNCHRONIZATION_FREERTOS 1
+
+/*! @brief RTOS synchronization mechanism disable
+* If not defined, default is enable, to avoid multitask log print mess.
+* If other RTOS is used, you can implement the RTOS's specific synchronization mechanism in fsl.log.c
+* If synchronization is disabled, log maybe messed on terminal.
+*/
+#ifndef DEBUG_CONSOLE_DISABLE_RTOS_SYNCHRONIZATION
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+#ifdef FSL_RTOS_FREE_RTOS
+#define DEBUG_CONSOLE_SYNCHRONIZATION_MODE DEBUG_CONSOLE_SYNCHRONIZATION_FREERTOS
+#else
+#define DEBUG_CONSOLE_SYNCHRONIZATION_MODE DEBUG_CONSOLE_SYNCHRONIZATION_BM
+#endif /* FSL_RTOS_FREE_RTOS */
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+#endif /* DEBUG_CONSOLE_DISABLE_RTOS_SYNCHRONIZATION */
+
+/*! @brief echo function support
+* If you want to use the echo function,please define DEBUG_CONSOLE_ENABLE_ECHO
+* at your project setting.
+*/
+#ifndef DEBUG_CONSOLE_ENABLE_ECHO
+#define DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION 0
+#else
+#define DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION 1
+#endif /* DEBUG_CONSOLE_ENABLE_ECHO */
+
+/*********************************************************************/
+
+/***************Debug console other configuration*********************/
+/*! @brief Definition to printf the float number. */
+#ifndef PRINTF_FLOAT_ENABLE
+#define PRINTF_FLOAT_ENABLE 0U
+#endif /* PRINTF_FLOAT_ENABLE */
+
+/*! @brief Definition to scanf the float number. */
+#ifndef SCANF_FLOAT_ENABLE
+#define SCANF_FLOAT_ENABLE 0U
+#endif /* SCANF_FLOAT_ENABLE */
+
+/*! @brief Definition to support advanced format specifier for printf. */
+#ifndef PRINTF_ADVANCED_ENABLE
+#define PRINTF_ADVANCED_ENABLE 0U
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+/*! @brief Definition to support advanced format specifier for scanf. */
+#ifndef SCANF_ADVANCED_ENABLE
+#define SCANF_ADVANCED_ENABLE 0U
+#endif /* SCANF_ADVANCED_ENABLE */
+
+/*******************************************************************/
+
+#endif /* _FSL_DEBUG_CONSOLE_CONF_H_ */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.c
new file mode 100644 (file)
index 0000000..10900d7
--- /dev/null
@@ -0,0 +1,655 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#include "fsl_io.h"
+#include "fsl_debug_console_conf.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/* check avaliable device  */
+#if (defined(FSL_FEATURE_SOC_UART_COUNT) && (FSL_FEATURE_SOC_UART_COUNT != 0))
+#define DEBUG_CONSOLE_IO_UART
+#endif
+
+#if (defined(FSL_FEATURE_SOC_IUART_COUNT) && (FSL_FEATURE_SOC_IUART_COUNT != 0))
+#define DEBUG_CONSOLE_IO_IUART
+#endif
+
+#if (defined(FSL_FEATURE_SOC_LPUART_COUNT) && (FSL_FEATURE_SOC_LPUART_COUNT != 0))
+#define DEBUG_CONSOLE_IO_LPUART
+#endif
+
+#if (defined(FSL_FEATURE_SOC_LPSCI_COUNT) && (FSL_FEATURE_SOC_LPSCI_COUNT != 0))
+#define DEBUG_CONSOLE_IO_LPSCI
+#endif
+
+#if ((defined(FSL_FEATURE_SOC_USB_COUNT) && (FSL_FEATURE_SOC_USB_COUNT == 0)) && defined(BOARD_USE_VIRTUALCOM))
+#define DEBUG_CONSOLE_IO_USBCDC
+#endif
+
+#if (defined(FSL_FEATURE_SOC_FLEXCOMM_COUNT) && (FSL_FEATURE_SOC_FLEXCOMM_COUNT != 0))
+#define DEBUG_CONSOLE_IO_FLEXCOMM
+#endif
+
+#if (defined(FSL_FEATURE_SOC_VFIFO_COUNT) && (FSL_FEATURE_SOC_VFIFO_COUNT != 0))
+#define DEBUG_CONSOLE_IO_VUSART
+#endif
+
+/* configuration for debug console device */
+/* If new device is required as the low level device for debug console,
+ * Add the #elif branch and add the preprocessor macro to judge whether
+ * this kind of device exist in this SOC. */
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+#include "fsl_uart.h"
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static uart_handle_t s_ioUartHandler;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+#endif /* defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART */
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+#include "fsl_lpuart.h"
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static lpuart_handle_t s_ioLpuartHandler;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+#endif /* DEBUG_CONSOLE_IO_LPUART */
+
+#if defined DEBUG_CONSOLE_IO_LPSCI
+#include "fsl_lpsci.h"
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static lpsci_handle_t s_ioLpsciHandler;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+#endif /* DEBUG_CONSOLE_IO_LPSCI */
+
+#if defined DEBUG_CONSOLE_IO_USBCDC
+#include "usb_device_config.h"
+#include "usb.h"
+#include "usb_device_cdc_acm.h"
+#include "usb_device_ch9.h"
+#include "virtual_com.h"
+#endif /* DEBUG_CONSOLE_IO_USBCDC */
+
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+#include "fsl_usart.h"
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static usart_handle_t s_ioUsartHandler;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+#endif /* defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART */
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+
+/*! @brief Debug console IO state information. */
+static io_state_t s_debugConsoleIO = {
+    .ioBase = NULL,
+    .ioType = DEBUG_CONSOLE_DEVICE_TYPE_NONE,
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    .callBack = NULL,
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+};
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+static void UART_Callback(UART_Type *base, uart_handle_t *handle, status_t status, void *userData)
+{
+    bool tx = false, rx = false;
+    size_t size = 0U;
+
+    if (status == kStatus_UART_RxIdle)
+    {
+        rx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    if (status == kStatus_UART_TxIdle)
+    {
+        tx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    /* inform the buffer layer that transfer is complete */
+    if (s_debugConsoleIO.callBack != NULL)
+    {
+        /* call buffer callback function */
+        s_debugConsoleIO.callBack(&size, rx, tx);
+    }
+}
+#endif /* defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART */
+
+#if defined DEBUG_CONSOLE_IO_LPSCI
+static void LPSCI_Callback(UART0_Type *base, lpsci_handle_t *handle, status_t status, void *userData)
+{
+    bool tx = false, rx = false;
+    size_t size = 0U;
+
+    if (status == kStatus_LPSCI_RxIdle)
+    {
+        rx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    if (status == kStatus_LPSCI_TxIdle)
+    {
+        tx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    /* inform the buffer layer that transfer is complete */
+    if (s_debugConsoleIO.callBack != NULL)
+    {
+        /* call buffer callback function */
+        s_debugConsoleIO.callBack(&size, rx, tx);
+    }
+}
+#endif /* DEBUG_CONSOLE_IO_LPSCI */
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+static void LPUART_Callback(LPUART_Type *base, lpuart_handle_t *handle, status_t status, void *userData)
+{
+    bool tx = false, rx = false;
+    size_t size = 0U;
+
+    if (status == kStatus_LPUART_RxIdle)
+    {
+        rx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    if (status == kStatus_LPUART_TxIdle)
+    {
+        tx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    /* inform the buffer layer that transfer is complete */
+    if (s_debugConsoleIO.callBack != NULL)
+    {
+        /* call buffer callback function */
+        s_debugConsoleIO.callBack(&size, rx, tx);
+    }
+}
+#endif /* DEBUG_CONSOLE_IO_LPUART */
+
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+static void USART_Callback(USART_Type *base, usart_handle_t *handle, status_t status, void *userData)
+{
+    bool tx = false, rx = false;
+    size_t size = 0U;
+
+    if (status == kStatus_USART_RxIdle)
+    {
+        rx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    if (status == kStatus_USART_TxIdle)
+    {
+        tx = true;
+        size = handle->txDataSizeAll;
+    }
+
+    /* inform the buffer layer that transfer is complete */
+    if (s_debugConsoleIO.callBack != NULL)
+    {
+        /* call buffer callback function */
+        s_debugConsoleIO.callBack(&size, rx, tx);
+    }
+}
+#endif /* defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART */
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+void IO_Init(io_state_t *io, uint32_t baudRate, uint32_t clkSrcFreq, uint8_t *ringBuffer)
+{
+    assert(NULL != io);
+
+    /* record device type/base */
+    s_debugConsoleIO.ioType = io->ioType;
+    s_debugConsoleIO.ioBase = (void *)(io->ioBase);
+
+    switch (s_debugConsoleIO.ioType)
+    {
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_UART:
+        case DEBUG_CONSOLE_DEVICE_TYPE_IUART:
+        {
+            uart_config_t uart_config;
+            UART_GetDefaultConfig(&uart_config);
+            uart_config.baudRate_Bps = baudRate;
+            /* Enable clock and initial UART module follow user configure structure. */
+            UART_Init((UART_Type *)s_debugConsoleIO.ioBase, &uart_config, clkSrcFreq);
+            UART_EnableTx(s_debugConsoleIO.ioBase, true);
+            UART_EnableRx(s_debugConsoleIO.ioBase, true);
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            s_debugConsoleIO.callBack = io->callBack;
+            /* create handler for interrupt transfer */
+            UART_TransferCreateHandle(s_debugConsoleIO.ioBase, &s_ioUartHandler, UART_Callback, NULL);
+            /* start ring buffer */
+            UART_TransferStartRingBuffer(s_debugConsoleIO.ioBase, &s_ioUartHandler, ringBuffer,
+                                         DEBUG_CONSOLE_RECEIVE_BUFFER_LEN);
+#endif
+        }
+        break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPUART:
+        {
+            lpuart_config_t lpuart_config;
+            LPUART_GetDefaultConfig(&lpuart_config);
+            lpuart_config.baudRate_Bps = baudRate;
+            /* Enable clock and initial UART module follow user configure structure. */
+            LPUART_Init((LPUART_Type *)s_debugConsoleIO.ioBase, &lpuart_config, clkSrcFreq);
+            LPUART_EnableTx(s_debugConsoleIO.ioBase, true);
+            LPUART_EnableRx(s_debugConsoleIO.ioBase, true);
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            s_debugConsoleIO.callBack = io->callBack;
+            /* create handler for interrupt transfer */
+            LPUART_TransferCreateHandle(s_debugConsoleIO.ioBase, &s_ioLpuartHandler, LPUART_Callback, NULL);
+            /* start ring buffer */
+            LPUART_TransferStartRingBuffer(s_debugConsoleIO.ioBase, &s_ioLpuartHandler, ringBuffer,
+                                           DEBUG_CONSOLE_RECEIVE_BUFFER_LEN);
+#endif
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_LPSCI
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPSCI:
+        {
+            lpsci_config_t lpsci_config;
+            LPSCI_GetDefaultConfig(&lpsci_config);
+            lpsci_config.baudRate_Bps = baudRate;
+            /* Enable clock and initial UART module follow user configure structure. */
+            LPSCI_Init((UART0_Type *)s_debugConsoleIO.ioBase, &lpsci_config, clkSrcFreq);
+            LPSCI_EnableTx(s_debugConsoleIO.ioBase, true);
+            LPSCI_EnableRx(s_debugConsoleIO.ioBase, true);
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            s_debugConsoleIO.callBack = io->callBack;
+            /* create handler for interrupt transfer */
+            LPSCI_TransferCreateHandle(s_debugConsoleIO.ioBase, &s_ioLpsciHandler, LPSCI_Callback, NULL);
+            /* start ring buffer */
+            LPSCI_TransferStartRingBuffer(s_debugConsoleIO.ioBase, &s_ioLpsciHandler, ringBuffer,
+                                          DEBUG_CONSOLE_RECEIVE_BUFFER_LEN);
+#endif
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_USBCDC
+        case DEBUG_CONSOLE_DEVICE_TYPE_USBCDC:
+        {
+            s_debugConsoleIO.ioBase = USB_VcomInit();
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_FLEXCOMM
+        case DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM:
+        {
+            usart_config_t usart_config;
+            USART_GetDefaultConfig(&usart_config);
+            usart_config.baudRate_Bps = baudRate;
+            /* Enable clock and initial UART module follow user configure structure. */
+            USART_Init((USART_Type *)s_debugConsoleIO.ioBase, &usart_config, clkSrcFreq);
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            s_debugConsoleIO.callBack = io->callBack;
+            /* create handler for interrupt transfer */
+            USART_TransferCreateHandle(s_debugConsoleIO.ioBase, &s_ioUsartHandler, USART_Callback, NULL);
+            /* start ring buffer */
+            USART_TransferStartRingBuffer(s_debugConsoleIO.ioBase, &s_ioUsartHandler, ringBuffer,
+                                          DEBUG_CONSOLE_RECEIVE_BUFFER_LEN);
+#endif
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_VUSART
+        case DEBUG_CONSOLE_DEVICE_TYPE_VUSART:
+        {
+            usart_config_t usart_config;
+            USART_GetDefaultConfig(&usart_config);
+            usart_config.baudRate_Bps = baudRate;
+            usart_config.enableRx = true;
+            usart_config.enableTx = true;
+            /* Enable clock and initial UART module follow user configure structure. */
+            USART_Init((USART_Type *)s_debugConsoleIO.ioBase, &usart_config, clkSrcFreq);
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            s_debugConsoleIO.callBack = io->callBack;
+            /* create handler for interrupt transfer */
+            USART_TransferCreateHandle(s_debugConsoleIO.ioBase, &s_ioUsartHandler, USART_Callback, NULL);
+            /* start ring buffer */
+            USART_TransferStartRingBuffer(s_debugConsoleIO.ioBase, &s_ioUsartHandler, ringBuffer,
+                                          DEBUG_CONSOLE_RECEIVE_BUFFER_LEN);
+#endif
+        }
+        break;
+#endif
+    }
+}
+
+status_t IO_Deinit(void)
+{
+    if (s_debugConsoleIO.ioType == DEBUG_CONSOLE_DEVICE_TYPE_NONE)
+    {
+        return kStatus_Success;
+    }
+
+    switch (s_debugConsoleIO.ioType)
+    {
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_UART:
+        case DEBUG_CONSOLE_DEVICE_TYPE_IUART:
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            /* stop ring buffer */
+            UART_TransferStopRingBuffer(s_debugConsoleIO.ioBase, &s_ioUartHandler);
+#endif
+            /* Disable UART module. */
+            UART_Deinit((UART_Type *)s_debugConsoleIO.ioBase);
+
+            break;
+#endif
+#if defined DEBUG_CONSOLE_IO_LPSCI
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPSCI:
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            /* stop ring buffer */
+            LPSCI_TransferStopRingBuffer(s_debugConsoleIO.ioBase, &s_ioLpsciHandler);
+#endif
+            /* Disable LPSCI module. */
+            LPSCI_Deinit((UART0_Type *)s_debugConsoleIO.ioBase);
+
+            break;
+#endif
+#if defined DEBUG_CONSOLE_IO_LPUART
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPUART:
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            /* stop ring buffer */
+            LPUART_TransferStopRingBuffer(s_debugConsoleIO.ioBase, &s_ioLpuartHandler);
+#endif
+            /* Disable LPUART module. */
+            LPUART_Deinit((LPUART_Type *)s_debugConsoleIO.ioBase);
+
+            break;
+#endif
+#if defined DEBUG_CONSOLE_IO_USBCDC
+        case DEBUG_CONSOLE_DEVICE_TYPE_USBCDC:
+            /* Disable USBCDC module. */
+            USB_VcomDeinit(s_debugConsoleIO.ioBase);
+            break;
+#endif
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM:
+        case DEBUG_CONSOLE_DEVICE_TYPE_VUSART:
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+            /* stop ring buffer */
+            USART_TransferStopRingBuffer(s_debugConsoleIO.ioBase, &s_ioUsartHandler);
+#endif
+            /* deinit IO */
+            USART_Deinit((USART_Type *)s_debugConsoleIO.ioBase);
+
+            break;
+#endif
+        default:
+            s_debugConsoleIO.ioType = DEBUG_CONSOLE_DEVICE_TYPE_NONE;
+            break;
+    }
+
+    s_debugConsoleIO.ioType = DEBUG_CONSOLE_DEVICE_TYPE_NONE;
+
+    return kStatus_Success;
+}
+
+status_t IO_WaitIdle(void)
+{
+    switch (s_debugConsoleIO.ioType)
+    {
+#if (defined DEBUG_CONSOLE_IO_UART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_UART:
+            /* wait transfer complete flag */
+            while (!(UART_GetStatusFlags(s_debugConsoleIO.ioBase) & kUART_TransmissionCompleteFlag))
+                ;
+            break;
+#endif
+
+#if (defined DEBUG_CONSOLE_IO_IUART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_IUART:
+            /* wait transfer complete flag */
+            while (!(UART_GetStatusFlag(s_debugConsoleIO.ioBase, kUART_TxCompleteFlag)))
+                ;
+            break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_LPSCI
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPSCI:
+            /* wait transfer complete flag */
+            while (!(LPSCI_GetStatusFlags(s_debugConsoleIO.ioBase) & kLPSCI_TransmissionCompleteFlag))
+                ;
+            break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPUART:
+            /* wait transfer complete flag */
+            while (!(LPUART_GetStatusFlags(s_debugConsoleIO.ioBase) & kLPUART_TransmissionCompleteFlag))
+                ;
+            break;
+#endif
+
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM:
+        case DEBUG_CONSOLE_DEVICE_TYPE_VUSART:
+            /* wait transfer complete flag */
+            while (!(USART_GetStatusFlags(s_debugConsoleIO.ioBase) & kUSART_TxFifoEmptyFlag))
+                ;
+            break;
+#endif
+        default:
+            break;
+    }
+
+    return kStatus_Success;
+}
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+
+status_t IO_Transfer(uint8_t *ch, size_t size, bool tx)
+{
+    status_t status = kStatus_Fail;
+
+    switch (s_debugConsoleIO.ioType)
+    {
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_UART:
+        case DEBUG_CONSOLE_DEVICE_TYPE_IUART:
+        {
+            uart_transfer_t transfer = {0U};
+            transfer.data = ch;
+            transfer.dataSize = size;
+            /* transfer data */
+            if (tx)
+            {
+                status = UART_TransferSendNonBlocking(s_debugConsoleIO.ioBase, &s_ioUartHandler, &transfer);
+            }
+            else
+            {
+                status = UART_TransferReceiveNonBlocking(s_debugConsoleIO.ioBase, &s_ioUartHandler, &transfer, NULL);
+            }
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_LPSCI
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPSCI:
+        {
+            lpsci_transfer_t transfer = {0U};
+            transfer.data = ch;
+            transfer.dataSize = size;
+            /* transfer data */
+            if (tx)
+            {
+                status = LPSCI_TransferSendNonBlocking(s_debugConsoleIO.ioBase, &s_ioLpsciHandler, &transfer);
+            }
+            else
+            {
+                status = LPSCI_TransferReceiveNonBlocking(s_debugConsoleIO.ioBase, &s_ioLpsciHandler, &transfer, NULL);
+            }
+        }
+        break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPUART:
+        {
+            lpuart_transfer_t transfer = {0U};
+            transfer.data = ch;
+            transfer.dataSize = size;
+            /* transfer data */
+            if (tx)
+            {
+                status = LPUART_TransferSendNonBlocking(s_debugConsoleIO.ioBase, &s_ioLpuartHandler, &transfer);
+            }
+            else
+            {
+                status =
+                    LPUART_TransferReceiveNonBlocking(s_debugConsoleIO.ioBase, &s_ioLpuartHandler, &transfer, NULL);
+            }
+        }
+        break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_USBCDC
+        case DEBUG_CONSOLE_DEVICE_TYPE_USBCDC:
+        {
+            if (tx)
+            {
+                USB_VcomWriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                USB_VcomReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM:
+        case DEBUG_CONSOLE_DEVICE_TYPE_VUSART:
+        {
+            usart_transfer_t transfer = {0U};
+            transfer.data = ch;
+            transfer.dataSize = size;
+            /* transfer data */
+            if (tx)
+            {
+                status = USART_TransferSendNonBlocking(s_debugConsoleIO.ioBase, &s_ioUsartHandler, &transfer);
+            }
+            else
+            {
+                status = USART_TransferReceiveNonBlocking(s_debugConsoleIO.ioBase, &s_ioUsartHandler, &transfer, NULL);
+            }
+        }
+        break;
+#endif
+        default:
+            break;
+    }
+
+    return status;
+}
+
+#else
+
+status_t IO_Transfer(uint8_t *ch, size_t size, bool tx)
+{
+    status_t status = kStatus_Success;
+    switch (s_debugConsoleIO.ioType)
+    {
+#if (defined DEBUG_CONSOLE_IO_UART) || (defined DEBUG_CONSOLE_IO_IUART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_UART:
+        case DEBUG_CONSOLE_DEVICE_TYPE_IUART:
+        {
+            if (tx)
+            {
+                UART_WriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                status = UART_ReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+#if defined DEBUG_CONSOLE_IO_LPSCI
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPSCI:
+        {
+            if (tx)
+            {
+                LPSCI_WriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                status = LPSCI_ReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_LPUART
+        case DEBUG_CONSOLE_DEVICE_TYPE_LPUART:
+        {
+            if (tx)
+            {
+                LPUART_WriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                status = LPUART_ReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+
+#if defined DEBUG_CONSOLE_IO_USBCDC
+        case DEBUG_CONSOLE_DEVICE_TYPE_USBCDC:
+        {
+            if (tx)
+            {
+                USB_VcomWriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                status = USB_VcomReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+
+#if (defined DEBUG_CONSOLE_IO_FLEXCOMM) || (defined DEBUG_CONSOLE_IO_VUSART)
+        case DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM:
+        case DEBUG_CONSOLE_DEVICE_TYPE_VUSART:
+        {
+            if (tx)
+            {
+                USART_WriteBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+            else
+            {
+                status = USART_ReadBlocking(s_debugConsoleIO.ioBase, ch, size);
+            }
+        }
+        break;
+#endif
+        default:
+            status = kStatus_Fail;
+            break;
+    }
+
+    return status;
+}
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.h
new file mode 100644 (file)
index 0000000..01367a8
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _FSL_IO_H
+#define _FSL_IO_H
+
+#include "fsl_common.h"
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+/*! @brief define a notify callback for IO
+* @param size , transfer data size.
+* @param rx, indicate a rx transfer is success.
+* @param tx, indicate a tx transfer is success.
+*/
+typedef void (*notify)(size_t *size, bool rx, bool tx);
+
+/*! @brief State structure storing io. */
+typedef struct io_State
+{
+    void *ioBase;   /*!< Base of the IP register. */
+    uint8_t ioType; /*!< device type */
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    notify callBack; /*!< define the callback function for buffer */
+#endif
+
+} io_state_t;
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*!
+ * @brief io init function.
+ *
+ * Call this function to init IO.
+ *
+ * @param io configuration pointer
+ * @param baudRate baud rate
+ * @param clkSrcFreq clock freq
+ * @param ringbuffer used to receive character
+ */
+void IO_Init(io_state_t *io, uint32_t baudRate, uint32_t clkSrcFreq, uint8_t *ringBuffer);
+
+/*!
+ * @brief Deinit IO.
+ *
+ * Call this function to Deinit IO.
+ *
+ * @return deinit status
+ */
+status_t IO_Deinit(void);
+
+/*!
+ * @brief io transfer function.
+ *
+ * Call this function to transfer log.
+ * Print log:
+ * @code
+ * IO_Transfer(ch, size, true);
+ * @endcode
+ * Scanf log:
+ * @code
+ * IO_Transfer(ch, size, false);
+ * @endcode
+ *
+ * @param   ch  transfer buffer pointer
+ * @param      size transfer size
+ * @param   tx indicate the transfer is TX or RX
+ */
+status_t IO_Transfer(uint8_t *ch, size_t size, bool tx);
+
+/*!
+ * @brief io wait idle.
+ *
+ * Call this function to wait the io idle
+ *
+ * @return Indicates whether wait idle was successful or not.
+ */
+status_t IO_WaitIdle(void);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* _FSL_IO_H */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.c
new file mode 100644 (file)
index 0000000..4dd3caa
--- /dev/null
@@ -0,0 +1,547 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#include "fsl_log.h"
+#include "fsl_debug_console_conf.h"
+#include "fsl_io.h"
+#ifdef FSL_RTOS_FREE_RTOS
+#include "FreeRTOS.h"
+#include "task.h"
+#include "semphr.h"
+#endif
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+#ifndef BACKSPACE
+/*! @brief character backspace ASCII value */
+#define BACKSPACE 127
+#endif
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+/*! @brief increase pop member */
+#define LOG_CHECK_BUFFER_INDEX_OVERFLOW(index)          \
+    {                                                   \
+        if (index >= DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN) \
+        {                                               \
+            index -= DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN; \
+        }                                               \
+    \
+\
+}
+
+/*! @brief get current runing environment is ISR or not */
+#ifdef __CA7_REV
+#define IS_RUNNING_IN_ISR() SystemGetIRQNestingLevel()
+#else
+#define IS_RUNNING_IN_ISR() __get_IPSR()
+#endif /* __CA7_REV */
+
+#else
+#define IS_RUNNING_IN_ISR() (0U)
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/* define for rtos */
+#if (DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_FREERTOS)
+/* metex semaphore */
+#define LOG_CREATE_MUTEX_SEMAPHORE(mutex) (mutex = xSemaphoreCreateMutex())
+
+#define LOG_GIVE_MUTEX_SEMAPHORE(mutex) \
+    \
+{                                \
+        if (IS_RUNNING_IN_ISR() == 0U)  \
+        {                               \
+            xSemaphoreGive(mutex);      \
+        }                               \
+    \
+}
+
+#define LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(mutex)  \
+    \
+{                                          \
+        if (IS_RUNNING_IN_ISR() == 0U)            \
+        {                                         \
+            xSemaphoreTake(mutex, portMAX_DELAY); \
+        }                                         \
+    \
+}
+
+#define LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING(mutex, result) \
+    \
+{                                                    \
+        if (IS_RUNNING_IN_ISR() == 0U)                      \
+        {                                                   \
+            result = xSemaphoreTake(mutex, 0U);             \
+        }                                                   \
+        else                                                \
+        {                                                   \
+            result = 1U;                                    \
+        }                                                   \
+    \
+}
+
+/* Binary semaphore */
+#define LOG_CREATE_BINARY_SEMAPHORE(binary) (binary = xSemaphoreCreateBinary())
+#define LOG_TAKE_BINARY_SEMAPHORE_BLOCKING(binary) (xSemaphoreTake(binary, portMAX_DELAY))
+#define LOG_GIVE_BINARY_SEMAPHORE_FROM_ISR(binary) (xSemaphoreGiveFromISR(binary, NULL))
+
+#elif(DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_BM)
+
+#define LOG_CREATE_MUTEX_SEMAPHORE(mutex)
+#define LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(mutex)
+#define LOG_GIVE_MUTEX_SEMAPHORE(mutex)
+#define LOG_CREATE_BINARY_SEMAPHORE(binary)
+#define LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING(mutex, result) (result = 1U)
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+#define LOG_TAKE_BINARY_SEMAPHORE_BLOCKING(binary) \
+    \
+{                                           \
+        while (!binary)                            \
+            ;                                      \
+        binary = false;                            \
+    \
+\
+}
+#define LOG_GIVE_BINARY_SEMAPHORE_FROM_ISR(binary) (binary = true)
+#else
+#define LOG_TAKE_BINARY_SEMAPHORE_BLOCKING(binary)
+#define LOG_GIVE_BINARY_SEMAPHORE_FROM_ISR(binary)
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/* add other implementation here
+*such as :
+* #elif(DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_xxx)
+*/
+
+#else
+
+#define LOG_CREATE_MUTEX_SEMAPHORE(mutex)
+#define LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(mutex)
+#define LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING(mutex, result) (result = 1U)
+#define LOG_GIVE_MUTEX_SEMAPHORE(mutex)
+#define LOG_CREATE_BINARY_SEMAPHORE(binary)
+#define LOG_TAKE_BINARY_SEMAPHORE_BLOCKING(binary)
+#define LOG_GIVE_BINARY_SEMAPHORE(binary)
+#endif /* DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_FREERTOS */
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+/*! @brief Define the buffer
+* The total buffer size should be calucate as (BUFFER_SUPPORT_LOG_LENGTH + 1) * BUFFER_SUPPORT_LOG_NUM * 4
+*/
+typedef struct _log_buffer
+{
+    volatile uint16_t totalIndex;                     /*!< indicate the total usage of the buffer */
+    volatile uint16_t pushIndex;                      /*!< indicate the next push index */
+    volatile uint16_t popIndex;                       /*!< indicate the pop index */
+    uint8_t txBuf[DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN]; /*!< buffer to store printf log */
+
+    uint8_t rxBuf[DEBUG_CONSOLE_RECEIVE_BUFFER_LEN]; /*!< buffer to store scanf log */
+} log_buffer_t;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/*******************************************************************************
+ * Variables
+ ******************************************************************************/
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+/* A global log buffer */
+static log_buffer_t s_log_buffer;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/* lock definition */
+#if (DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_FREERTOS)
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static SemaphoreHandle_t s_logPushSemaphore = NULL;
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+static SemaphoreHandle_t s_logPopSemaphore = NULL;
+static SemaphoreHandle_t s_logReadSemaphore = NULL;
+
+#elif(DEBUG_CONSOLE_SYNCHRONIZATION_MODE == DEBUG_CONSOLE_SYNCHRONIZATION_BM)
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+
+static volatile bool s_logReadSemaphore = false; /* transferred event from ISR for bare-metal + interrupt */
+
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+#else
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/*******************************************************************************
+* Prototypes
+******************************************************************************/
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+/*!
+ * @brief callback function for IO layer to notify LOG
+ *
+ * @param size last transfer data size
+ * @param receive indicate a RX transfer
+ * @param transmit indicate a TX transfer
+ *
+ */
+static void LOG_Transferred(size_t *size, bool receive, bool transmit);
+
+/*!
+ * @brief log push function
+ *
+ * @param buf target buffer
+ * @param size log size
+ *
+ */
+static int LOG_BufPush(uint8_t *buf, size_t size);
+
+/*!
+ * @brief Get next avaliable log
+ *
+ * @param next avaliable size
+ * @return next avaliable address
+ */
+static uint8_t *LOG_BufGetNextAvaliableLog(size_t *size);
+
+/*!
+ * @brief buf pop
+ *
+ * @param size log size popped and next available log size
+ * @return next avaliable address
+ */
+static uint8_t *LOG_BufPop(size_t *size);
+
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+/*!
+ * @brief read one character
+ *
+ * @param ch character address
+ * @return indicate the read status
+ *
+ */
+static status_t LOG_ReadOneCharacter(uint8_t *ch);
+
+#if DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION
+/*!
+ * @brief echo one character
+ *
+ * @param ch character address
+ * @param isGetchar flag to distinguish getchar from scanf
+ * @param index special for scanf to support backspace
+ * @return indicate the read status
+ *
+ */
+static status_t LOG_EchoCharacter(uint8_t *ch, bool isGetChar, int *index);
+#endif
+
+/*******************************************************************************
+ * Code
+ ******************************************************************************/
+status_t LOG_Init(uint32_t baseAddr, uint8_t device, uint32_t baudRate, uint32_t clkSrcFreq)
+{
+    io_state_t io;
+    /* init io */
+    io.ioBase = (void *)baseAddr;
+    io.ioType = device;
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    /* memset the global queue */
+    memset(&s_log_buffer, 0U, sizeof(s_log_buffer));
+    /* init callback for NON-BLOCKING */
+    io.callBack = LOG_Transferred;
+    /* io init function */
+    IO_Init(&io, baudRate, clkSrcFreq, s_log_buffer.rxBuf);
+    /* Debug console buffer push lock create */
+    LOG_CREATE_MUTEX_SEMAPHORE(s_logPushSemaphore);
+#else
+    IO_Init(&io, baudRate, clkSrcFreq, NULL);
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+
+    /* Debug console lock create */
+    LOG_CREATE_MUTEX_SEMAPHORE(s_logPopSemaphore);
+    LOG_CREATE_BINARY_SEMAPHORE(s_logReadSemaphore);
+
+    return kStatus_Success;
+}
+
+void LOG_Deinit(void)
+{
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    /* memset the global queue */
+    memset(&s_log_buffer, 0U, sizeof(s_log_buffer));
+#endif /*DEBUG_CONSOLE_TRANSFER_NON_BLOCKING*/
+    /* Deinit IO */
+    IO_Deinit();
+}
+
+status_t LOG_WaitIdle(void)
+{
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    /* wait buffer empty */
+    while (!(s_log_buffer.totalIndex == 0U))
+        ;
+#endif /*DEBUG_CONSOLE_TRANSFER_NON_BLOCKING*/
+    /* wait IO idle */
+    IO_WaitIdle();
+
+    return kStatus_Success;
+}
+
+int LOG_Push(uint8_t *buf, size_t size)
+{
+    assert(buf != NULL);
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+    /* push to buffer */
+    LOG_BufPush(buf, size);
+    buf = LOG_BufGetNextAvaliableLog(&size);
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
+    /* pop log */
+    return LOG_Pop(buf, size);
+}
+
+int LOG_Pop(uint8_t *buf, size_t size)
+{
+    uint8_t getLock = 0U;
+
+    if ((0 != size) && (NULL != buf))
+    {
+        /* take POP lock, should be non-blocking */
+        LOG_TAKE_MUTEX_SEMAPHORE_NONBLOCKING(s_logPopSemaphore, getLock);
+
+        if (getLock)
+        {
+            /* call IO transfer function */
+            if (IO_Transfer(buf, size, true) != kStatus_Success)
+            {
+                size = 0U;
+            }
+            /* release POP lock */
+            LOG_GIVE_MUTEX_SEMAPHORE(s_logPopSemaphore);
+        }
+    }
+
+    return size;
+}
+
+int LOG_ReadLine(uint8_t *buf, size_t size)
+{
+    assert(buf != NULL);
+
+    int i = 0;
+
+    /* take mutex lock function */
+    LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(s_logPushSemaphore);
+
+    for (i = 0; i < size; i++)
+    {
+        /* recieve one char every time */
+        if (LOG_ReadOneCharacter(&buf[i]) != kStatus_Success)
+        {
+            return -1;
+        }
+#if DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION
+        LOG_EchoCharacter(&buf[i], false, &i);
+#endif
+        /* analysis data */
+        if ((buf[i] == '\r') || (buf[i] == '\n'))
+        {
+            /* End of Line. */
+            if (i == 0)
+            {
+                buf[i] = '\0';
+                i = -1;
+            }
+            else
+            {
+                break;
+            }
+        }
+    }
+    /* get char should not add '\0'*/
+    if (i == size)
+    {
+        buf[i] = '\0';
+    }
+    else
+    {
+        buf[i + 1] = '\0';
+    }
+
+    /* release mutex lock function */
+    LOG_GIVE_MUTEX_SEMAPHORE(s_logPushSemaphore);
+
+    return i;
+}
+
+int LOG_ReadCharacter(uint8_t *ch)
+{
+    assert(ch != NULL);
+    int ret = 0;
+
+    /* take mutex lock function */
+    LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(s_logPushSemaphore);
+    /* read one character */
+    if (LOG_ReadOneCharacter(ch) == kStatus_Success)
+    {
+        ret = 1;
+#if DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION
+        LOG_EchoCharacter(ch, true, NULL);
+#endif
+    }
+    else
+    {
+        ret = -1;
+    }
+    /* release mutex lock function */
+    LOG_GIVE_MUTEX_SEMAPHORE(s_logPushSemaphore);
+
+    return ret;
+}
+
+static status_t LOG_ReadOneCharacter(uint8_t *ch)
+{
+    /* recieve one char every time */
+    if (IO_Transfer(ch, 1U, false) != kStatus_Success)
+    {
+        return kStatus_Fail;
+    }
+
+    /* wait release from ISR */
+    LOG_TAKE_BINARY_SEMAPHORE_BLOCKING(s_logReadSemaphore);
+
+    return kStatus_Success;
+}
+
+#if DEBUG_CONSOLE_ENABLE_ECHO_FUNCTION
+static status_t LOG_EchoCharacter(uint8_t *ch, bool isGetChar, int *index)
+{
+    /* Due to scanf take \n and \r as end of string,should not echo */
+    if (((*ch != '\r') && (*ch != '\n')) || (isGetChar))
+    {
+        /* recieve one char every time */
+        if (IO_Transfer(ch, 1U, true) != kStatus_Success)
+        {
+            return kStatus_Fail;
+        }
+    }
+
+    if (!isGetChar)
+    {
+        if ((*index > 0) && (*ch == BACKSPACE))
+        {
+            *index -= 2;
+        }
+    }
+
+    return kStatus_Success;
+}
+#endif
+
+#ifdef DEBUG_CONSOLE_TRANSFER_NON_BLOCKING
+static int LOG_BufPush(uint8_t *buf, size_t size)
+{
+    uint32_t pushIndex = 0U, i = 0U;
+    bool pushAvaliable = false;
+
+    /* take mutex lock function */
+    LOG_TAKE_MUTEX_SEMAPHORE_BLOCKING(s_logPushSemaphore);
+    if (size <= (DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN - s_log_buffer.totalIndex))
+    {
+        /* get push index */
+        pushIndex = s_log_buffer.pushIndex;
+        s_log_buffer.pushIndex += size;
+        /* check index overflow */
+        LOG_CHECK_BUFFER_INDEX_OVERFLOW(s_log_buffer.pushIndex);
+        /* update push/total index value */
+        s_log_buffer.totalIndex += size;
+        pushAvaliable = true;
+    }
+    /* release mutex lock function */
+    LOG_GIVE_MUTEX_SEMAPHORE(s_logPushSemaphore);
+
+    /* check the buffer if have enough space to store the log */
+    if (pushAvaliable)
+    {
+        for (i = size; i > 0; i--)
+        {
+            /* copy log to buffer, the buffer only support a fixed length argument, if the log argument
+            is longer than the fixed length, the left argument will be losed */
+            s_log_buffer.txBuf[pushIndex] = *buf++;
+            /* increase index */
+            pushIndex++;
+            /* check index overflow */
+            LOG_CHECK_BUFFER_INDEX_OVERFLOW(pushIndex);
+        }
+    }
+    else
+    {
+        size = 0U;
+    }
+
+    return size;
+}
+
+static uint8_t *LOG_BufGetNextAvaliableLog(size_t *size)
+{
+    uint16_t popIndex = s_log_buffer.popIndex;
+
+    /* get avaliable size */
+    if (s_log_buffer.totalIndex > (DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN - popIndex))
+    {
+        *size = (DEBUG_CONSOLE_TRANSMIT_BUFFER_LEN - popIndex);
+    }
+    else
+    {
+        *size = s_log_buffer.totalIndex;
+    }
+
+    /* return address */
+    return (&(s_log_buffer.txBuf[popIndex]));
+}
+
+static uint8_t *LOG_BufPop(size_t *size)
+{
+    if (s_log_buffer.totalIndex >= *size)
+    {
+        /* decrease the log total member */
+        s_log_buffer.totalIndex -= *size;
+        /* there is more log in the queue to be pushed */
+        if (s_log_buffer.totalIndex > 0U)
+        {
+            /* update the pop index */
+            s_log_buffer.popIndex += *size;
+            /* check index overflow */
+            LOG_CHECK_BUFFER_INDEX_OVERFLOW(s_log_buffer.popIndex);
+
+            return LOG_BufGetNextAvaliableLog(size);
+        }
+        else
+        {
+            /* reset push and pop */
+            s_log_buffer.popIndex = 0U;
+            s_log_buffer.pushIndex = 0U;
+            *size = 0U;
+        }
+    }
+
+    return NULL;
+}
+
+static void LOG_Transferred(size_t *size, bool receive, bool transmit)
+{
+    uint8_t *addr = NULL;
+
+    if (transmit)
+    {
+        addr = LOG_BufPop(size);
+        /* continue pop log from buffer */
+        LOG_Pop(addr, *size);
+    }
+
+    if (receive)
+    {
+        /* release from ISR */
+        LOG_GIVE_BINARY_SEMAPHORE_FROM_ISR(s_logReadSemaphore);
+    }
+}
+#endif /* DEBUG_CONSOLE_TRANSFER_NON_BLOCKING */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.h
new file mode 100644 (file)
index 0000000..c49aa1c
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _FSL_LOG_H
+#define _FSL_LOG_H
+
+#include "fsl_common.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*************************************************************************************************
+ * Prototypes
+ ************************************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*!
+ * @brief Initializes
+ *
+ * Call this function to init the buffer
+ * @param baseAddr, device base address
+ * @param device, device type
+ * @param baudRate, device communicate baudrate
+ * @param clkSrcFreq, device source clock freq
+ *
+ * @return                     Indicates whether initialization was successful or not.
+ * @retval kStatus_Success  Execution successfully
+ * @retval kStatus_Fail     Execution failure
+ */
+status_t LOG_Init(uint32_t baseAddr, uint8_t device, uint32_t baudRate, uint32_t clkSrcFreq);
+
+/*!
+ * @brief De-Initializes
+ *
+ * Call this function to deinit the buffer
+ *
+ * @return Indicates whether Deinit was successful or not.
+ */
+void LOG_Deinit(void);
+
+/*!
+ * @brief log push interface
+ *
+ * Call this function to print log
+ * @param fmt, buffer pointer
+ * @param size, avaliable size
+ * @return indicate the push size
+ * @retval-1 indicate buffer is full or transfer fail.
+ * @retval size return the push log size.
+ */
+int LOG_Push(uint8_t *buf, size_t size);
+
+/*!
+ * @brief log read one line function
+ *
+ * Call this function to print log
+ * @param fmt, buffer pointer
+ * @param size, avaliable size
+ * @reutrn the number of the recieved character
+ */
+int LOG_ReadLine(uint8_t *buf, size_t size);
+
+/*!
+ * @brief log read one character function
+ *
+ * Call this function to GETCHAR
+ * @param ch receive address
+ * @reutrn the number of the recieved character
+ */
+int LOG_ReadCharacter(uint8_t *ch);
+
+/*!
+ * @brief wait log and io idle
+ *
+ * Call this function to wait log buffer empty and io idle before enter low power mode.
+ * @return Indicates whether wait idle was successful or not.
+ */
+status_t LOG_WaitIdle(void);
+
+/*!
+ * @brief log pop function
+ *
+ * Call this function to pop log from buffer.
+ * @param buf buffer address to pop
+ * @param size log size to pop
+ * @return pop log size.
+ */
+int LOG_Pop(uint8_t *buf, size_t size);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.c
new file mode 100644 (file)
index 0000000..a0e7dac
--- /dev/null
@@ -0,0 +1,1300 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+#include <math.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include "fsl_str.h"
+#include "fsl_debug_console_conf.h"
+
+/*******************************************************************************
+ * Definitions
+ ******************************************************************************/
+
+/*! @brief The overflow value.*/
+#ifndef HUGE_VAL
+#define HUGE_VAL (99.e99)
+#endif /* HUGE_VAL */
+
+#if SCANF_FLOAT_ENABLE
+static double fnum = 0.0;
+#endif /* SCANF_FLOAT_ENABLE */
+
+#if PRINTF_ADVANCED_ENABLE
+/*! @brief Specification modifier flags for printf. */
+enum _debugconsole_printf_flag
+{
+    kPRINTF_Minus = 0x01U,              /*!< Minus FLag. */
+    kPRINTF_Plus = 0x02U,               /*!< Plus Flag. */
+    kPRINTF_Space = 0x04U,              /*!< Space Flag. */
+    kPRINTF_Zero = 0x08U,               /*!< Zero Flag. */
+    kPRINTF_Pound = 0x10U,              /*!< Pound Flag. */
+    kPRINTF_LengthChar = 0x20U,         /*!< Length: Char Flag. */
+    kPRINTF_LengthShortInt = 0x40U,     /*!< Length: Short Int Flag. */
+    kPRINTF_LengthLongInt = 0x80U,      /*!< Length: Long Int Flag. */
+    kPRINTF_LengthLongLongInt = 0x100U, /*!< Length: Long Long Int Flag. */
+};
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+/*! @brief Specification modifier flags for scanf. */
+enum _debugconsole_scanf_flag
+{
+    kSCANF_Suppress = 0x2U,      /*!< Suppress Flag. */
+    kSCANF_DestMask = 0x7cU,     /*!< Destination Mask. */
+    kSCANF_DestChar = 0x4U,      /*!< Destination Char Flag. */
+    kSCANF_DestString = 0x8U,    /*!< Destination String FLag. */
+    kSCANF_DestSet = 0x10U,      /*!< Destination Set Flag. */
+    kSCANF_DestInt = 0x20U,      /*!< Destination Int Flag. */
+    kSCANF_DestFloat = 0x30U,    /*!< Destination Float Flag. */
+    kSCANF_LengthMask = 0x1f00U, /*!< Length Mask Flag. */
+#if SCANF_ADVANCED_ENABLE
+    kSCANF_LengthChar = 0x100U,        /*!< Length Char Flag. */
+    kSCANF_LengthShortInt = 0x200U,    /*!< Length ShortInt Flag. */
+    kSCANF_LengthLongInt = 0x400U,     /*!< Length LongInt Flag. */
+    kSCANF_LengthLongLongInt = 0x800U, /*!< Length LongLongInt Flag. */
+#endif                                 /* SCANF_ADVANCED_ENABLE */
+#if PRINTF_FLOAT_ENABLE
+    kSCANF_LengthLongLongDouble = 0x1000U, /*!< Length LongLongDuoble Flag. */
+#endif                                     /*PRINTF_FLOAT_ENABLE */
+    kSCANF_TypeSinged = 0x2000U,           /*!< TypeSinged Flag. */
+};
+
+/*! @brief Keil: suppress ellipsis warning in va_arg usage below. */
+#if defined(__CC_ARM)
+#pragma diag_suppress 1256
+#endif /* __CC_ARM */
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+/*!
+ * @brief Scanline function which ignores white spaces.
+ *
+ * @param[in]   s The address of the string pointer to update.
+ * @return      String without white spaces.
+ */
+static uint32_t ScanIgnoreWhiteSpace(const char **s);
+
+/*!
+ * @brief Converts a radix number to a string and return its length.
+ *
+ * @param[in] numstr    Converted string of the number.
+ * @param[in] nump      Pointer to the number.
+ * @param[in] neg       Polarity of the number.
+ * @param[in] radix     The radix to be converted to.
+ * @param[in] use_caps  Used to identify %x/X output format.
+
+ * @return Length of the converted string.
+ */
+static int32_t ConvertRadixNumToString(char *numstr, void *nump, int32_t neg, int32_t radix, bool use_caps);
+
+#if PRINTF_FLOAT_ENABLE
+/*!
+ * @brief Converts a floating radix number to a string and return its length.
+ *
+ * @param[in] numstr            Converted string of the number.
+ * @param[in] nump              Pointer to the number.
+ * @param[in] radix             The radix to be converted to.
+ * @param[in] precision_width   Specify the precision width.
+
+ * @return Length of the converted string.
+ */
+static int32_t ConvertFloatRadixNumToString(char *numstr, void *nump, int32_t radix, uint32_t precision_width);
+#endif /* PRINTF_FLOAT_ENABLE */
+
+/*!
+*
+ */
+double modf(double input_dbl, double *intpart_ptr);
+
+/*************Code for process formatted data*******************************/
+
+static uint32_t ScanIgnoreWhiteSpace(const char **s)
+{
+    uint8_t count = 0;
+    uint8_t c;
+
+    c = **s;
+    while ((c == ' ') || (c == '\t') || (c == '\n') || (c == '\r') || (c == '\v') || (c == '\f'))
+    {
+        count++;
+        (*s)++;
+        c = **s;
+    }
+    return count;
+}
+
+static int32_t ConvertRadixNumToString(char *numstr, void *nump, int32_t neg, int32_t radix, bool use_caps)
+{
+#if PRINTF_ADVANCED_ENABLE
+    int64_t a;
+    int64_t b;
+    int64_t c;
+
+    uint64_t ua;
+    uint64_t ub;
+    uint64_t uc;
+#else
+    int32_t a;
+    int32_t b;
+    int32_t c;
+
+    uint32_t ua;
+    uint32_t ub;
+    uint32_t uc;
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+    int32_t nlen;
+    char *nstrp;
+
+    nlen = 0;
+    nstrp = numstr;
+    *nstrp++ = '\0';
+
+    if (neg)
+    {
+#if PRINTF_ADVANCED_ENABLE
+        a = *(int64_t *)nump;
+#else
+        a = *(int32_t *)nump;
+#endif /* PRINTF_ADVANCED_ENABLE */
+        if (a == 0)
+        {
+            *nstrp = '0';
+            ++nlen;
+            return nlen;
+        }
+        while (a != 0)
+        {
+#if PRINTF_ADVANCED_ENABLE
+            b = (int64_t)a / (int64_t)radix;
+            c = (int64_t)a - ((int64_t)b * (int64_t)radix);
+            if (c < 0)
+            {
+                uc = (uint64_t)c;
+                c = (int64_t)(~uc) + 1 + '0';
+            }
+#else
+            b = a / radix;
+            c = a - (b * radix);
+            if (c < 0)
+            {
+                uc = (uint32_t)c;
+                c = (uint32_t)(~uc) + 1 + '0';
+            }
+#endif /* PRINTF_ADVANCED_ENABLE */
+            else
+            {
+                c = c + '0';
+            }
+            a = b;
+            *nstrp++ = (char)c;
+            ++nlen;
+        }
+    }
+    else
+    {
+#if PRINTF_ADVANCED_ENABLE
+        ua = *(uint64_t *)nump;
+#else
+        ua = *(uint32_t *)nump;
+#endif /* PRINTF_ADVANCED_ENABLE */
+        if (ua == 0)
+        {
+            *nstrp = '0';
+            ++nlen;
+            return nlen;
+        }
+        while (ua != 0)
+        {
+#if PRINTF_ADVANCED_ENABLE
+            ub = (uint64_t)ua / (uint64_t)radix;
+            uc = (uint64_t)ua - ((uint64_t)ub * (uint64_t)radix);
+#else
+            ub = ua / (uint32_t)radix;
+            uc = ua - (ub * (uint32_t)radix);
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+            if (uc < 10)
+            {
+                uc = uc + '0';
+            }
+            else
+            {
+                uc = uc - 10 + (use_caps ? 'A' : 'a');
+            }
+            ua = ub;
+            *nstrp++ = (char)uc;
+            ++nlen;
+        }
+    }
+    return nlen;
+}
+
+#if PRINTF_FLOAT_ENABLE
+static int32_t ConvertFloatRadixNumToString(char *numstr, void *nump, int32_t radix, uint32_t precision_width)
+{
+    int32_t a;
+    int32_t b;
+    int32_t c;
+    int32_t i;
+    uint32_t uc;
+    double fa;
+    double dc;
+    double fb;
+    double r;
+    double fractpart;
+    double intpart;
+
+    int32_t nlen;
+    char *nstrp;
+    nlen = 0;
+    nstrp = numstr;
+    *nstrp++ = '\0';
+    r = *(double *)nump;
+    if (!r)
+    {
+        *nstrp = '0';
+        ++nlen;
+        return nlen;
+    }
+    fractpart = modf((double)r, (double *)&intpart);
+    /* Process fractional part. */
+    for (i = 0; i < precision_width; i++)
+    {
+        fractpart *= radix;
+    }
+    if (r >= 0)
+    {
+        fa = fractpart + (double)0.5;
+        if (fa >= pow(10, precision_width))
+        {
+            intpart++;
+        }
+    }
+    else
+    {
+        fa = fractpart - (double)0.5;
+        if (fa <= -pow(10, precision_width))
+        {
+            intpart--;
+        }
+    }
+    for (i = 0; i < precision_width; i++)
+    {
+        fb = fa / (int32_t)radix;
+        dc = (fa - (int64_t)fb * (int32_t)radix);
+        c = (int32_t)dc;
+        if (c < 0)
+        {
+            uc = (uint32_t)c;
+            c = (int32_t)(~uc) + 1 + '0';
+        }
+        else
+        {
+            c = c + '0';
+        }
+        fa = fb;
+        *nstrp++ = (char)c;
+        ++nlen;
+    }
+    *nstrp++ = (char)'.';
+    ++nlen;
+    a = (int32_t)intpart;
+    if (a == 0)
+    {
+        *nstrp++ = '0';
+        ++nlen;
+    }
+    else
+    {
+        while (a != 0)
+        {
+            b = (int32_t)a / (int32_t)radix;
+            c = (int32_t)a - ((int32_t)b * (int32_t)radix);
+            if (c < 0)
+            {
+                uc = (uint32_t)c;
+                c = (int32_t)(~uc) + 1 + '0';
+            }
+            else
+            {
+                c = c + '0';
+            }
+            a = b;
+            *nstrp++ = (char)c;
+            ++nlen;
+        }
+    }
+    return nlen;
+}
+#endif /* PRINTF_FLOAT_ENABLE */
+
+int StrFormatPrintf(const char *fmt, va_list ap, char *buf, printfCb cb)
+{
+    /* va_list ap; */
+    char *p;
+    int32_t c;
+
+    char vstr[33];
+    char *vstrp = NULL;
+    int32_t vlen = 0;
+
+    int32_t done;
+    int32_t count = 0;
+
+    uint32_t field_width;
+    uint32_t precision_width;
+    char *sval;
+    int32_t cval;
+    bool use_caps;
+    uint8_t radix = 0;
+
+#if PRINTF_ADVANCED_ENABLE
+    uint32_t flags_used;
+    int32_t schar, dschar;
+    int64_t ival;
+    uint64_t uval = 0;
+    bool valid_precision_width;
+#else
+    int32_t ival;
+    uint32_t uval = 0;
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+#if PRINTF_FLOAT_ENABLE
+    double fval;
+#endif /* PRINTF_FLOAT_ENABLE */
+
+    /* Start parsing apart the format string and display appropriate formats and data. */
+    for (p = (char *)fmt; (c = *p) != 0; p++)
+    {
+        /*
+         * All formats begin with a '%' marker.  Special chars like
+         * '\n' or '\t' are normally converted to the appropriate
+         * character by the __compiler__.  Thus, no need for this
+         * routine to account for the '\' character.
+         */
+        if (c != '%')
+        {
+            cb(buf, &count, c, 1);
+            /* By using 'continue', the next iteration of the loop is used, skipping the code that follows. */
+            continue;
+        }
+
+        use_caps = true;
+
+#if PRINTF_ADVANCED_ENABLE
+        /* First check for specification modifier flags. */
+        flags_used = 0;
+        done = false;
+        while (!done)
+        {
+            switch (*++p)
+            {
+                case '-':
+                    flags_used |= kPRINTF_Minus;
+                    break;
+                case '+':
+                    flags_used |= kPRINTF_Plus;
+                    break;
+                case ' ':
+                    flags_used |= kPRINTF_Space;
+                    break;
+                case '0':
+                    flags_used |= kPRINTF_Zero;
+                    break;
+                case '#':
+                    flags_used |= kPRINTF_Pound;
+                    break;
+                default:
+                    /* We've gone one char too far. */
+                    --p;
+                    done = true;
+                    break;
+            }
+        }
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+        /* Next check for minimum field width. */
+        field_width = 0;
+        done = false;
+        while (!done)
+        {
+            c = *++p;
+            if ((c >= '0') && (c <= '9'))
+            {
+                field_width = (field_width * 10) + (c - '0');
+            }
+#if PRINTF_ADVANCED_ENABLE
+            else if (c == '*')
+            {
+                field_width = (uint32_t)va_arg(ap, uint32_t);
+            }
+#endif /* PRINTF_ADVANCED_ENABLE */
+            else
+            {
+                /* We've gone one char too far. */
+                --p;
+                done = true;
+            }
+        }
+        /* Next check for the width and precision field separator. */
+        precision_width = 6;
+#if PRINTF_ADVANCED_ENABLE
+        valid_precision_width = false;
+#endif /* PRINTF_ADVANCED_ENABLE */
+        if (*++p == '.')
+        {
+            /* Must get precision field width, if present. */
+            precision_width = 0;
+            done = false;
+            while (!done)
+            {
+                c = *++p;
+                if ((c >= '0') && (c <= '9'))
+                {
+                    precision_width = (precision_width * 10) + (c - '0');
+#if PRINTF_ADVANCED_ENABLE
+                    valid_precision_width = true;
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+#if PRINTF_ADVANCED_ENABLE
+                else if (c == '*')
+                {
+                    precision_width = (uint32_t)va_arg(ap, uint32_t);
+                    valid_precision_width = true;
+                }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                else
+                {
+                    /* We've gone one char too far. */
+                    --p;
+                    done = true;
+                }
+            }
+        }
+        else
+        {
+            /* We've gone one char too far. */
+            --p;
+        }
+#if PRINTF_ADVANCED_ENABLE
+        /*
+         * Check for the length modifier.
+         */
+        switch (/* c = */ *++p)
+        {
+            case 'h':
+                if (*++p != 'h')
+                {
+                    flags_used |= kPRINTF_LengthShortInt;
+                    --p;
+                }
+                else
+                {
+                    flags_used |= kPRINTF_LengthChar;
+                }
+                break;
+            case 'l':
+                if (*++p != 'l')
+                {
+                    flags_used |= kPRINTF_LengthLongInt;
+                    --p;
+                }
+                else
+                {
+                    flags_used |= kPRINTF_LengthLongLongInt;
+                }
+                break;
+            default:
+                /* we've gone one char too far */
+                --p;
+                break;
+        }
+#endif /* PRINTF_ADVANCED_ENABLE */
+        /* Now we're ready to examine the format. */
+        c = *++p;
+        {
+            if ((c == 'd') || (c == 'i') || (c == 'f') || (c == 'F') || (c == 'x') || (c == 'X') || (c == 'o') ||
+                (c == 'b') || (c == 'p') || (c == 'u'))
+            {
+                if ((c == 'd') || (c == 'i'))
+                {
+#if PRINTF_ADVANCED_ENABLE
+                    if (flags_used & kPRINTF_LengthLongLongInt)
+                    {
+                        ival = (int64_t)va_arg(ap, int64_t);
+                    }
+                    else
+#endif /* PRINTF_ADVANCED_ENABLE */
+                    {
+                        ival = (int32_t)va_arg(ap, int32_t);
+                    }
+                    vlen = ConvertRadixNumToString(vstr, &ival, true, 10, use_caps);
+                    vstrp = &vstr[vlen];
+#if PRINTF_ADVANCED_ENABLE
+                    if (ival < 0)
+                    {
+                        schar = '-';
+                        ++vlen;
+                    }
+                    else
+                    {
+                        if (flags_used & kPRINTF_Plus)
+                        {
+                            schar = '+';
+                            ++vlen;
+                        }
+                        else
+                        {
+                            if (flags_used & kPRINTF_Space)
+                            {
+                                schar = ' ';
+                                ++vlen;
+                            }
+                            else
+                            {
+                                schar = 0;
+                            }
+                        }
+                    }
+                    dschar = false;
+                    /* Do the ZERO pad. */
+                    if (flags_used & kPRINTF_Zero)
+                    {
+                        if (schar)
+                        {
+                            cb(buf, &count, schar, 1);
+                        }
+                        dschar = true;
+
+                        cb(buf, &count, '0', field_width - vlen);
+                        vlen = field_width;
+                    }
+                    else
+                    {
+                        if (!(flags_used & kPRINTF_Minus))
+                        {
+                            cb(buf, &count, ' ', field_width - vlen);
+                            if (schar)
+                            {
+                                cb(buf, &count, schar, 1);
+                            }
+                            dschar = true;
+                        }
+                    }
+                    /* The string was built in reverse order, now display in correct order. */
+                    if ((!dschar) && schar)
+                    {
+                        cb(buf, &count, schar, 1);
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+
+#if PRINTF_FLOAT_ENABLE
+                if ((c == 'f') || (c == 'F'))
+                {
+                    fval = (double)va_arg(ap, double);
+                    vlen = ConvertFloatRadixNumToString(vstr, &fval, 10, precision_width);
+                    vstrp = &vstr[vlen];
+
+#if PRINTF_ADVANCED_ENABLE
+                    if (fval < 0)
+                    {
+                        schar = '-';
+                        ++vlen;
+                    }
+                    else
+                    {
+                        if (flags_used & kPRINTF_Plus)
+                        {
+                            schar = '+';
+                            ++vlen;
+                        }
+                        else
+                        {
+                            if (flags_used & kPRINTF_Space)
+                            {
+                                schar = ' ';
+                                ++vlen;
+                            }
+                            else
+                            {
+                                schar = 0;
+                            }
+                        }
+                    }
+                    dschar = false;
+                    if (flags_used & kPRINTF_Zero)
+                    {
+                        if (schar)
+                        {
+                            cb(buf, &count, schar, 1);
+                        }
+                        dschar = true;
+                        cb(buf, &count, '0', field_width - vlen);
+                        vlen = field_width;
+                    }
+                    else
+                    {
+                        if (!(flags_used & kPRINTF_Minus))
+                        {
+                            cb(buf, &count, ' ', field_width - vlen);
+                            if (schar)
+                            {
+                                cb(buf, &count, schar, 1);
+                            }
+                            dschar = true;
+                        }
+                    }
+                    if ((!dschar) && schar)
+                    {
+                        cb(buf, &count, schar, 1);
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+#endif /* PRINTF_FLOAT_ENABLE */
+                if ((c == 'X') || (c == 'x'))
+                {
+                    if (c == 'x')
+                    {
+                        use_caps = false;
+                    }
+#if PRINTF_ADVANCED_ENABLE
+                    if (flags_used & kPRINTF_LengthLongLongInt)
+                    {
+                        uval = (uint64_t)va_arg(ap, uint64_t);
+                    }
+                    else
+#endif /* PRINTF_ADVANCED_ENABLE */
+                    {
+                        uval = (uint32_t)va_arg(ap, uint32_t);
+                    }
+                    vlen = ConvertRadixNumToString(vstr, &uval, false, 16, use_caps);
+                    vstrp = &vstr[vlen];
+
+#if PRINTF_ADVANCED_ENABLE
+                    dschar = false;
+                    if (flags_used & kPRINTF_Zero)
+                    {
+                        if (flags_used & kPRINTF_Pound)
+                        {
+                            cb(buf, &count, '0', 1);
+                            cb(buf, &count, (use_caps ? 'X' : 'x'), 1);
+                            dschar = true;
+                        }
+                        cb(buf, &count, '0', field_width - vlen);
+                        vlen = field_width;
+                    }
+                    else
+                    {
+                        if (!(flags_used & kPRINTF_Minus))
+                        {
+                            if (flags_used & kPRINTF_Pound)
+                            {
+                                vlen += 2;
+                            }
+                            cb(buf, &count, ' ', field_width - vlen);
+                            if (flags_used & kPRINTF_Pound)
+                            {
+                                cb(buf, &count, '0', 1);
+                                cb(buf, &count, (use_caps ? 'X' : 'x'), 1);
+                                dschar = true;
+                            }
+                        }
+                    }
+
+                    if ((flags_used & kPRINTF_Pound) && (!dschar))
+                    {
+                        cb(buf, &count, '0', 1);
+                        cb(buf, &count, (use_caps ? 'X' : 'x'), 1);
+                        vlen += 2;
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+                if ((c == 'o') || (c == 'b') || (c == 'p') || (c == 'u'))
+                {
+#if PRINTF_ADVANCED_ENABLE
+                    if (flags_used & kPRINTF_LengthLongLongInt)
+                    {
+                        uval = (uint64_t)va_arg(ap, uint64_t);
+                    }
+                    else
+#endif /* PRINTF_ADVANCED_ENABLE */
+                    {
+                        uval = (uint32_t)va_arg(ap, uint32_t);
+                    }
+                    switch (c)
+                    {
+                        case 'o':
+                            radix = 8;
+                            break;
+                        case 'b':
+                            radix = 2;
+                            break;
+                        case 'p':
+                            radix = 16;
+                            break;
+                        case 'u':
+                            radix = 10;
+                            break;
+                        default:
+                            break;
+                    }
+                    vlen = ConvertRadixNumToString(vstr, &uval, false, radix, use_caps);
+                    vstrp = &vstr[vlen];
+#if PRINTF_ADVANCED_ENABLE
+                    if (flags_used & kPRINTF_Zero)
+                    {
+                        cb(buf, &count, '0', field_width - vlen);
+                        vlen = field_width;
+                    }
+                    else
+                    {
+                        if (!(flags_used & kPRINTF_Minus))
+                        {
+                            cb(buf, &count, ' ', field_width - vlen);
+                        }
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+#if !PRINTF_ADVANCED_ENABLE
+                cb(buf, &count, ' ', field_width - vlen);
+#endif /* !PRINTF_ADVANCED_ENABLE */
+                if (vstrp != NULL)
+                {
+                    while (*vstrp)
+                    {
+                        cb(buf, &count, *vstrp--, 1);
+                    }
+                }
+#if PRINTF_ADVANCED_ENABLE
+                if (flags_used & kPRINTF_Minus)
+                {
+                    cb(buf, &count, ' ', field_width - vlen);
+                }
+#endif /* PRINTF_ADVANCED_ENABLE */
+            }
+            else if (c == 'c')
+            {
+                cval = (char)va_arg(ap, uint32_t);
+                cb(buf, &count, cval, 1);
+            }
+            else if (c == 's')
+            {
+                sval = (char *)va_arg(ap, char *);
+                if (sval)
+                {
+#if PRINTF_ADVANCED_ENABLE
+                    if (valid_precision_width)
+                    {
+                        vlen = precision_width;
+                    }
+                    else
+                    {
+                        vlen = strlen(sval);
+                    }
+#else
+                    vlen = strlen(sval);
+#endif /* PRINTF_ADVANCED_ENABLE */
+#if PRINTF_ADVANCED_ENABLE
+                    if (!(flags_used & kPRINTF_Minus))
+#endif /* PRINTF_ADVANCED_ENABLE */
+                    {
+                        cb(buf, &count, ' ', field_width - vlen);
+                    }
+
+#if PRINTF_ADVANCED_ENABLE
+                    if (valid_precision_width)
+                    {
+                        while ((*sval) && (vlen > 0))
+                        {
+                            cb(buf, &count, *sval++, 1);
+                            vlen--;
+                        }
+                        /* In case that vlen sval is shorter than vlen */
+                        vlen = precision_width - vlen;
+                    }
+                    else
+                    {
+#endif /* PRINTF_ADVANCED_ENABLE */
+                        while (*sval)
+                        {
+                            cb(buf, &count, *sval++, 1);
+                        }
+#if PRINTF_ADVANCED_ENABLE
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+
+#if PRINTF_ADVANCED_ENABLE
+                    if (flags_used & kPRINTF_Minus)
+                    {
+                        cb(buf, &count, ' ', field_width - vlen);
+                    }
+#endif /* PRINTF_ADVANCED_ENABLE */
+                }
+            }
+            else
+            {
+                cb(buf, &count, c, 1);
+            }
+        }
+    }
+
+    return count;
+}
+
+int StrFormatScanf(const char *line_ptr, char *format, va_list args_ptr)
+{
+    uint8_t base;
+    int8_t neg;
+    /* Identifier for the format string. */
+    char *c = format;
+    char temp;
+    char *buf;
+    /* Flag telling the conversion specification. */
+    uint32_t flag = 0;
+    /* Filed width for the matching input streams. */
+    uint32_t field_width;
+    /* How many arguments are assigned except the suppress. */
+    uint32_t nassigned = 0;
+    /* How many characters are read from the input streams. */
+    uint32_t n_decode = 0;
+
+    int32_t val;
+
+    const char *s;
+    /* Identifier for the input string. */
+    const char *p = line_ptr;
+
+    /* Return EOF error before any conversion. */
+    if (*p == '\0')
+    {
+        return -1;
+    }
+
+    /* Decode directives. */
+    while ((*c) && (*p))
+    {
+        /* Ignore all white-spaces in the format strings. */
+        if (ScanIgnoreWhiteSpace((const char **)&c))
+        {
+            n_decode += ScanIgnoreWhiteSpace(&p);
+        }
+        else if ((*c != '%') || ((*c == '%') && (*(c + 1) == '%')))
+        {
+            /* Ordinary characters. */
+            c++;
+            if (*p == *c)
+            {
+                n_decode++;
+                p++;
+                c++;
+            }
+            else
+            {
+                /* Match failure. Misalignment with C99, the unmatched characters need to be pushed back to stream.
+                 * However, it is deserted now. */
+                break;
+            }
+        }
+        else
+        {
+            /* convernsion specification */
+            c++;
+            /* Reset. */
+            flag = 0;
+            field_width = 0;
+            base = 0;
+
+            /* Loop to get full conversion specification. */
+            while ((*c) && (!(flag & kSCANF_DestMask)))
+            {
+                switch (*c)
+                {
+#if SCANF_ADVANCED_ENABLE
+                    case '*':
+                        if (flag & kSCANF_Suppress)
+                        {
+                            /* Match failure. */
+                            return nassigned;
+                        }
+                        flag |= kSCANF_Suppress;
+                        c++;
+                        break;
+                    case 'h':
+                        if (flag & kSCANF_LengthMask)
+                        {
+                            /* Match failure. */
+                            return nassigned;
+                        }
+
+                        if (c[1] == 'h')
+                        {
+                            flag |= kSCANF_LengthChar;
+                            c++;
+                        }
+                        else
+                        {
+                            flag |= kSCANF_LengthShortInt;
+                        }
+                        c++;
+                        break;
+                    case 'l':
+                        if (flag & kSCANF_LengthMask)
+                        {
+                            /* Match failure. */
+                            return nassigned;
+                        }
+
+                        if (c[1] == 'l')
+                        {
+                            flag |= kSCANF_LengthLongLongInt;
+                            c++;
+                        }
+                        else
+                        {
+                            flag |= kSCANF_LengthLongInt;
+                        }
+                        c++;
+                        break;
+#endif /* SCANF_ADVANCED_ENABLE */
+#if SCANF_FLOAT_ENABLE
+                    case 'L':
+                        if (flag & kSCANF_LengthMask)
+                        {
+                            /* Match failure. */
+                            return nassigned;
+                        }
+                        flag |= kSCANF_LengthLongLongDouble;
+                        c++;
+                        break;
+#endif /* SCANF_FLOAT_ENABLE */
+                    case '0':
+                    case '1':
+                    case '2':
+                    case '3':
+                    case '4':
+                    case '5':
+                    case '6':
+                    case '7':
+                    case '8':
+                    case '9':
+                        if (field_width)
+                        {
+                            /* Match failure. */
+                            return nassigned;
+                        }
+                        do
+                        {
+                            field_width = field_width * 10 + *c - '0';
+                            c++;
+                        } while ((*c >= '0') && (*c <= '9'));
+                        break;
+                    case 'd':
+                        base = 10;
+                        flag |= kSCANF_TypeSinged;
+                        flag |= kSCANF_DestInt;
+                        c++;
+                        break;
+                    case 'u':
+                        base = 10;
+                        flag |= kSCANF_DestInt;
+                        c++;
+                        break;
+                    case 'o':
+                        base = 8;
+                        flag |= kSCANF_DestInt;
+                        c++;
+                        break;
+                    case 'x':
+                    case 'X':
+                        base = 16;
+                        flag |= kSCANF_DestInt;
+                        c++;
+                        break;
+                    case 'i':
+                        base = 0;
+                        flag |= kSCANF_DestInt;
+                        c++;
+                        break;
+#if SCANF_FLOAT_ENABLE
+                    case 'a':
+                    case 'A':
+                    case 'e':
+                    case 'E':
+                    case 'f':
+                    case 'F':
+                    case 'g':
+                    case 'G':
+                        flag |= kSCANF_DestFloat;
+                        c++;
+                        break;
+#endif /* SCANF_FLOAT_ENABLE */
+                    case 'c':
+                        flag |= kSCANF_DestChar;
+                        if (!field_width)
+                        {
+                            field_width = 1;
+                        }
+                        c++;
+                        break;
+                    case 's':
+                        flag |= kSCANF_DestString;
+                        c++;
+                        break;
+                    default:
+                        return nassigned;
+                }
+            }
+
+            if (!(flag & kSCANF_DestMask))
+            {
+                /* Format strings are exhausted. */
+                return nassigned;
+            }
+
+            if (!field_width)
+            {
+                /* Large than length of a line. */
+                field_width = 99;
+            }
+
+            /* Matching strings in input streams and assign to argument. */
+            switch (flag & kSCANF_DestMask)
+            {
+                case kSCANF_DestChar:
+                    s = (const char *)p;
+                    buf = va_arg(args_ptr, char *);
+                    while ((field_width--) && (*p))
+                    {
+                        if (!(flag & kSCANF_Suppress))
+                        {
+                            *buf++ = *p++;
+                        }
+                        else
+                        {
+                            p++;
+                        }
+                        n_decode++;
+                    }
+
+                    if ((!(flag & kSCANF_Suppress)) && (s != p))
+                    {
+                        nassigned++;
+                    }
+                    break;
+                case kSCANF_DestString:
+                    n_decode += ScanIgnoreWhiteSpace(&p);
+                    s = p;
+                    buf = va_arg(args_ptr, char *);
+                    while ((field_width--) && (*p != '\0') && (*p != ' ') && (*p != '\t') && (*p != '\n') &&
+                           (*p != '\r') && (*p != '\v') && (*p != '\f'))
+                    {
+                        if (flag & kSCANF_Suppress)
+                        {
+                            p++;
+                        }
+                        else
+                        {
+                            *buf++ = *p++;
+                        }
+                        n_decode++;
+                    }
+
+                    if ((!(flag & kSCANF_Suppress)) && (s != p))
+                    {
+                        /* Add NULL to end of string. */
+                        *buf = '\0';
+                        nassigned++;
+                    }
+                    break;
+                case kSCANF_DestInt:
+                    n_decode += ScanIgnoreWhiteSpace(&p);
+                    s = p;
+                    val = 0;
+                    if ((base == 0) || (base == 16))
+                    {
+                        if ((s[0] == '0') && ((s[1] == 'x') || (s[1] == 'X')))
+                        {
+                            base = 16;
+                            if (field_width >= 1)
+                            {
+                                p += 2;
+                                n_decode += 2;
+                                field_width -= 2;
+                            }
+                        }
+                    }
+
+                    if (base == 0)
+                    {
+                        if (s[0] == '0')
+                        {
+                            base = 8;
+                        }
+                        else
+                        {
+                            base = 10;
+                        }
+                    }
+
+                    neg = 1;
+                    switch (*p)
+                    {
+                        case '-':
+                            neg = -1;
+                            n_decode++;
+                            p++;
+                            field_width--;
+                            break;
+                        case '+':
+                            neg = 1;
+                            n_decode++;
+                            p++;
+                            field_width--;
+                            break;
+                        default:
+                            break;
+                    }
+
+                    while ((*p) && (field_width--))
+                    {
+                        if ((*p <= '9') && (*p >= '0'))
+                        {
+                            temp = *p - '0';
+                        }
+                        else if ((*p <= 'f') && (*p >= 'a'))
+                        {
+                            temp = *p - 'a' + 10;
+                        }
+                        else if ((*p <= 'F') && (*p >= 'A'))
+                        {
+                            temp = *p - 'A' + 10;
+                        }
+                        else
+                        {
+                            temp = base;
+                        }
+
+                        if (temp >= base)
+                        {
+                            break;
+                        }
+                        else
+                        {
+                            val = base * val + temp;
+                        }
+                        p++;
+                        n_decode++;
+                    }
+                    val *= neg;
+                    if (!(flag & kSCANF_Suppress))
+                    {
+#if SCANF_ADVANCED_ENABLE
+                        switch (flag & kSCANF_LengthMask)
+                        {
+                            case kSCANF_LengthChar:
+                                if (flag & kSCANF_TypeSinged)
+                                {
+                                    *va_arg(args_ptr, signed char *) = (signed char)val;
+                                }
+                                else
+                                {
+                                    *va_arg(args_ptr, unsigned char *) = (unsigned char)val;
+                                }
+                                break;
+                            case kSCANF_LengthShortInt:
+                                if (flag & kSCANF_TypeSinged)
+                                {
+                                    *va_arg(args_ptr, signed short *) = (signed short)val;
+                                }
+                                else
+                                {
+                                    *va_arg(args_ptr, unsigned short *) = (unsigned short)val;
+                                }
+                                break;
+                            case kSCANF_LengthLongInt:
+                                if (flag & kSCANF_TypeSinged)
+                                {
+                                    *va_arg(args_ptr, signed long int *) = (signed long int)val;
+                                }
+                                else
+                                {
+                                    *va_arg(args_ptr, unsigned long int *) = (unsigned long int)val;
+                                }
+                                break;
+                            case kSCANF_LengthLongLongInt:
+                                if (flag & kSCANF_TypeSinged)
+                                {
+                                    *va_arg(args_ptr, signed long long int *) = (signed long long int)val;
+                                }
+                                else
+                                {
+                                    *va_arg(args_ptr, unsigned long long int *) = (unsigned long long int)val;
+                                }
+                                break;
+                            default:
+                                /* The default type is the type int. */
+                                if (flag & kSCANF_TypeSinged)
+                                {
+                                    *va_arg(args_ptr, signed int *) = (signed int)val;
+                                }
+                                else
+                                {
+                                    *va_arg(args_ptr, unsigned int *) = (unsigned int)val;
+                                }
+                                break;
+                        }
+#else
+                        /* The default type is the type int. */
+                        if (flag & kSCANF_TypeSinged)
+                        {
+                            *va_arg(args_ptr, signed int *) = (signed int)val;
+                        }
+                        else
+                        {
+                            *va_arg(args_ptr, unsigned int *) = (unsigned int)val;
+                        }
+#endif /* SCANF_ADVANCED_ENABLE */
+                        nassigned++;
+                    }
+                    break;
+#if SCANF_FLOAT_ENABLE
+                case kSCANF_DestFloat:
+                    n_decode += ScanIgnoreWhiteSpace(&p);
+                    fnum = strtod(p, (char **)&s);
+
+                    if ((fnum >= HUGE_VAL) || (fnum <= -HUGE_VAL))
+                    {
+                        break;
+                    }
+
+                    n_decode += (int)(s) - (int)(p);
+                    p = s;
+                    if (!(flag & kSCANF_Suppress))
+                    {
+                        if (flag & kSCANF_LengthLongLongDouble)
+                        {
+                            *va_arg(args_ptr, double *) = fnum;
+                        }
+                        else
+                        {
+                            *va_arg(args_ptr, float *) = (float)fnum;
+                        }
+                        nassigned++;
+                    }
+                    break;
+#endif /* SCANF_FLOAT_ENABLE */
+                default:
+                    return nassigned;
+            }
+        }
+    }
+    return nassigned;
+}
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.h
new file mode 100644 (file)
index 0000000..a0c40c5
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2017 NXP
+ * All rights reserved.
+ *
+ * 
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ */
+
+#ifndef _FSL_STR_H
+#define _FSL_STR_H
+
+#include "fsl_common.h"
+
+/*******************************************************************************
+ * Prototypes
+ ******************************************************************************/
+#if defined(__cplusplus)
+extern "C" {
+#endif /* __cplusplus */
+
+/*!
+ * @brief A function pointer which is used when format printf log.
+ */
+typedef void (*printfCb)(char *buf, int32_t *indicator, char val, int len);
+
+/*!
+ * @brief This function outputs its parameters according to a formatted string.
+ *
+ * @note I/O is performed by calling given function pointer using following
+ * (*func_ptr)(c);
+ *
+ * @param[in] fmt_ptr   Format string for printf.
+ * @param[in] args_ptr  Arguments to printf.
+ * @param[in] buf  pointer to the buffer
+ * @param cb print callbck function pointer
+ *
+ * @return Number of characters to be print
+ */
+int StrFormatPrintf(const char *fmt, va_list ap, char *buf, printfCb cb);
+
+/*!
+ * @brief Converts an input line of ASCII characters based upon a provided
+ * string format.
+ *
+ * @param[in] line_ptr The input line of ASCII data.
+ * @param[in] format   Format first points to the format string.
+ * @param[in] args_ptr The list of parameters.
+ *
+ * @return Number of input items converted and assigned.
+ * @retval IO_EOF When line_ptr is empty string "".
+ */
+int StrFormatScanf(const char *line_ptr, char *format, va_list args_ptr);
+
+#if defined(__cplusplus)
+}
+#endif /* __cplusplus */
+
+#endif /* _FSL_STR_H */
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.cproject b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.cproject
new file mode 100644 (file)
index 0000000..d20475d
--- /dev/null
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">\r
+       <storageModule moduleId="org.eclipse.cdt.core.settings">\r
+               <cconfiguration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326">\r
+                       <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326" moduleId="org.eclipse.cdt.core.settings" name="debug">\r
+                               <externalSettings/>\r
+                               <extensions>\r
+                                       <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                                       <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>\r
+                               </extensions>\r
+                       </storageModule>\r
+                       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+                               <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326" name="debug" optionalBuildProperties="org.eclipse.cdt.docker.launcher.containerbuild.property.selectedvolumes=,org.eclipse.cdt.docker.launcher.containerbuild.property.volumes=" parent="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug">\r
+                                       <folderInfo id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326." name="/" resourcePath="">\r
+                                               <toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.debug.1402320874" name="RISC-V Cross GCC" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.debug">\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash.919850383" name="Create flash image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash" useByScannerDiscovery="false" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting.833503378" name="Create extended listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createlisting" useByScannerDiscovery="false" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize.189708404" name="Print size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.printsize" useByScannerDiscovery="false" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.55756394" name="Optimization Level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.level.none" valueType="enumerated"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength.1568775466" name="Message length (-fmessage-length=0)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.messagelength" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar.480900962" name="'char' is signed (-fsigned-char)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.signedchar" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections.120760521" name="Function sections (-ffunction-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.functionsections" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections.42741245" name="Data sections (-fdata-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.datasections" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level.1958651526" name="Debug level" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.level.default" valueType="enumerated"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format.312388920" name="Debug format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.debugging.format.default" valueType="enumerated"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name.110310674" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.name" useByScannerDiscovery="false" value="GNU MCU RISC-V GCC" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix.2132342517" name="Prefix" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.prefix" useByScannerDiscovery="false" value="riscv32-unknown-elf-" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c.1005191709" name="C compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.c" useByScannerDiscovery="false" value="gcc" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp.155517674" name="C++ compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.cpp" useByScannerDiscovery="false" value="g++" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar.970944801" name="Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.ar" useByScannerDiscovery="false" value="ar" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy.1574331934" name="Hex/Bin converter" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objcopy" useByScannerDiscovery="false" value="objcopy" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump.134779203" name="Listing generator" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.objdump" useByScannerDiscovery="false" value="objdump" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size.652429534" name="Size command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.size" useByScannerDiscovery="false" value="size" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make.851453087" name="Build command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.make" useByScannerDiscovery="false" value="make" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm.478899611" name="Remove command" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.command.rm" useByScannerDiscovery="false" value="rm" valueType="string"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.lto.1870168979" name="Link-time optimizer (-flto)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.lto" useByScannerDiscovery="true" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon.427636913" name="No common unitialized (-fno-common)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nobuiltin.500427006" name="Disable builtin (-fno-builtin)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nobuiltin" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.freestanding.835677637" name="Assume freestanding environment (-ffreestanding)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.freestanding" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.allwarn.237237596" name="Enable all common warnings (-Wall)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.allwarn" useByScannerDiscovery="true" value="true" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.integer.6643291811" name="Integer ABI" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.abi.integer" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.abi.integer.default" valueType="enumerated"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.nowarn.5718194871" name="Inhibit all warnings (-w)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.nowarn" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.unused.9926998809" name="Warn on various unused elements (-Wunused)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.unused" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.extrawarn.6138892862" name="Enable extra warnings (-Wextra)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.extrawarn" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.conversion.5016984553" name="Warn on implicit conversions (-Wconversion)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.conversion" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.pointerarith.3031074794" name="Warn if pointer arithmetic (-Wpointer-arith)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.pointerarith" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.padded.3600222304" name="Warn if padding is included (-Wpadded)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.padded" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.shadow.6339473937" name="Warn if shadowed variable (-Wshadow)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.shadow" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.logicalop.8106626747" name="Warn if suspicious logical ops (-Wlogical-op)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.logicalop" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.agreggatereturn.45079749" name="Warn if struct is returned (-Wagreggate-return)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.agreggatereturn" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.floatequal.8129504051" name="Warn if floats are compared as equal (-Wfloat-equal)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.floatequal" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.toerrors.3292991564" name="Generate errors instead of warnings (-Werror)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.toerrors" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.unitialized.1888460337" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.unitialized" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.missingdeclaration.4352053808" name="Warn on undeclared global function (-Wmissing-declaration)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.warnings.missingdeclaration" value="false" valueType="boolean"/>\r
+                                                       <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.id.278644637" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.toolchain.id" value="512258282" valueType="string"/>\r
+                                                       <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.474867596" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/>\r
+                                                       <builder autoBuildTarget="all" buildPath="${workspace_loc:/ri5cy}/debug" cleanBuildTarget="clean" command="${cross_make}" id="org.eclipse.cdt.build.core.internal.builder.1384692204" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="org.eclipse.cdt.build.core.internal.builder"/>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.2064424930" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor.1096111524" name="Use preprocessor" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.usepreprocessor" useByScannerDiscovery="false" value="true" valueType="boolean"/>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths.481538624" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths" useByScannerDiscovery="true" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/Pulpino_Vega_RV32M1RM}&quot;"/>\r
+                                                               </option>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.defs.4569252461" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.defs" useByScannerDiscovery="true" valueType="definedSymbols">\r
+                                                                       <listOptionValue builtIn="false" value="DEBUG"/>\r
+                                                                       <listOptionValue builtIn="false" value="portasmHANDLE_INTERRUPT=SystemIrqHandler"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.nostdinc.7946784038" name="Do not search system directories (-nostdinc)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.nostdinc" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.other.9634303410" name="Other assembler flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.other" value="" valueType="string"/>\r
+                                                               <inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input.1674793340" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.input"/>\r
+                                                       </tool>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.906968630" name="GNU RISC-V Cross C Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.other.710978169" name="Other compiler flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.other" useByScannerDiscovery="true" value="-march=rv32imcxpulpv2 -Wa,-march=rv32imcxpulpv2 " valueType="string"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std.666203349" name="Language standard" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std" useByScannerDiscovery="true" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.std.gnu99" valueType="enumerated"/>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs.2058217957" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">\r
+                                                                       <listOptionValue builtIn="false" value="DEBUG"/>\r
+                                                                       <listOptionValue builtIn="false" value="CPU_RV32M1_ri5cy"/>\r
+                                                                       <listOptionValue builtIn="false" value="PRINTF_FLOAT_ENABLE=0"/>\r
+                                                                       <listOptionValue builtIn="false" value="SCANF_FLOAT_ENABLE=0"/>\r
+                                                                       <listOptionValue builtIn="false" value="PRINTF_ADVANCED_ENABLE=0"/>\r
+                                                                       <listOptionValue builtIn="false" value="SCANF_ADVANCED_ENABLE=0"/>\r
+                                                               </option>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.paths.1690096759" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="../../../common"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/full_demo/common_demo_files/include}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../common/rv32m1_sdk_riscv/board"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../common/rv32m1_sdk_riscv/RISCV"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../common/rv32m1_sdk_riscv/devices/RV32M1"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../common/rv32m1_sdk_riscv/devices/RV32M1/utilities"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../common/rv32m1_sdk_riscv/devices/RV32M1/drivers"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32}&quot;"/>\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/include}&quot;"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.nostdinc.178157869" name="Do not search system directories (-nostdinc)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.compiler.nostdinc" useByScannerDiscovery="true" value="false" valueType="boolean"/>\r
+                                                               <inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.1082444124" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input"/>\r
+                                                       </tool>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler.462731071" name="GNU RISC-V Cross C++ Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.compiler">\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.include.paths.6231435759" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.include.paths" useByScannerDiscovery="true" valueType="includePath">\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../RISCV"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../.."/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../.."/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1/drivers"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1/utilities"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1/utilities/io"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1/utilities/str"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1/utilities/log"/>\r
+                                                                       <listOptionValue builtIn="false" value="../../../../../../../devices/RV32M1"/>\r
+                                                                       <listOptionValue builtIn="false" value="../.."/>\r
+                                                               </option>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.defs.1391232778" name="Defined symbols (-D)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.defs" useByScannerDiscovery="true" valueType="definedSymbols">\r
+                                                                       <listOptionValue builtIn="false" value="DEBUG"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.nostdinc.8635617226" name="Do not search system directories (-nostdinc)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.nostdinc" useByScannerDiscovery="true" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.nostdincpp.2891927352" name="Do not search system C++ directories (-nostdinc++)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.nostdincpp" useByScannerDiscovery="true" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.noexceptions.1541316758" name="Do not use exceptions (-fno-exceptions)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.noexceptions" useByScannerDiscovery="true" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.other.9025182540" name="Other compiler flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.compiler.other" useByScannerDiscovery="true" value="" valueType="string"/>\r
+                                                       </tool>\r
+                                                       <tool commandLinePattern="${COMMAND} ${cross_toolchain_flags} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} -Xlinker --start-group ${INPUTS} -Xlinker --end-group" id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.1177959321" name="GNU RISC-V Cross C Linker" outputPrefix="" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections.1931984352" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.gcsections" useByScannerDiscovery="false" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart.533841166" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostart" useByScannerDiscovery="false" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostdlibs.1354787488" name="No startup or default libs (-nostdlib)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nostdlibs" useByScannerDiscovery="false" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other.1071732370" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.other" useByScannerDiscovery="false" value="-march=rv32imcxpulpv2 -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker -static  -Xlinker -z  -Xlinker muldefs" valueType="string"/>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.scriptfile.1566797272" name="Script files (-T)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.scriptfile" useByScannerDiscovery="false" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/RV32M1_ri5cy_flash.ld}&quot;"/>\r
+                                                               </option>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs.2066784100" name="Libraries (-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs" useByScannerDiscovery="false" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="nosys"/>\r
+                                                                       <listOptionValue builtIn="false" value="gcc"/>\r
+                                                                       <listOptionValue builtIn="false" value="c"/>\r
+                                                                       <listOptionValue builtIn="false" value="m"/>\r
+                                                                       <listOptionValue builtIn="false" value="m"/>\r
+                                                                       <listOptionValue builtIn="false" value="g"/>\r
+                                                                       <listOptionValue builtIn="false" value="gcc"/>\r
+                                                                       <listOptionValue builtIn="false" value="nosys"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.usenewlibnano.59369749" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.usenewlibnano" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nodeflibs.5866151701" name="Do not use default libraries (-nodefaultlibs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.nodeflibs" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.cref.8170726009" name="Cross reference (-Xlinker --cref)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.cref" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano.1216781335" name="Use newlib-nano (--specs=nano.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnano" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printgcsections.7593277771" name="Print removed sections (-Xlinker --print-gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.printgcsections" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip.6786198165" name="Omit all symbol information (-s)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.strip" value="false" valueType="boolean"/>\r
+                                                               <inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.790030538" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input">\r
+                                                                       <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>\r
+                                                                       <additionalInput kind="additionalinput" paths="$(LIBS)"/>\r
+                                                               </inputType>\r
+                                                       </tool>\r
+                                                       <tool commandLinePattern="${COMMAND} ${cross_toolchain_flags} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} -Xlinker --start-group ${INPUTS} -Xlinker --end-group" id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker.666522024" name="GNU RISC-V Cross C++ Linker" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.cpp.linker">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections.1830252660" name="Remove unused sections (-Xlinker --gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.gcsections" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other.2036224253" name="Other linker flags" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.other" value="-Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker -static  -Xlinker -z  -Xlinker muldefs" valueType="string"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.otherobjs.4934353253" name="Other objects" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.otherobjs"/>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.scriptfile.6844981248" name="Script files (-T)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.scriptfile" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="../settings/RV32M1_ri5cy_flash.ld"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nostart.4434274430" name="Do not use standard start files (-nostartfiles)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nostart" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nodeflibs.4005806065" name="Do not use default libraries (-nodefaultlibs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nodeflibs" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nostdlibs.2827383978" name="No startup or default libs (-nostdlib)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.nostdlibs" value="true" valueType="boolean"/>\r
+                                                               <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.libs.339914112" name="Libraries (-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.libs" valueType="libs">\r
+                                                                       <listOptionValue builtIn="false" value="m"/>\r
+                                                                       <listOptionValue builtIn="false" value="g"/>\r
+                                                                       <listOptionValue builtIn="false" value="gcc"/>\r
+                                                                       <listOptionValue builtIn="false" value="nosys"/>\r
+                                                               </option>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.cref.6106775334" name="Cross reference (-Xlinker --cref)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.cref" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.printgcsections.4610594565" name="Print removed sections (-Xlinker --print-gc-sections)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.printgcsections" value="false" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.strip.6796815756" name="Omit all symbol information (-s)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.cpp.linker.strip" value="false" valueType="boolean"/>\r
+                                                       </tool>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver.393870534" name="GNU RISC-V Cross Archiver" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.archiver"/>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash.138363752" name="GNU RISC-V Cross Create Flash Image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createflash"/>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting.2011504858" name="GNU RISC-V Cross Create Listing" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.createlisting">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source.1132404516" name="Display source (--source|-S)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.source" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders.1295277585" name="Display all headers (--all-headers|-x)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.allheaders" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle.81308052" name="Demangle names (--demangle|-C)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.demangle" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers.218980099" name="Display line numbers (--line-numbers|-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.linenumbers" value="true" valueType="boolean"/>\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide.883257793" name="Wide lines (--wide|-w)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.createlisting.wide" value="true" valueType="boolean"/>\r
+                                                       </tool>\r
+                                                       <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize.1109196522" name="GNU RISC-V Cross Print Size" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.printsize">\r
+                                                               <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format.228266543" name="Size format" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.printsize.format" useByScannerDiscovery="false"/>\r
+                                                       </tool>\r
+                                               </toolChain>\r
+                                       </folderInfo>\r
+                                       <sourceEntries>\r
+                                               <entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>\r
+                                       </sourceEntries>\r
+                               </configuration>\r
+                       </storageModule>\r
+                       <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
+                       <storageModule moduleId="ilg.gnumcueclipse.managedbuild.packs"/>\r
+               </cconfiguration>\r
+       </storageModule>\r
+       <storageModule moduleId="cdtBuildSystem" version="4.0.0">\r
+               <project id="hello_world_ri5cy.ilg.gnumcueclipse.managedbuild.cross.riscv.target.elf.924412322" name="Executable" projectType="ilg.gnumcueclipse.managedbuild.cross.riscv.target.elf"/>\r
+       </storageModule>\r
+       <storageModule moduleId="scannerConfiguration">\r
+               <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
+               <scannerConfigBuildInfo instanceId="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1687229122;ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1687229122.;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.703999596;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.143417895">\r
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
+               </scannerConfigBuildInfo>\r
+               <scannerConfigBuildInfo instanceId="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326;ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326.;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.906968630;ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.compiler.input.1082444124">\r
+                       <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>\r
+               </scannerConfigBuildInfo>\r
+       </storageModule>\r
+       <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>\r
+       <storageModule moduleId="refreshScope" versionNumber="2">\r
+               <configuration configurationName="debug">\r
+                       <resource resourceType="PROJECT" workspacePath="/RTOSDemo_ri5cy"/>\r
+               </configuration>\r
+               <configuration configurationName="release">\r
+                       <resource resourceType="PROJECT" workspacePath="/RTOSDemo_ri5cy"/>\r
+               </configuration>\r
+       </storageModule>\r
+       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
+       <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>\r
+</cproject>\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.project b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.project
new file mode 100644 (file)
index 0000000..76abf71
--- /dev/null
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>RTOSDemo_ri5cy</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>\r
+                       <triggers>clean,full,incremental,</triggers>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>\r
+                       <triggers>full,incremental,</triggers>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+       </buildSpec>\r
+       <natures>\r
+               <nature>org.eclipse.cdt.core.cnature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>\r
+               <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>\r
+       </natures>\r
+       <linkedResources>\r
+               <link>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>2</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Source</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>FreeRTOS_startup_RV32M1_ri5cy.S</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/gcc/startup_RV32M1_ri5cy.S</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/pin_mux.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/pin_mux.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/pin_mux.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/pin_mux.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_ri5cy.cfg</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_ri5cy.cfg</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/RISCV</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/board</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/AbortDelay.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/AbortDelay.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/EventGroupsDemo.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/EventGroupsDemo.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/GenQTest.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/GenQTest.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/MessageBufferDemo.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/MessageBufferDemo.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/StreamBufferDemo.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/StreamBufferDemo.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/StreamBufferInterrupt.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/StreamBufferInterrupt.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/TaskNotify.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/TaskNotify.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/TimerDemo.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/TimerDemo.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/blocktim.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/blocktim.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/countsem.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/countsem.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/death.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/death.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/dynamic.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/dynamic.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/include</name>\r
+                       <type>2</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/include</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>full_demo/common_demo_files/recmutex.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>FREERTOS_ROOT/FreeRTOS/Demo/Common/Minimal/recmutex.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/RISCV/core_riscv32.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/RISCV/core_riscv32.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/board/board.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/board/board.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/board/board.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/board/board.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/board/clock_config.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/board/clock_config.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/board/clock_config.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/board/clock_config.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy_features.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/RV32M1_ri5cy_features.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/fsl_device_registers.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/fsl_device_registers.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/system_RV32M1_ri5cy.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities</name>\r
+                       <type>2</type>\r
+                       <locationURI>virtual:/virtual</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_clock.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_common.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_gpio.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_lpuart.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_msmc.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_port.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/drivers/fsl_port.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console_conf.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_debug_console_conf.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_io.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_log.h</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.c</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.c</locationURI>\r
+               </link>\r
+               <link>\r
+                       <name>common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.h</name>\r
+                       <type>1</type>\r
+                       <locationURI>PARENT-2-PROJECT_LOC/common/rv32m1_sdk_riscv/devices/RV32M1/utilities/fsl_str.h</locationURI>\r
+               </link>\r
+       </linkedResources>\r
+       <filteredResources>\r
+               <filter>\r
+                       <id>1544746783235</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-event_groups.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746783242</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-list.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746783249</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-queue.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746783255</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-stream_buffer.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746783260</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-tasks.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746783266</id>\r
+                       <name>FreeRTOS_Source</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-timers.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746838986</id>\r
+                       <name>FreeRTOS_Source/portable</name>\r
+                       <type>9</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-GCC</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746838993</id>\r
+                       <name>FreeRTOS_Source/portable</name>\r
+                       <type>9</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-MemMang</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746861827</id>\r
+                       <name>FreeRTOS_Source/portable/GCC</name>\r
+                       <type>9</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-RISC-V-RV32</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746990721</id>\r
+                       <name>FreeRTOS_Source/portable/MemMang</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-heap_4.c</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1544746990726</id>\r
+                       <name>FreeRTOS_Source/portable/MemMang</name>\r
+                       <type>5</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-readme.*</arguments>\r
+                       </matcher>\r
+               </filter>\r
+               <filter>\r
+                       <id>1546226557819</id>\r
+                       <name>FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions</name>\r
+                       <type>9</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-Pulpino_Vega_RV32M1RM</arguments>\r
+                       </matcher>\r
+               </filter>\r
+       </filteredResources>\r
+       <variableList>\r
+               <variable>\r
+                       <name>FREERTOS_ROOT</name>\r
+                       <value>$%7BPARENT-5-PROJECT_LOC%7D</value>\r
+               </variable>\r
+       </variableList>\r
+</projectDescription>\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/language.settings.xml b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/language.settings.xml
new file mode 100644 (file)
index 0000000..de3b528
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<project>\r
+       <configuration id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326" name="debug">\r
+               <extension point="org.eclipse.cdt.core.LanguageSettingsProvider">\r
+                       <provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>\r
+                       <provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>\r
+                       <provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>\r
+                       <provider class="org.eclipse.cdt.managedbuilder.language.settings.providers.GCCBuiltinSpecsDetector" console="false" env-hash="-1838490515881353792" id="ilg.gnumcueclipse.managedbuild.cross.riscv.GCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT RISC-V Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">\r
+                               <language-scope id="org.eclipse.cdt.core.gcc"/>\r
+                               <language-scope id="org.eclipse.cdt.core.g++"/>\r
+                       </provider>\r
+               </extension>\r
+       </configuration>\r
+</project>\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/.settings/org.eclipse.cdt.managedbuilder.core.prefs
new file mode 100644 (file)
index 0000000..80003f3
--- /dev/null
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/CPATH/delimiter=;\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/CPATH/operation=remove\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/C_INCLUDE_PATH/delimiter=;\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/C_INCLUDE_PATH/operation=remove\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/append=true\r
+environment/buildEnvironmentInclude/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/appendContributed=true\r
+environment/buildEnvironmentLibrary/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/LIBRARY_PATH/delimiter=;\r
+environment/buildEnvironmentLibrary/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/LIBRARY_PATH/operation=remove\r
+environment/buildEnvironmentLibrary/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/append=true\r
+environment/buildEnvironmentLibrary/ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326/appendContributed=true\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/FreeRTOSConfig.h b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/FreeRTOSConfig.h
new file mode 100644 (file)
index 0000000..d4f825a
--- /dev/null
@@ -0,0 +1,148 @@
+/*\r
+    FreeRTOS V8.2.3 - Copyright (C) 2015 Real Time Engineers Ltd.\r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
+\r
+    ***************************************************************************\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+    ***************************************************************************\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available on the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that is more than just the market leader, it     *\r
+     *    is the industry's de facto standard.                               *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly while simultaneously helping     *\r
+     *    to support the FreeRTOS project by purchasing a FreeRTOS           *\r
+     *    tutorial book, reference manual, or both:                          *\r
+     *    http://www.FreeRTOS.org/Documentation                              *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org/FAQHelp.html - Having a problem?  Start by reading\r
+    the FAQ page "My application does not run, what could be wrong?".  Have you\r
+    defined configASSERT()?\r
+\r
+    http://www.FreeRTOS.org/support - In return for receiving this top quality\r
+    embedded software for free we request you assist our global community by\r
+    participating in the support forum.\r
+\r
+    http://www.FreeRTOS.org/training - Investing in training allows your team to\r
+    be as productive as possible as early as possible.  Now you can receive\r
+    FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
+    Ltd, and the world's leading authority on the world's leading RTOS.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
+    Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
+    Integrity Systems ltd. to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and commercial middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\r
+\r
+#include "clock_config.h"\r
+\r
+/*-----------------------------------------------------------\r
+ * Application specific definitions.\r
+ *\r
+ * These definitions should be adjusted for your particular hardware and\r
+ * application requirements.\r
+ *\r
+ * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
+ * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
+ *\r
+ * See http://www.freertos.org/a00110.html.\r
+ *----------------------------------------------------------*/\r
+\r
+#define configCLINT_BASE_ADDRESS               0\r
+#define configUSE_PREEMPTION                   1\r
+#define configUSE_IDLE_HOOK                            1\r
+#define configUSE_TICK_HOOK                            1\r
+#define configCPU_CLOCK_HZ                             BOARD_BOOTCLOCKRUN_CORE_CLOCK\r
+#define configTICK_RATE_HZ                             ( ( TickType_t ) 1000 )\r
+#define configMAX_PRIORITIES                   ( 5 )\r
+#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 200 ) /* Can be as low as 60 but some of the demo tasks that use this constant require it to be higher. */\r
+#define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 100 * 1024 ) )\r
+#define configMAX_TASK_NAME_LEN                        ( 16 )\r
+#define configUSE_TRACE_FACILITY               0\r
+#define configUSE_16_BIT_TICKS                 0\r
+#define configIDLE_SHOULD_YIELD                        0\r
+#define configUSE_MUTEXES                              1\r
+#define configQUEUE_REGISTRY_SIZE              8\r
+#define configCHECK_FOR_STACK_OVERFLOW 2\r
+#define configUSE_RECURSIVE_MUTEXES            1\r
+#define configUSE_MALLOC_FAILED_HOOK   1\r
+#define configUSE_APPLICATION_TASK_TAG 0\r
+#define configUSE_COUNTING_SEMAPHORES  1\r
+#define configGENERATE_RUN_TIME_STATS  0\r
+\r
+/* Co-routine definitions. */\r
+#define configUSE_CO_ROUTINES                  0\r
+#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
+\r
+/* Software timer definitions. */\r
+#define configUSE_TIMERS                               1\r
+#define configTIMER_TASK_PRIORITY              ( configMAX_PRIORITIES - 1 )\r
+#define configTIMER_QUEUE_LENGTH               4\r
+#define configTIMER_TASK_STACK_DEPTH   ( configMINIMAL_STACK_SIZE )\r
+\r
+/* Task priorities.  Allow these to be overridden. */\r
+#ifndef uartPRIMARY_PRIORITY\r
+       #define uartPRIMARY_PRIORITY            ( configMAX_PRIORITIES - 3 )\r
+#endif\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+to exclude the API function. */\r
+#define INCLUDE_vTaskPrioritySet                       1\r
+#define INCLUDE_uxTaskPriorityGet                      1\r
+#define INCLUDE_vTaskDelete                                    1\r
+#define INCLUDE_vTaskCleanUpResources          1\r
+#define INCLUDE_vTaskSuspend                           1\r
+#define INCLUDE_vTaskDelayUntil                                1\r
+#define INCLUDE_vTaskDelay                                     1\r
+#define INCLUDE_eTaskGetState                          1\r
+#define INCLUDE_xTimerPendFunctionCall         1\r
+#define INCLUDE_xTaskAbortDelay                                1\r
+#define INCLUDE_xTaskGetHandle                         1\r
+#define INCLUDE_xSemaphoreGetMutexHolder       1\r
+\r
+/* Normal assert() semantics without relying on the provision of an assert.h\r
+header file. */\r
+#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); __asm volatile( "ebreak" ); for( ;; ); }\r
+\r
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION 0\r
+#define configKERNEL_INTERRUPT_PRIORITY 7\r
+\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RTOSDemo_ri5cy.launch b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RTOSDemo_ri5cy.launch
new file mode 100644 (file)
index 0000000..9e3ce58
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<launchConfiguration type="ilg.gnumcueclipse.debug.gdbjtag.openocd.launchConfigurationType">\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doContinue" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doDebugInRam" value="false"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doFirstReset" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doGdbServerAllocateConsole" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doGdbServerAllocateTelnetConsole" value="false"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doSecondReset" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doStartGdbCLient" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.doStartGdbServer" value="true"/>\r
+<booleanAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.enableSemihosting" value="false"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.firstResetType" value="init"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbClientOtherCommands" value="set mem inaccessible-by-default off&#13;&#10;set remote hardware-breakpoint-limit 4&#13;&#10;set remote hardware-watchpoint-limit 0&#13;&#10;set architecture riscv&#13;&#10;set processor riscv:rv32"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbClientOtherOptions" value=""/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerConnectionAddress" value=""/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerExecutable" value="${openocd_path}/${openocd_executable}"/>\r
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerGdbPortNumber" value="3333"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerLog" value=""/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerOther" value="-f ../../common/rv32m1_ri5cy.cfg"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerTclPortNumber" value="6666"/>\r
+<intAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.gdbServerTelnetPortNumber" value="4444"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.otherInitCommands" value="monitor reset halt"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.otherRunCommands" value="monitor reset halt"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.openocd.secondResetType" value="halt"/>\r
+<stringAttribute key="ilg.gnumcueclipse.debug.gdbjtag.svdPath" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageFileName" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.imageOffset" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="GNU MCU OpenOCD"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadImage" value="true"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.loadSymbols" value="true"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>\r
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForImage" value="false"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useFileForSymbols" value="false"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForImage" value="true"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useProjBinaryForSymbols" value="true"/>\r
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.useRemoteTarget" value="true"/>\r
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="riscv32-unknown-elf-gdb"/>\r
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>\r
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>\r
+<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>\r
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="debug/RTOSDemo_ri5cy.elf"/>\r
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="RTOSDemo_ri5cy"/>\r
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>\r
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.debug.2124579326"/>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">\r
+<listEntry value="/RTOSDemo_ri5cy"/>\r
+</listAttribute>\r
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">\r
+<listEntry value="4"/>\r
+</listAttribute>\r
+<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#13;&#10;&lt;memoryBlockExpressionList context=&quot;Context string&quot;/&gt;&#13;&#10;"/>\r
+<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>\r
+</launchConfiguration>\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RV32M1_ri5cy_flash.ld b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/RV32M1_ri5cy_flash.ld
new file mode 100644 (file)
index 0000000..95554cd
--- /dev/null
@@ -0,0 +1,181 @@
+/*
+** ###################################################################
+**     Processors:          RV32M1_ri5cy
+**                          RV32M1_ri5cy
+**
+**     Compiler:            GNU C Compiler
+**     Reference manual:    RV32M1 Series Reference Manual, Rev. 1 , 8/10/2018
+**     Version:             rev. 1.0, 2018-10-02
+**     Build:               b171115
+**
+**     Abstract:
+**         Linker file for the GNU C Compiler
+**
+**     Copyright 2016 Freescale Semiconductor, Inc.
+**     Copyright 2016-2017 NXP
+**     All rights reserved.
+**     
+**     SPDX-License-Identifier: BSD-3-Clause
+**
+**     http:                 www.nxp.com
+**     mail:                 support@nxp.com
+**
+** ###################################################################
+*/
+
+/* Entry Point */
+OUTPUT_ARCH( "riscv" )
+
+HEAP_SIZE  = DEFINED(__heap_size__)  ? __heap_size__  : 0x0400;
+STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0800;
+
+/* Specify the memory areas */
+MEMORY
+{
+  m_vector              (RX)  : ORIGIN = 0x000FFF00, LENGTH = 0x00000100
+  m_text                (RX)  : ORIGIN = 0x00000000, LENGTH = 0x000FFF00
+  m_data                (RW)  : ORIGIN = 0x20000000, LENGTH = 0x00030000 - 0x1800
+  rpmsg_sh_mem          (RW)  : ORIGIN = 0x2002E800, LENGTH = 0x1800
+  m_usb_sram            (RW)  : ORIGIN = 0x48010000, LENGTH = 0x00000800
+}
+
+/* Define output sections */
+SECTIONS
+{
+  /* NOINIT section for rpmsg_sh_mem */
+  .noinit_rpmsg_sh_mem (NOLOAD) : ALIGN(4)
+  {
+     *(.noinit.$rpmsg_sh_mem*)
+     . = ALIGN(4) ;
+  } > rpmsg_sh_mem
+
+  .vectors : ALIGN(4)
+  {
+    __VECTOR_TABLE = .;
+    KEEP(*(.vectors))
+  } > m_vector
+
+
+  /* The program code and other data goes into internal flash */
+  .text :
+  {
+    . = ALIGN(4);
+    KEEP(*(.startup))
+    . = ALIGN(4);
+    __user_vector = .;
+    KEEP(*(user_vectors))
+    *(.text)                 /* .text sections (code) */
+    *(.text*)                /* .text* sections (code) */
+    *(.rodata)               /* .rodata sections (constants, strings, etc.) */
+    *(.rodata*)              /* .rodata* sections (constants, strings, etc.) */
+    *(.srodata .srodata.*)
+    *(.glue_7)               /* glue arm to thumb code */
+    *(.glue_7t)              /* glue thumb to arm code */
+    *(.eh_frame)
+    *(.init)
+    *(.fini)
+  } > m_text
+
+  .preinit_array :
+  {
+    PROVIDE_HIDDEN (__preinit_array_start = .);
+    KEEP (*(.preinit_array*))
+    PROVIDE_HIDDEN (__preinit_array_end = .);
+  } > m_text
+
+  .init_array :
+  {
+    PROVIDE_HIDDEN (__init_array_start = .);
+    KEEP (*(SORT(.init_array.*)))
+    KEEP (*(.init_array*))
+    PROVIDE_HIDDEN (__init_array_end = .);
+  } > m_text
+
+  .fini_array :
+  {
+    PROVIDE_HIDDEN (__fini_array_start = .);
+    KEEP (*(SORT(.fini_array.*)))
+    KEEP (*(.fini_array*))
+    PROVIDE_HIDDEN (__fini_array_end = .);
+  } > m_text
+
+  __etext = .;    /* define a global symbol at end of code */
+  __global_pointer = .;    /* define a global symbol at end of code */
+  __DATA_ROM = .; /* Symbol is used by startup for data initialization */
+
+  .data : AT(__DATA_ROM)
+  {
+    . = ALIGN(4);
+    __DATA_RAM = .;
+    __data_start__ = .;      /* create a global symbol at data start */
+    *(.data)                 /* .data sections */
+    *(.data*)                /* .data* sections */
+    *(.sdata .sdata.*)
+    *(.heapsram*)            /* This is only for the pulpino official test code. */
+    __noncachedata_start__ = .;   /* create a global symbol at ncache data start */
+       *(NonCacheable)
+    __noncachedata_end__ = .;     /* define a global symbol at ncache data end */
+    KEEP(*(.jcr*))
+    . = ALIGN(4);
+    __data_end__ = .;        /* define a global symbol at data end */
+  } > m_data
+
+  __DATA_END = __DATA_ROM + (__data_end__ - __data_start__);
+  text_end = ORIGIN(m_text) + LENGTH(m_text);
+  ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data")
+
+  _edata = .;
+  /* Uninitialized data section */
+  .bss :
+  {
+    /* This is used by the startup in order to initialize the .bss section */
+    . = ALIGN(4);
+    __START_BSS = .;
+    __bss_start__ = .;
+    *(.bss)
+    *(.bss*)
+    *(.sbss)
+    *(.sbss*)
+    *(COMMON)
+    . = ALIGN(4);
+    __bss_end__ = .;
+    __END_BSS = .;
+  } > m_data
+
+  /* End of uninitalized data segement */
+  _end = .;
+  PROVIDE(end = .);
+
+  .heap :
+  {
+    . = ALIGN(8);
+    __heap_start = .;
+    . += HEAP_SIZE;
+    __heap_end = .;
+    _heap_end = __heap_end;
+  } > m_data
+
+  .stack :
+  {
+    . = ALIGN(8);
+    __StackLimit = .;
+    . += STACK_SIZE;
+    __StackTop = .;
+    __freertos_irq_stack_top = .;
+  } > m_data
+
+  m_usb_bdt (NOLOAD) :
+  {
+    . = ALIGN(512);
+    *(m_usb_bdt)
+  } > m_usb_sram
+
+  m_usb_global (NOLOAD) :
+  {
+    *(m_usb_global)
+  } > m_usb_sram
+
+  /* Initializes stack on the end of block */
+  PROVIDE(__stack = __StackTop);
+}
+
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/blinky_demo/main_blinky.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/blinky_demo/main_blinky.c
new file mode 100644 (file)
index 0000000..7688ed8
--- /dev/null
@@ -0,0 +1,206 @@
+/*\r
+ * FreeRTOS Kernel V10.1.1\r
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+/******************************************************************************\r
+ * NOTE 1:  This project provides two demo applications.  A simple blinky\r
+ * style project, and a more comprehensive test and demo application.  The\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select\r
+ * between the two.  See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\r
+ * in main.c.  This file implements the simply blinky style version.\r
+ *\r
+ * NOTE 2:  This file only contains the source code that is specific to the\r
+ * basic demo.  Generic functions, such FreeRTOS hook functions, and functions\r
+ * required to configure the hardware are defined in main.c.\r
+ ******************************************************************************\r
+ *\r
+ * main_blinky() creates one queue, and two tasks.  It then starts the\r
+ * scheduler.\r
+ *\r
+ * The Queue Send Task:\r
+ * The queue send task is implemented by the prvQueueSendTask() function in\r
+ * this file.  prvQueueSendTask() sits in a loop that causes it to repeatedly\r
+ * block for 1000 milliseconds, before sending the value 100 to the queue that\r
+ * was created within main_blinky().  Once the value is sent, the task loops\r
+ * back around to block for another 1000 milliseconds...and so on.\r
+ *\r
+ * The Queue Receive Task:\r
+ * The queue receive task is implemented by the prvQueueReceiveTask() function\r
+ * in this file.  prvQueueReceiveTask() sits in a loop where it repeatedly\r
+ * blocks on attempts to read data from the queue that was created within\r
+ * main_blinky().  When data is received, the task checks the value of the\r
+ * data, and if the value equals the expected 100, writes 'Blink' to the UART\r
+ * (the UART is used in place of the LED to allow easy execution in QEMU).  The\r
+ * 'block time' parameter passed to the queue receive function specifies that\r
+ * the task should be held in the Blocked state indefinitely to wait for data to\r
+ * be available on the queue.  The queue receive task will only leave the\r
+ * Blocked state when the queue send task writes to the queue.  As the queue\r
+ * send task writes to the queue every 1000 milliseconds, the queue receive\r
+ * task leaves the Blocked state every 1000 milliseconds, and therefore toggles\r
+ * the LED every 200 milliseconds.\r
+ */\r
+\r
+/* Standard includes. */\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <unistd.h>\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "queue.h"\r
+\r
+/* Priorities used by the tasks. */\r
+#define mainQUEUE_RECEIVE_TASK_PRIORITY                ( tskIDLE_PRIORITY + 2 )\r
+#define        mainQUEUE_SEND_TASK_PRIORITY            ( tskIDLE_PRIORITY + 1 )\r
+\r
+/* The rate at which data is sent to the queue.  The 200ms value is converted\r
+to ticks using the pdMS_TO_TICKS() macro. */\r
+#define mainQUEUE_SEND_FREQUENCY_MS                    pdMS_TO_TICKS( 1000 )\r
+\r
+/* The maximum number items the queue can hold.  The priority of the receiving\r
+task is above the priority of the sending task, so the receiving task will\r
+preempt the sending task and remove the queue items each time the sending task\r
+writes to the queue.  Therefore the queue will never have more than one item in\r
+it at any time, and even with a queue length of 1, the sending task will never\r
+find the queue full. */\r
+#define mainQUEUE_LENGTH                                       ( 1 )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Called by main when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1 in\r
+ * main.c.\r
+ */\r
+void main_blinky( void );\r
+\r
+/*\r
+ * The tasks as described in the comments at the top of this file.\r
+ */\r
+static void prvQueueReceiveTask( void *pvParameters );\r
+static void prvQueueSendTask( void *pvParameters );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The queue used by both tasks. */\r
+static QueueHandle_t xQueue = NULL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main_blinky( void )\r
+{\r
+       /* Create the queue. */\r
+       xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( uint32_t ) );\r
+\r
+       if( xQueue != NULL )\r
+       {\r
+               /* Start the two tasks as described in the comments at the top of this\r
+               file. */\r
+               xTaskCreate( prvQueueReceiveTask,                               /* The function that implements the task. */\r
+                                       "Rx",                                                           /* The text name assigned to the task - for debug only as it is not used by the kernel. */\r
+                                       configMINIMAL_STACK_SIZE * 2U,                  /* The size of the stack to allocate to the task. */\r
+                                       NULL,                                                           /* The parameter passed to the task - not used in this case. */\r
+                                       mainQUEUE_RECEIVE_TASK_PRIORITY,        /* The priority assigned to the task. */\r
+                                       NULL );                                                         /* The task handle is not required, so NULL is passed. */\r
+\r
+               xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE * 2U, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );\r
+\r
+               /* Start the tasks and timer running. */\r
+               vTaskStartScheduler();\r
+       }\r
+\r
+       /* If all is well, the scheduler will now be running, and the following\r
+       line will never be reached.  If the following line does execute, then\r
+       there was insufficient FreeRTOS heap memory available for the Idle and/or\r
+       timer tasks to be created.  See the memory management section on the\r
+       FreeRTOS web site for more details on the FreeRTOS heap\r
+       http://www.freertos.org/a00111.html. */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueSendTask( void *pvParameters )\r
+{\r
+TickType_t xNextWakeTime;\r
+const unsigned long ulValueToSend = 100UL;\r
+BaseType_t xReturned;\r
+\r
+       /* Remove compiler warning about unused parameter. */\r
+       ( void ) pvParameters;\r
+\r
+       /* Initialise xNextWakeTime - this only needs to be done once. */\r
+       xNextWakeTime = xTaskGetTickCount();\r
+\r
+       for( ;; )\r
+       {\r
+               /* Place this task in the blocked state until it is time to run again. */\r
+               vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );\r
+\r
+               /* Send to the queue - causing the queue receive task to unblock and\r
+               toggle the LED.  0 is used as the block time so the sending operation\r
+               will not block - it shouldn't need to block as the queue should always\r
+               be empty at this point in the code. */\r
+               xReturned = xQueueSend( xQueue, &ulValueToSend, 0U );\r
+               configASSERT( xReturned == pdPASS );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueReceiveTask( void *pvParameters )\r
+{\r
+unsigned long ulReceivedValue;\r
+const unsigned long ulExpectedValue = 100UL;\r
+const char * const pcPassMessage = "Blink\r\n";\r
+const char * const pcFailMessage = "Unexpected value received\r\n";\r
+extern void vSendString( const char * const pcString );\r
+extern void vToggleLED( void );\r
+\r
+       /* Remove compiler warning about unused parameter. */\r
+       ( void ) pvParameters;\r
+\r
+       for( ;; )\r
+       {\r
+               /* Wait until something arrives in the queue - this task will block\r
+               indefinitely provided INCLUDE_vTaskSuspend is set to 1 in\r
+               FreeRTOSConfig.h. */\r
+               xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );\r
+\r
+               /*  To get here something must have been received from the queue, but\r
+               is it the expected value?  If it is, toggle the LED. */\r
+               if( ulReceivedValue == ulExpectedValue )\r
+               {\r
+                       vSendString( pcPassMessage );\r
+                       vToggleLED();\r
+                       ulReceivedValue = 0U;\r
+               }\r
+               else\r
+               {\r
+                       vSendString( pcFailMessage );\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/RegTest.S b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/RegTest.S
new file mode 100644 (file)
index 0000000..1582dba
--- /dev/null
@@ -0,0 +1,341 @@
+/*\r
+ * FreeRTOS Kernel V10.1.1\r
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+       .extern ulRegTest1LoopCounter\r
+       .extern ulRegTest2LoopCounter\r
+\r
+       .global vRegTest1Implementation\r
+       .global vRegTest2Implementation\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Constants to define the additional registers found on the Pulpino RI5KY. */\r
+#define lpstart0       0x7b0\r
+#define lpend0                 0x7b1\r
+#define lpcount0       0x7b2\r
+#define lpstart1       0x7b4\r
+#define lpend1                 0x7b5\r
+#define lpcount1       0x7b6\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * The register check tasks are described in the comments at the top of\r
+ * main_full.c.\r
+ */\r
+vRegTest1Implementation:\r
+\r
+       /* Fill the additional registers with known values. */\r
+       li t0, 0xaa\r
+       csrw lpstart0, t0\r
+       li t0, 0xab\r
+       csrw lpstart1, t0\r
+       li t0, 0xac\r
+       csrw lpend0, t0\r
+       li t0, 0xad\r
+       csrw lpend1, t0\r
+       li t0, 0xae\r
+       csrw lpcount0, t0\r
+       li t0, 0xaf\r
+       csrw lpcount1, t0\r
+\r
+       /* Fill the core registers with known values. */\r
+       li x5, 0x5\r
+       li x6, 0x6\r
+       li x7, 0x7\r
+       li x8, 0x8\r
+       li x9, 0x9\r
+       li x10, 0xa\r
+       li x11, 0xb\r
+       li x12, 0xc\r
+       li x13, 0xd\r
+       li x14, 0xe\r
+       li x15, 0xf\r
+       li x16, 0x10\r
+       li x17, 0x11\r
+       li x18, 0x12\r
+       li x19, 0x13\r
+       li x20, 0x14\r
+       li x21, 0x15\r
+       li x22, 0x16\r
+       li x23, 0x17\r
+       li x24, 0x18\r
+       li x25, 0x19\r
+       li x26, 0x1a\r
+       li x27, 0x1b\r
+       li x28, 0x1c\r
+       li x29, 0x1d\r
+       li x30, 0x1e\r
+\r
+reg1_loop:\r
+\r
+       /* Check each register still contains the expected known value.\r
+       vRegTest1Implementation uses x31 as the temporary, vRegTest2Implementation\r
+       uses x5 as the temporary. */\r
+       li x31, 0x5\r
+       bne x31, x5, reg1_error_loop\r
+       li x31, 0x6\r
+       bne x31, x6, reg1_error_loop\r
+       li x31, 0x7\r
+       bne x31, x7, reg1_error_loop\r
+       li x31, 0x8\r
+       bne x31, x8, reg1_error_loop\r
+       li x31, 0x9\r
+       bne x31, x9, reg1_error_loop\r
+       li x31, 0xa\r
+       bne x31, x10, reg1_error_loop\r
+       li x31, 0xb\r
+       bne x31, x11, reg1_error_loop\r
+       li x31, 0xc\r
+       bne x31, x12, reg1_error_loop\r
+       li x31, 0xd\r
+       bne x31, x13, reg1_error_loop\r
+       li x31, 0xe\r
+       bne x31, x14, reg1_error_loop\r
+       li x31, 0xf\r
+       bne x31, x15, reg1_error_loop\r
+       li x31, 0x10\r
+       bne x31, x16, reg1_error_loop\r
+       li x31, 0x11\r
+       bne x31, x17, reg1_error_loop\r
+       li x31, 0x12\r
+       bne x31, x18, reg1_error_loop\r
+       li x31, 0x13\r
+       bne x31, x19, reg1_error_loop\r
+       li x31, 0x14\r
+       bne x31, x20, reg1_error_loop\r
+       li x31, 0x15\r
+       bne x31, x21, reg1_error_loop\r
+       li x31, 0x16\r
+       bne x31, x22, reg1_error_loop\r
+       li x31, 0x17\r
+       bne x31, x23, reg1_error_loop\r
+       li x31, 0x18\r
+       bne x31, x24, reg1_error_loop\r
+       li x31, 0x19\r
+       bne x31, x25, reg1_error_loop\r
+       li x31, 0x1a\r
+       bne x31, x26, reg1_error_loop\r
+       li x31, 0x1b\r
+       bne x31, x27, reg1_error_loop\r
+       li x31, 0x1c\r
+       bne x31, x28, reg1_error_loop\r
+       li x31, 0x1d\r
+       bne x31, x29, reg1_error_loop\r
+       li x31, 0x1e\r
+       bne x31, x30, reg1_error_loop\r
+\r
+       /* Check additional chip specific registers still contain the expected\r
+       values. */\r
+       csrr x30, lpstart0\r
+       li x31, 0xaa\r
+       bne x30, x31, reg1_error_loop\r
+       csrr x30, lpstart1\r
+       li x31, 0xab\r
+       bne x30, x31, reg1_error_loop\r
+       csrr x30, lpend0\r
+       li x31, 0xac\r
+       bne x30, x31, reg1_error_loop\r
+       csrr x30, lpend1\r
+       li x31, 0xad\r
+       bne x30, x31, reg1_error_loop\r
+       csrr x30, lpcount0\r
+       li x31, 0xae\r
+       bne x30, x31, reg1_error_loop\r
+       csrr x30, lpcount1\r
+       li x31, 0xaf\r
+       bne x30, x31, reg1_error_loop\r
+\r
+       /* Everything passed, increment the loop counter. */\r
+       lw x31, ulRegTest1LoopCounterConst\r
+       lw x30, 0(x31)\r
+       addi x30, x30, 1\r
+       sw x30, 0(x31)\r
+\r
+       /* Restore clobbered register reading for next loop. */\r
+       li x30, 0x1e\r
+\r
+       /* Yield to increase code coverage. */\r
+       ecall\r
+\r
+       /* Start again. */\r
+       jal reg1_loop\r
+\r
+reg1_error_loop:\r
+       /* Jump here if a register contains an uxpected value.  This stops the loop\r
+       counter being incremented so the check task knows an error was found. */\r
+       ebreak\r
+       jal reg1_error_loop\r
+\r
+ulRegTest1LoopCounterConst: .word ulRegTest1LoopCounter\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+vRegTest2Implementation:\r
+\r
+       /* Fill the additional registers with known values. */\r
+       li t0, 0x1aa\r
+       csrw lpstart0, t0\r
+       li t0, 0x1ab\r
+       csrw lpstart1, t0\r
+       li t0, 0x1ac\r
+       csrw lpend0, t0\r
+       li t0, 0x1ad\r
+       csrw lpend1, t0\r
+       li t0, 0x1ae\r
+       csrw lpcount0, t0\r
+       li t0, 0x1af\r
+       csrw lpcount1, t0\r
+\r
+       /* Fill the core registers with known values. */\r
+       li x6, 0x61\r
+       li x7, 0x71\r
+       li x8, 0x81\r
+       li x9, 0x91\r
+       li x10, 0xa1\r
+       li x11, 0xb1\r
+       li x12, 0xc1\r
+       li x13, 0xd1\r
+       li x14, 0xe1\r
+       li x15, 0xf1\r
+       li x16, 0x20\r
+       li x17, 0x21\r
+       li x18, 0x22\r
+       li x19, 0x23\r
+       li x20, 0x24\r
+       li x21, 0x25\r
+       li x22, 0x26\r
+       li x23, 0x27\r
+       li x24, 0x28\r
+       li x25, 0x29\r
+       li x26, 0x2a\r
+       li x27, 0x2b\r
+       li x28, 0x2c\r
+       li x29, 0x2d\r
+       li x30, 0x2e\r
+       li x31, 0x2f\r
+\r
+Reg2_loop:\r
+\r
+       /* Check each register still contains the expected known value.\r
+       vRegTest2Implementation uses x5 as the temporary, vRegTest1Implementation\r
+       uses x31 as the temporary. */\r
+       li x5, 0x61\r
+       bne x5, x6, reg2_error_loop\r
+       li x5, 0x71\r
+       bne x5, x7, reg2_error_loop\r
+       li x5, 0x81\r
+       bne x5, x8, reg2_error_loop\r
+       li x5, 0x91\r
+       bne x5, x9, reg2_error_loop\r
+       li x5, 0xa1\r
+       bne x5, x10, reg2_error_loop\r
+       li x5, 0xb1\r
+       bne x5, x11, reg2_error_loop\r
+       li x5, 0xc1\r
+       bne x5, x12, reg2_error_loop\r
+       li x5, 0xd1\r
+       bne x5, x13, reg2_error_loop\r
+       li x5, 0xe1\r
+       bne x5, x14, reg2_error_loop\r
+       li x5, 0xf1\r
+       bne x5, x15, reg2_error_loop\r
+       li x5, 0x20\r
+       bne x5, x16, reg2_error_loop\r
+       li x5, 0x21\r
+       bne x5, x17, reg2_error_loop\r
+       li x5, 0x22\r
+       bne x5, x18, reg2_error_loop\r
+       li x5, 0x23\r
+       bne x5, x19, reg2_error_loop\r
+       li x5, 0x24\r
+       bne x5, x20, reg2_error_loop\r
+       li x5, 0x25\r
+       bne x5, x21, reg2_error_loop\r
+       li x5, 0x26\r
+       bne x5, x22, reg2_error_loop\r
+       li x5, 0x27\r
+       bne x5, x23, reg2_error_loop\r
+       li x5, 0x28\r
+       bne x5, x24, reg2_error_loop\r
+       li x5, 0x29\r
+       bne x5, x25, reg2_error_loop\r
+       li x5, 0x2a\r
+       bne x5, x26, reg2_error_loop\r
+       li x5, 0x2b\r
+       bne x5, x27, reg2_error_loop\r
+       li x5, 0x2c\r
+       bne x5, x28, reg2_error_loop\r
+       li x5, 0x2d\r
+       bne x5, x29, reg2_error_loop\r
+       li x5, 0x2e\r
+       bne x5, x30, reg2_error_loop\r
+       li x5, 0x2f\r
+       bne x5, x31, reg2_error_loop\r
+\r
+       /* Check additional chip specific registers still contain the expected\r
+       values. */\r
+       csrr x5, lpstart0\r
+       li x6, 0x1aa\r
+       bne x5, x6, reg2_error_loop\r
+       csrr x5, lpstart1\r
+       li x6, 0x1ab\r
+       bne x5, x6, reg2_error_loop\r
+       csrr x5, lpend0\r
+       li x6, 0x1ac\r
+       bne x5, x6, reg2_error_loop\r
+       csrr x5, lpend1\r
+       li x6, 0x1ad\r
+       bne x5, x6, reg2_error_loop\r
+       csrr x5, lpcount0\r
+       li x6, 0x1ae\r
+       bne x5, x6, reg2_error_loop\r
+       csrr x5, lpcount1\r
+       li x6, 0x1af\r
+       bne x5, x6, reg2_error_loop\r
+\r
+       /* Everything passed, increment the loop counter. */\r
+       lw x5, ulRegTest2LoopCounterConst\r
+       lw x6, 0(x5)\r
+       addi x6, x6, 1\r
+       sw x6, 0(x5)\r
+\r
+       /* Restore clobbered register reading for next loop. */\r
+       li x6, 0x61\r
+\r
+       /* Start again. */\r
+       jal Reg2_loop\r
+\r
+reg2_error_loop:\r
+       /* Jump here if a register contains an uxpected value.  This stops the loop\r
+       counter being incremented so the check task knows an error was found. */\r
+       ebreak\r
+       jal reg2_error_loop\r
+\r
+ulRegTest2LoopCounterConst: .word ulRegTest2LoopCounter\r
+\r
+\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/main_full.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/full_demo/main_full.c
new file mode 100644 (file)
index 0000000..05e426d
--- /dev/null
@@ -0,0 +1,440 @@
+/*\r
+ * FreeRTOS Kernel V10.1.1\r
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+/******************************************************************************\r
+ * NOTE 1:  This project provides two demo applications.  A simple blinky style\r
+ * project, and a more comprehensive test and demo application.  The\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select\r
+ * between the two.  See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\r
+ * in main.c.  This file implements the comprehensive test and demo version.\r
+ *\r
+ * NOTE 2:  This file only contains the source code that is specific to the\r
+ * full demo.  Generic functions, such FreeRTOS hook functions, and functions\r
+ * required to configure the hardware, are defined in main.c.\r
+ *\r
+ ******************************************************************************\r
+ *\r
+ * main_full() creates all the demo application tasks and software timers, then\r
+ * starts the scheduler.  The web documentation provides more details of the\r
+ * standard demo application tasks, which provide no particular functionality,\r
+ * but do provide a good example of how to use the FreeRTOS API.\r
+ *\r
+ * In addition to the standard demo tasks, the following tasks and tests are\r
+ * defined and/or created within this file:\r
+ *\r
+ * "Reg test" tasks - These fill both the core registers with known values, then\r
+ * check that each register maintains its expected value for the lifetime of the\r
+ * task.  Each task uses a different set of values.  The reg test tasks execute\r
+ * with a very low priority, so get preempted very frequently.  A register\r
+ * containing an unexpected value is indicative of an error in the context\r
+ * switching mechanism.\r
+ *\r
+ * "Check" task - The check executes every three seconds.  It checks that all\r
+ * the standard demo tasks, and the register check tasks, are not only still\r
+ * executing, but are executing without reporting any errors.  If the check task\r
+ * discovers that a task has either stalled, or reported an error, then it\r
+ * prints an error message to the UART, otherwise it prints "Pass.".\r
+ */\r
+\r
+/* Standard includes. */\r
+#include <stdio.h>\r
+#include <string.h>\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "timers.h"\r
+#include "semphr.h"\r
+\r
+/* Standard demo application includes. */\r
+#include "dynamic.h"\r
+#include "blocktim.h"\r
+#include "GenQTest.h"\r
+#include "recmutex.h"\r
+#include "TimerDemo.h"\r
+#include "EventGroupsDemo.h"\r
+#include "TaskNotify.h"\r
+#include "AbortDelay.h"\r
+#include "countsem.h"\r
+#include "death.h"\r
+#include "MessageBufferDemo.h"\r
+#include "StreamBufferDemo.h"\r
+#include "StreamBufferInterrupt.h"\r
+\r
+/* Priorities for the demo application tasks. */\r
+#define mainCHECK_TASK_PRIORITY                                ( configMAX_PRIORITIES - 1 )\r
+#define mainCREATOR_TASK_PRIORITY                      ( tskIDLE_PRIORITY + 3UL )\r
+\r
+/* The period of the check task, in ms, converted to ticks using the\r
+pdMS_TO_TICKS() macro.  mainNO_ERROR_CHECK_TASK_PERIOD is used if no errors have\r
+been found, mainERROR_CHECK_TASK_PERIOD is used if an error has been found. */\r
+#define mainNO_ERROR_CHECK_TASK_PERIOD         pdMS_TO_TICKS( 3000UL )\r
+#define mainERROR_CHECK_TASK_PERIOD            pdMS_TO_TICKS( 500UL )\r
+\r
+/* Parameters that are passed into the register check tasks solely for the\r
+purpose of ensuring parameters are passed into tasks correctly. */\r
+#define mainREG_TEST_TASK_1_PARAMETER          ( ( void * ) 0x12345678 )\r
+#define mainREG_TEST_TASK_2_PARAMETER          ( ( void * ) 0x87654321 )\r
+\r
+/* The base period used by the timer test tasks. */\r
+#define mainTIMER_TEST_PERIOD                          ( 50 )\r
+\r
+/* The size of the stack allocated to the check task (as described in the\r
+comments at the top of this file. */\r
+#define mainCHECK_TASK_STACK_SIZE_WORDS 200\r
+\r
+/* Size of the stacks to allocated for the register check tasks. */\r
+#define mainREG_TEST_STACK_SIZE_WORDS 150\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Called by main() to run the full demo (as opposed to the blinky demo) when\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.\r
+ */\r
+void main_full( void );\r
+\r
+/*\r
+ * The check task, as described at the top of this file.\r
+ */\r
+static void prvCheckTask( void *pvParameters );\r
+\r
+/*\r
+ * Initialise and start the peripheral timers that are used to exercise external\r
+ * interrupt processing.\r
+ */\r
+static void prvSetupPeripheralTimers( void );\r
+\r
+/*\r
+ * Register check tasks as described at the top of this file.  The nature of\r
+ * these files necessitates that they are written in an assembly file, but the\r
+ * entry points are kept in the C file for the convenience of checking the task\r
+ * parameter.\r
+ */\r
+static void prvRegTestTaskEntry1( void *pvParameters );\r
+extern void vRegTest1Implementation( void );\r
+static void prvRegTestTaskEntry2( void *pvParameters );\r
+extern void vRegTest2Implementation( void );\r
+\r
+/*\r
+ * Tick hook used by the full demo, which includes code that interacts with\r
+ * some of the tests.\r
+ */\r
+void vFullDemoTickHook( void );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Timers used to exercise external interrupt processing. */\r
+//static timer_instance_t g_timer0, g_timer1;\r
+\r
+/* Variables incremented by the peripheral timers used to exercise external\r
+interrupts. */\r
+volatile uint32_t ulTimer0Interrupts = 0, ulTimer1Interrupts = 0;\r
+\r
+/* The following two variables are used to communicate the status of the\r
+register check tasks to the check task.  If the variables keep incrementing,\r
+then the register check tasks have not discovered any errors.  If a variable\r
+stops incrementing, then an error has been found. */\r
+volatile uint32_t ulRegTest1LoopCounter = 0UL, ulRegTest2LoopCounter = 0UL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main_full( void )\r
+{\r
+       /* Start all the other standard demo/test tasks.  They have no particular\r
+       functionality, but do demonstrate how to use the FreeRTOS API and test the\r
+       kernel port. */\r
+       vStartDynamicPriorityTasks();\r
+       vCreateBlockTimeTasks();\r
+       vStartGenericQueueTasks( tskIDLE_PRIORITY );\r
+       vStartRecursiveMutexTasks();\r
+       vStartTimerDemoTask( mainTIMER_TEST_PERIOD );\r
+       vStartEventGroupTasks();\r
+       vStartTaskNotifyTask();\r
+       vCreateAbortDelayTasks();\r
+       vStartCountingSemaphoreTasks();\r
+       vStartMessageBufferTasks( configMINIMAL_STACK_SIZE  );\r
+       vStartStreamBufferTasks();\r
+       vStartStreamBufferInterruptDemo();\r
+\r
+       /* Create the register check tasks, as described at the top of this     file.\r
+       Use xTaskCreateStatic() to create a task using only statically allocated\r
+       memory. */\r
+       xTaskCreate( prvRegTestTaskEntry1,                      /* The function that implements the task. */\r
+                                "Reg1",                                                /* The name of the task. */\r
+                                mainREG_TEST_STACK_SIZE_WORDS, /* Size of stack to allocate for the task - in words not bytes!. */\r
+                                mainREG_TEST_TASK_1_PARAMETER, /* Parameter passed into the task. */\r
+                                tskIDLE_PRIORITY,                              /* Priority of the task. */\r
+                                NULL );                                                /* Can be used to pass out a handle to the created task. */\r
+       xTaskCreate( prvRegTestTaskEntry2, "Reg2", mainREG_TEST_STACK_SIZE_WORDS, mainREG_TEST_TASK_2_PARAMETER, tskIDLE_PRIORITY, NULL );\r
+\r
+       /* Create the task that performs the 'check' functionality,     as described at\r
+       the top of this file. */\r
+       xTaskCreate( prvCheckTask, "Check", mainCHECK_TASK_STACK_SIZE_WORDS, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
+\r
+       /* The set of tasks created by the following function call have to be\r
+       created last as they keep account of the number of tasks they expect to see\r
+       running. */\r
+       vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY );\r
+\r
+       /* Start the timers that are used to exercise external interrupt handling. */\r
+       prvSetupPeripheralTimers();\r
+\r
+       /* Start the scheduler. */\r
+       vTaskStartScheduler();\r
+\r
+       /* If all is well, the scheduler will now be running, and the following\r
+       line will never be reached.  If the following line does execute, then\r
+       there was insufficient FreeRTOS heap memory available for the Idle and/or\r
+       timer tasks to be created.  See the memory management section on the\r
+       FreeRTOS web site for more details on the FreeRTOS heap\r
+       http://www.freertos.org/a00111.html. */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvCheckTask( void *pvParameters )\r
+{\r
+TickType_t xDelayPeriod = mainNO_ERROR_CHECK_TASK_PERIOD;\r
+TickType_t xLastExecutionTime;\r
+uint32_t ulLastRegTest1Value = 0, ulLastRegTest2Value = 0;\r
+uint32_t ulLastTimer0Interrupts = 0, ulLastTimer1Interrupts = 0;\r
+char * const pcPassMessage = ".";\r
+char * pcStatusMessage = pcPassMessage;\r
+extern void vSendString( const char * const pcString );\r
+extern void vToggleLED( void );\r
+\r
+       /* Just to stop compiler warnings. */\r
+       ( void ) pvParameters;\r
+\r
+       /* Output "pass", then an additional '.' character for each successful\r
+       loop. */\r
+       vSendString( "Pass" );\r
+\r
+       /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
+       works correctly. */\r
+       xLastExecutionTime = xTaskGetTickCount();\r
+\r
+       /* Cycle for ever, delaying then checking all the other tasks are still\r
+       operating without error.  The onboard LED is toggled on each iteration.\r
+       If an error is detected then the delay period is decreased from\r
+       mainNO_ERROR_CHECK_TASK_PERIOD to mainERROR_CHECK_TASK_PERIOD.  This has the\r
+       effect of increasing the rate at which the onboard LED toggles, and in so\r
+       doing gives visual feedback of the system status. */\r
+       for( ;; )\r
+       {\r
+               /* Delay until it is time to execute again. */\r
+               vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );\r
+\r
+               /* Check all the demo tasks (other than the flash tasks) to ensure\r
+               that they are all still running, and that none have detected an error. */\r
+               if( xAreDynamicPriorityTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Dynamic priority demo/tests.\r\n";\r
+               }\r
+\r
+               if ( xAreBlockTimeTestTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Block time demo/tests.\r\n";\r
+               }\r
+\r
+               if ( xAreGenericQueueTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Generic queue demo/tests.\r\n";\r
+               }\r
+\r
+               if ( xAreRecursiveMutexTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Recursive mutex demo/tests.\r\n";\r
+               }\r
+\r
+               if( xAreTimerDemoTasksStillRunning( ( TickType_t ) xDelayPeriod ) == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Timer demo/tests.\r\n";\r
+               }\r
+\r
+               if( xAreEventGroupTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Event group demo/tests.\r\n";\r
+               }\r
+\r
+               if( xAreTaskNotificationTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Task notification demo/tests.\r\n";\r
+               }\r
+\r
+               if( xAreAbortDelayTestTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Abort delay.\r\n";\r
+               }\r
+\r
+               if( xAreCountingSemaphoreTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Counting semaphores.\r\n";\r
+               }\r
+\r
+               if( xIsCreateTaskStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Suicide tasks.\r\n";\r
+               }\r
+\r
+               if( xAreMessageBufferTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Message buffer.\r\n";\r
+               }\r
+\r
+               if( xAreStreamBufferTasksStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Stream buffer.\r\n";\r
+               }\r
+\r
+               if( xIsInterruptStreamBufferDemoStillRunning() == pdFALSE )\r
+               {\r
+                       pcStatusMessage = "ERROR: Stream buffer interrupt.\r\n";\r
+               }\r
+\r
+               /* Check that the register test 1 task is still running. */\r
+               if( ulLastRegTest1Value == ulRegTest1LoopCounter )\r
+               {\r
+                       pcStatusMessage = "ERROR: Register test 1.\r\n";\r
+               }\r
+               ulLastRegTest1Value = ulRegTest1LoopCounter;\r
+\r
+               /* Check that the register test 2 task is still running. */\r
+               if( ulLastRegTest2Value == ulRegTest2LoopCounter )\r
+               {\r
+                       pcStatusMessage = "ERROR: Register test 2.\r\n";\r
+               }\r
+               ulLastRegTest2Value = ulRegTest2LoopCounter;\r
+\r
+               /* Check interrupts from the peripheral timers are being handled. */\r
+               if( ulLastTimer0Interrupts == ulTimer0Interrupts )\r
+               {\r
+//                     pcStatusMessage = "ERROR: Peripheral timer 0.\r\n";\r
+               }\r
+               ulLastTimer0Interrupts = ulTimer0Interrupts;\r
+\r
+               if( ulLastTimer1Interrupts == ulTimer1Interrupts )\r
+               {\r
+//                     pcStatusMessage = "ERROR: Peripheral timer 1.\r\n";\r
+               }\r
+               ulLastTimer1Interrupts = ulTimer1Interrupts;\r
+\r
+               /* Write the status message to the UART. */\r
+               vToggleLED();\r
+               vSendString( pcStatusMessage );\r
+\r
+               /* If an error has been found then increase the LED toggle rate by\r
+               increasing the cycle frequency. */\r
+               if( pcStatusMessage != pcPassMessage )\r
+               {\r
+                       xDelayPeriod = mainERROR_CHECK_TASK_PERIOD;\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTaskEntry1( void *pvParameters )\r
+{\r
+       /* Although the regtest task is written in assembler, its entry point is\r
+       written in C for convenience of checking the task parameter is being passed\r
+       in correctly. */\r
+       if( pvParameters == mainREG_TEST_TASK_1_PARAMETER )\r
+       {\r
+               /* Start the part of the test that is written in assembler. */\r
+               vRegTest1Implementation();\r
+       }\r
+\r
+       /* The following line will only execute if the task parameter is found to\r
+       be incorrect.  The check task will detect that the regtest loop counter is\r
+       not being incremented and flag an error. */\r
+       vTaskDelete( NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvRegTestTaskEntry2( void *pvParameters )\r
+{\r
+       /* Although the regtest task is written in assembler, its entry point is\r
+       written in C for convenience of checking the task parameter is being passed\r
+       in correctly. */\r
+       if( pvParameters == mainREG_TEST_TASK_2_PARAMETER )\r
+       {\r
+               /* Start the part of the test that is written in assembler. */\r
+               vRegTest2Implementation();\r
+       }\r
+\r
+       /* The following line will only execute if the task parameter is found to\r
+       be incorrect.  The check task will detect that the regtest loop counter is\r
+       not being incremented and flag an error. */\r
+       vTaskDelete( NULL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vFullDemoTickHook( void )\r
+{\r
+       /* The full demo includes a software timer demo/test that requires\r
+       prodding periodically from the tick interrupt. */\r
+       vTimerPeriodicISRTests();\r
+\r
+       /* Call the periodic event group from ISR demo. */\r
+       vPeriodicEventGroupsProcessing();\r
+\r
+       /* Use task notifications from an interrupt. */\r
+       xNotifyTaskFromISR();\r
+\r
+       /* Writes to stream buffer byte by byte to test the stream buffer trigger\r
+       level functionality. */\r
+       vPeriodicStreamBufferProcessing();\r
+\r
+       /* Writes a string to a string buffer four bytes at a time to demonstrate\r
+       a stream being sent from an interrupt to a task. */\r
+       vBasicStreamBufferSendFromISR();\r
+\r
+       /* Called from vApplicationTickHook() when the project is configured to\r
+       build the full test/demo applications. */\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvSetupPeripheralTimers( void )\r
+{\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/*Core Timer 0 Interrupt Handler*/\r
+uint8_t External_30_IRQHandler( void )\r
+{\r
+       ulTimer0Interrupts++;\r
+       return 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/*Core Timer 1 Interrupt Handler*/\r
+uint8_t External_31_IRQHandler( void )\r
+{\r
+       ulTimer1Interrupts++;\r
+       return 0;\r
+}\r
diff --git a/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/main.c b/FreeRTOS/Demo/RISC-V_RV32M1_Vega_GCC_Eclipse/projects/RTOSDemo_ri5cy/main.c
new file mode 100644 (file)
index 0000000..add731b
--- /dev/null
@@ -0,0 +1,229 @@
+/*\r
+ * FreeRTOS Kernel V10.1.1\r
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+\r
+/*\r
+ * Create implementation of vPortSetupTimerInterrupt() if the CLINT is not\r
+ * available, but make sure the configCLINT_BASE_ADDRESS constant is still\r
+ * defined.\r
+ *\r
+ * Define vPortHandleInterrupt to whatever the interrupt handler is called.  In\r
+ * this case done by defining vPortHandleInterrupt=SystemIrqHandler on the\r
+ * assembler command line as SystemIrqHandler is referenced from both FreeRTOS\r
+ * code and the libraries that come with the Vega board.\r
+ */\r
+\r
+/* FreeRTOS kernel includes. */\r
+#include <FreeRTOS.h>\r
+#include <task.h>\r
+\r
+/* Vega includes. */\r
+#include "fsl_device_registers.h"\r
+#include "fsl_debug_console.h"\r
+#include "board.h"\r
+#include "pin_mux.h"\r
+#include "clock_config.h"\r
+\r
+\r
+/******************************************************************************\r
+ * This project provides two demo applications.  A simple blinky style project,\r
+ * and a more comprehensive test and demo application.  The\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting (defined in this file) is used to\r
+ * select between the two.  The simply blinky demo is implemented and described\r
+ * in main_blinky.c.  The more comprehensive test and demo application is\r
+ * implemented and described in main_full.c.\r
+ *\r
+ * This file implements the code that is not demo specific, including the\r
+ * hardware setup and standard FreeRTOS hook functions.\r
+ *\r
+ * ENSURE TO READ THE DOCUMENTATION PAGE FOR THIS PORT AND DEMO APPLICATION ON\r
+ * THE http://www.FreeRTOS.org WEB SITE FOR FULL INFORMATION ON USING THIS DEMO\r
+ * APPLICATION, AND ITS ASSOCIATE FreeRTOS ARCHITECTURE PORT!\r
+ *\r
+ */\r
+\r
+/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,\r
+or 0 to run the more comprehensive test and demo application. */\r
+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY     0\r
+\r
+/*\r
+ * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1.\r
+ * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.\r
+ */\r
+#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1\r
+       extern void main_blinky( void );\r
+#else\r
+       extern void main_full( void );\r
+#endif /* #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 */\r
+\r
+/* Prototypes for the standard FreeRTOS callback/hook functions implemented\r
+within this file.  See https://www.freertos.org/a00016.html */\r
+void vApplicationMallocFailedHook( void );\r
+void vApplicationIdleHook( void );\r
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName );\r
+void vApplicationTickHook( void );\r
+\r
+/* Prepare haredware to run the demo. */\r
+static void prvSetupHardware( void );\r
+\r
+/* Send a messaage to the UART initialised in prvSetupHardware. */\r
+void vSendString( const char * const pcString );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main( void )\r
+{\r
+       prvSetupHardware();\r
+\r
+       /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top\r
+       of this file. */\r
+       #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 )\r
+       {\r
+               main_blinky();\r
+       }\r
+       #else\r
+       {\r
+               main_full();\r
+       }\r
+       #endif\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvSetupHardware( void )\r
+{\r
+gpio_pin_config_t mGpioPinConfigStruct;\r
+\r
+       /* Init board hardware. */\r
+       BOARD_InitPins();\r
+       BOARD_BootClockRUN();\r
+       BOARD_InitDebugConsole();\r
+\r
+       /* For LED. */\r
+       mGpioPinConfigStruct.outputLogic = 1U; /* High. */\r
+       mGpioPinConfigStruct.pinDirection = kGPIO_DigitalOutput;\r
+       GPIO_PinInit( BOARD_LED1_GPIO, BOARD_LED1_GPIO_PIN, &mGpioPinConfigStruct );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vToggleLED( void )\r
+{\r
+       GPIO_TogglePinsOutput( BOARD_LED1_GPIO, 1U << BOARD_LED1_GPIO_PIN );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vSendString( const char * const pcString )\r
+{\r
+       PRINTF( pcString );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationMallocFailedHook( void )\r
+{\r
+       /* vApplicationMallocFailedHook() will only be called if\r
+       configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h.  It is a hook\r
+       function that will get called if a call to pvPortMalloc() fails.\r
+       pvPortMalloc() is called internally by the kernel whenever a task, queue,\r
+       timer or semaphore is created.  It is also called by various parts of the\r
+       demo application.  If heap_1.c or heap_2.c are used, then the size of the\r
+       heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in\r
+       FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used\r
+       to query the size of free heap space that remains (although it does not\r
+       provide information on how the remaining heap might be fragmented). */\r
+       taskDISABLE_INTERRUPTS();\r
+       __asm volatile( "ebreak" );\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationIdleHook( void )\r
+{\r
+       /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set\r
+       to 1 in FreeRTOSConfig.h.  It will be called on each iteration of the idle\r
+       task.  It is essential that code added to this hook function never attempts\r
+       to block in any way (for example, call xQueueReceive() with a block time\r
+       specified, or call vTaskDelay()).  If the application makes use of the\r
+       vTaskDelete() API function (as this demo application does) then it is also\r
+       important that vApplicationIdleHook() is permitted to return to its calling\r
+       function, because it is the responsibility of the idle task to clean up\r
+       memory allocated by the kernel to any task that has since been deleted. */\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName )\r
+{\r
+       ( void ) pcTaskName;\r
+       ( void ) pxTask;\r
+\r
+       /* Run time stack overflow checking is performed if\r
+       configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook\r
+       function is called if a stack overflow is detected. */\r
+       taskDISABLE_INTERRUPTS();\r
+       __asm volatile( "ebreak" );\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vApplicationTickHook( void )\r
+{\r
+       /* The tests in the full demo expect some interaction with interrupts. */\r
+       #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY != 1 )\r
+       {\r
+               extern void vFullDemoTickHook( void );\r
+               vFullDemoTickHook();\r
+       }\r
+       #endif\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vPortSetupTimerInterrupt( void )\r
+{\r
+extern void SystemSetupSystick(uint32_t tickRateHz, uint32_t intPriority );\r
+\r
+       /* No CLINT so use the LPIT (Low Power Interrupt Timer) to generate the tick\r
+       interrupt. */\r
+       CLOCK_SetIpSrc( kCLOCK_Lpit0, kCLOCK_IpSrcFircAsync );\r
+       SystemSetupSystick( configTICK_RATE_HZ, configKERNEL_INTERRUPT_PRIORITY - 1 );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void LPIT0_IRQHandler( void )\r
+{\r
+BaseType_t xTaskIncrementTick( void );\r
+void vTaskSwitchContext( void );\r
+\r
+#warning requires critical section if interrpt nesting is used.\r
+\r
+       /* vPortSetupTimerInterrupt() uses LPIT0 to generate the tick interrupt. */\r
+       if( xTaskIncrementTick() != 0 )\r
+       {\r
+               vTaskSwitchContext();\r
+       }\r
+\r
+       /* Clear LPIT0 interrupt. */\r
+       LPIT0->MSR = 1U;\r
+}\r
+\r
index 9a95c98e72ed2fad3969d40843fda5faef9bac1b..b759f22c890a72e411842a926a4e82550f01c386 100644 (file)
@@ -99,7 +99,7 @@
                                                                                                \r
                                 <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths.1792818218" name="Include paths (-I)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.assembler.include.paths" useByScannerDiscovery="true" valueType="includePath">\r
                                                                                                        \r
-                                    <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32}&quot;"/>\r
+                                    <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/RV32I_CLINT_no_extensions}&quot;"/>\r
                                                                                                \r
                                 </option>\r
                                                                                                \r
index 0e8872a4d3bed4d2a87928c6f39bf5cb4f8688a9..afee1bd056e8670691b4af2b86f8be3bf554b587 100644 (file)
                        </matcher>\r
                </filter>\r
                <filter>\r
-                       <id>1545005412575</id>\r
-                       <name>FreeRTOS_Source/portable/GCC/RISC-V-RV32</name>\r
+                       <id>1546279974088</id>\r
+                       <name>FreeRTOS_Source/portable/GCC/RISC-V-RV32/chip_specific_extensions</name>\r
                        <type>9</type>\r
                        <matcher>\r
                                <id>org.eclipse.ui.ide.multiFilter</id>\r
-                               <arguments>1.0-name-matches-false-false-CLINT_no_extensions</arguments>\r
+                               <arguments>1.0-name-matches-false-false-RV32I_CLINT_no_extensions</arguments>\r
                        </matcher>\r
                </filter>\r
        </filteredResources>\r
index 9d0b520520c0c6f9a79fecd3507738e85f79a8d0..b9c605b54fc6a31762a670ebb095fbbaa67c2004 100644 (file)
@@ -2367,6 +2367,10 @@ eSleepModeStatus eTaskConfirmSleepModeStatus( void ) PRIVILEGED_FUNCTION;
  */\r
 TaskHandle_t pvTaskIncrementMutexHeldCount( void ) PRIVILEGED_FUNCTION;\r
 \r
+#if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )\r
+       TickType_t xTaskGetIdleRunTimeCounter( void );\r
+#endif\r
+\r
 /*\r
  * For internal use only.  Same as vTaskSetTimeOutState(), but without a critial\r
  * section.\r
index da213e92fe6003e35e9e7bc9a550ef5729608eb1..d8980c3fee90edeabe17edeec332755943b8a7ae 100644 (file)
@@ -30,7 +30,7 @@
 /*\r
  * The FreeRTOS kernel's RISC-V port is split between the the code that is\r
  * common across all currently supported RISC-V chips (implementations of the\r
- * RISC-V ISA), and code which tailors the port to a specific RISC-V chip:\r
+ * RISC-V ISA), and code that tailors the port to a specific RISC-V chip:\r
  *\r
  * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that\r
  *   is common to all currently supported RISC-V chips.  There is only one\r
  *   as there are multiple RISC-V chip implementations.\r
  *\r
  * !!!NOTE!!!\r
- * CARE MUST BE TAKEN TO INCLUDE THE CORRECT\r
- * freertos_risc_v_chip_specific_extensions.h HEADER FILE FOR THE CHIP IN USE.\r
- * If the chip in use includes a core local interrupter (CLINT) and does not\r
- * include any chip specific register extensions then set the GNU assembler's\r
- * include path such that the header file contained in the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32 directory is the header file that is\r
- * actually inlcuded.  Otherwise set the assembler's include patch to the\r
- * sub-directory off of the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions directory\r
- * that contains the freertos_risc_v_chip_specific_extensions.h specific to the\r
- * target chip.\r
+ * TAKE CARE TO INCLUDE THE CORRECT freertos_risc_v_chip_specific_extensions.h\r
+ * HEADER FILE FOR THE CHIP IN USE.  This is done using the assembler's (not the\r
+ * compiler's!) include path.  For example, if the chip in use includes a core\r
+ * local interrupter (CLINT) and does not include any chip specific register\r
+ * extensions then add the path below to the assembler's include path:\r
+ * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions\RV32I_CLINT_no_extensions\r
  *\r
  */\r
 \r
diff --git a/FreeRTOS/Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/RV32I_CLINT_no_extensions/freertos_risc_v_chip_specific_extensions.h b/FreeRTOS/Source/portable/GCC/RISC-V-RV32/chip_specific_extensions/RV32I_CLINT_no_extensions/freertos_risc_v_chip_specific_extensions.h
new file mode 100644 (file)
index 0000000..67a7a72
--- /dev/null
@@ -0,0 +1,68 @@
+/*\r
+ * FreeRTOS Kernel V10.1.1\r
+ * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+/*\r
+ * The FreeRTOS kernel's RISC-V port is split between the the code that is\r
+ * common across all currently supported RISC-V chips (implementations of the\r
+ * RISC-V ISA), and code that tailors the port to a specific RISC-V chip:\r
+ *\r
+ * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that\r
+ *   is common to all currently supported RISC-V chips.  There is only one\r
+ *   portASM.S file because the same file is built for all RISC-V target chips.\r
+ *\r
+ * + Header files called freertos_risc_v_chip_specific_extensions.h contain the\r
+ *   code that tailors the FreeRTOS kernel's RISC-V port to a specific RISC-V\r
+ *   chip.  There are multiple freertos_risc_v_chip_specific_extensions.h files\r
+ *   as there are multiple RISC-V chip implementations.\r
+ *\r
+ * !!!NOTE!!!\r
+ * TAKE CARE TO INCLUDE THE CORRECT freertos_risc_v_chip_specific_extensions.h\r
+ * HEADER FILE FOR THE CHIP IN USE.  This is done using the assembler's (not the\r
+ * compiler's!) include path.  For example, if the chip in use includes a core\r
+ * local interrupter (CLINT) and does not include any chip specific register\r
+ * extensions then add the path below to the assembler's include path:\r
+ * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions\RV32I_CLINT_no_extensions\r
+ *\r
+ */\r
+\r
+\r
+#ifndef __FREERTOS_RISC_V_EXTENSIONS_H__\r
+#define __FREERTOS_RISC_V_EXTENSIONS_H__\r
+\r
+#define portasmHAS_CLINT 1\r
+#define portasmADDITIONAL_CONTEXT_SIZE 0 /* Must be even number on 32-bit cores. */\r
+\r
+.macro portasmSAVE_ADDITIONAL_REGISTERS\r
+       /* No additional registers to save, so this macro does nothing. */\r
+       .endm\r
+\r
+/* Restore the additional registers found on the Pulpino. */\r
+.macro portasmRESTORE_ADDITIONAL_REGISTERS\r
+       /* No additional registers to restore, so this macro does nothing. */\r
+       .endm\r
+\r
+#endif /* __FREERTOS_RISC_V_EXTENSIONS_H__ */\r
index b94a43687184d028966342da4feeacb5cf2c36e5..69d98d92431e584067ec524de05a1d4befc0f370 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
  * The FreeRTOS kernel's RISC-V port is split between the the code that is\r
  * common across all currently supported RISC-V chips (implementations of the\r
- * RISC-V ISA), and code which tailors the port to a specific RISC-V chip:\r
+ * RISC-V ISA), and code that tailors the port to a specific RISC-V chip:\r
  *\r
  * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that\r
  *   is common to all currently supported RISC-V chips.  There is only one\r
  *   as there are multiple RISC-V chip implementations.\r
  *\r
  * !!!NOTE!!!\r
- * CARE MUST BE TAKEN TO INCLUDE THE CORRECT\r
- * freertos_risc_v_chip_specific_extensions.h HEADER FILE FOR THE CHIP IN USE.\r
- * If the chip in use includes a core local interrupter (CLINT) and does not\r
- * include any chip specific register extensions then set the GNU assembler's\r
- * include path such that the header file contained in the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32 directory is the header file that is\r
- * actually inlcuded.  Otherwise set the assembler's include patch to the\r
- * sub-directory off of the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions directory\r
- * that contains the freertos_risc_v_chip_specific_extensions.h specific to the\r
- * target chip.\r
+ * TAKE CARE TO INCLUDE THE CORRECT freertos_risc_v_chip_specific_extensions.h\r
+ * HEADER FILE FOR THE CHIP IN USE.  This is done using the assembler's (not the\r
+ * compiler's!) include path.  For example, if the chip in use includes a core\r
+ * local interrupter (CLINT) and does not include any chip specific register\r
+ * extensions then add the path below to the assembler's include path:\r
+ * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions\RV32I_CLINT_no_extensions\r
  *\r
  */\r
diff --git a/FreeRTOS/Source/portable/GCC/RISC-V-RV32/freertos_risc_v_chip_specific_extensions.h b/FreeRTOS/Source/portable/GCC/RISC-V-RV32/freertos_risc_v_chip_specific_extensions.h
deleted file mode 100644 (file)
index f911cd9..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/*\r
- * FreeRTOS Kernel V10.1.1\r
- * Copyright (C) 2018 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
- *\r
- * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
- * this software and associated documentation files (the "Software"), to deal in\r
- * the Software without restriction, including without limitation the rights to\r
- * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
- * the Software, and to permit persons to whom the Software is furnished to do so,\r
- * subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be included in all\r
- * copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
- * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
- * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- *\r
- * http://www.FreeRTOS.org\r
- * http://aws.amazon.com/freertos\r
- *\r
- * 1 tab == 4 spaces!\r
- */\r
-\r
-/*\r
- * The FreeRTOS kernel's RISC-V port is split between the the code that is\r
- * common across all currently supported RISC-V chips (implementations of the\r
- * RISC-V ISA), and code which tailors the port to a specific RISC-V chip:\r
- *\r
- * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that\r
- *   is common to all currently supported RISC-V chips.  There is only one\r
- *   portASM.S file because the same file is built for all RISC-V target chips.\r
- *\r
- * + Header files called freertos_risc_v_chip_specific_extensions.h contain the\r
- *   code that tailors the FreeRTOS kernel's RISC-V port to a specific RISC-V\r
- *   chip.  There are multiple freertos_risc_v_chip_specific_extensions.h files\r
- *   as there are multiple RISC-V chip implementations.\r
- *\r
- * !!!NOTE!!!\r
- * CARE MUST BE TAKEN TO INCLUDE THE CORRECT\r
- * freertos_risc_v_chip_specific_extensions.h HEADER FILE FOR THE CHIP IN USE.\r
- * If the chip in use includes a core local interrupter (CLINT) and does not\r
- * include any chip specific register extensions then set the GNU assembler's\r
- * include path such that the header file contained in the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32 directory is the header file that is\r
- * actually inlcuded.  Otherwise set the assembler's include patch to the\r
- * sub-directory off of the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions directory\r
- * that contains the freertos_risc_v_chip_specific_extensions.h specific to the\r
- * target chip.\r
- *\r
- */\r
-\r
-#ifndef __FREERTOS_RISC_V_EXTENSIONS_H__\r
-#define __FREERTOS_RISC_V_EXTENSIONS_H__\r
-\r
-#define portasmHAS_CLINT 1\r
-#define portasmADDITIONAL_CONTEXT_SIZE 0 /* Must be even number on 32-bit cores. */\r
-\r
-.macro portasmSAVE_ADDITIONAL_REGISTERS\r
-       /* No additional registers to save, so this macro does nothing. */\r
-       .endm\r
-\r
-/* Restore the additional registers found on the Pulpino. */\r
-.macro portasmRESTORE_ADDITIONAL_REGISTERS\r
-       /* No additional registers to restore, so this macro does nothing. */\r
-       .endm\r
-\r
-#endif /* __FREERTOS_RISC_V_EXTENSIONS_H__ */\r
index b94a43687184d028966342da4feeacb5cf2c36e5..69d98d92431e584067ec524de05a1d4befc0f370 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
  * The FreeRTOS kernel's RISC-V port is split between the the code that is\r
  * common across all currently supported RISC-V chips (implementations of the\r
- * RISC-V ISA), and code which tailors the port to a specific RISC-V chip:\r
+ * RISC-V ISA), and code that tailors the port to a specific RISC-V chip:\r
  *\r
  * + FreeRTOS\Source\portable\GCC\RISC-V-RV32\portASM.S contains the code that\r
  *   is common to all currently supported RISC-V chips.  There is only one\r
  *   as there are multiple RISC-V chip implementations.\r
  *\r
  * !!!NOTE!!!\r
- * CARE MUST BE TAKEN TO INCLUDE THE CORRECT\r
- * freertos_risc_v_chip_specific_extensions.h HEADER FILE FOR THE CHIP IN USE.\r
- * If the chip in use includes a core local interrupter (CLINT) and does not\r
- * include any chip specific register extensions then set the GNU assembler's\r
- * include path such that the header file contained in the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32 directory is the header file that is\r
- * actually inlcuded.  Otherwise set the assembler's include patch to the\r
- * sub-directory off of the\r
- * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions directory\r
- * that contains the freertos_risc_v_chip_specific_extensions.h specific to the\r
- * target chip.\r
+ * TAKE CARE TO INCLUDE THE CORRECT freertos_risc_v_chip_specific_extensions.h\r
+ * HEADER FILE FOR THE CHIP IN USE.  This is done using the assembler's (not the\r
+ * compiler's!) include path.  For example, if the chip in use includes a core\r
+ * local interrupter (CLINT) and does not include any chip specific register\r
+ * extensions then add the path below to the assembler's include path:\r
+ * FreeRTOS\Source\portable\GCC\RISC-V-RV32\chip_specific_extensions\RV32I_CLINT_no_extensions\r
  *\r
  */\r
index faf46713e393413b714e8e03c826008f2b7b6351..c8c5ef389545b36a8bce5d511f745cc56c4b6296 100644 (file)
@@ -5048,6 +5048,13 @@ TickType_t uxReturn;
 #endif /* configUSE_TASK_NOTIFICATIONS */\r
 /*-----------------------------------------------------------*/\r
 \r
+#if( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) )\r
+       TickType_t xTaskGetIdleRunTimeCounter( void )\r
+       {\r
+               return xIdleTaskHandle->ulRunTimeCounter;\r
+       }\r
+#endif\r
+/*-----------------------------------------------------------*/\r
 \r
 static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait, const BaseType_t xCanBlockIndefinitely )\r
 {\r